(BACK)
11/1/29 Carm ver2.32の機能に関する修正(J style)
11/1/22 pico ver1.15の機能に関する修正(拡張機能)
11/1/21 Carm ver2.31の機能に関する修正(1拍のさらなる分割、BPMによる小節時間指定、タイトル画面の読み込み、carmの拡張機能)
作成の基本
基本的な理屈
フォーマット1説明
フォーマット2説明
フォーマット3・4説明
背景について
難易度名称の変更
全体時間調整
簡易変数
Carmbeatの拡張機能
Carmbeat:J styleについて
picobeatの拡張機能

作成上の注意点
アップロードの方法
ノート別データ一覧
汎用背景集

作成の基本
CarmBeat本体(右クリック保存)
picobeat本体(右クリック保存)

オリジナルデータを作成するには、上の本体(carm.swf,pico.swf)の他に、以下のファイルを用意する。
それぞれ、ファイル名は変更できない。

bgm.mp3
演奏用音声ファイル。
mp3形式であり、サンプリングレートが11kHz/22kHz/44kHzのいずれかである必要がある。
曲の最後の0.1秒間は演奏されない。
data.txt 雛形(右クリック保存)
譜面データファイル。
テキストファイルであり、以下の形式で作成する。
は、改行である。
head=carm1
&title=データのタイトル
&music_by=作曲者名(省略可)
&data_by=データ作成者名(省略可)
&bgm_vol=演奏ファイルの音量(%)
&level1=第1譜面の難易度(1~10)(第1譜面が無い場合不要)
&level2=第2譜面の難易度(1~10)(第2譜面が無い場合不要)
&level3=第3譜面の難易度(1~10)(第3譜面が無い場合不要)
&format=譜面フォーマット(1~4)
&start_time=演奏開始時間(秒)(譜面フォーマット2の場合不要)
&unit_time=単位時間(秒)(譜面フォーマット2,3,4の場合不要)
&scroll_time=譜面速度(秒)
&gametype=picobeatのゲームの種類(1~3)
&seq1=
(第1譜面データ)
&seq2=
(第2譜面データ)
&seq3=
(第3譜面データ)

ヘッダ
head=carm1
1行目には必ずこの通りに記述する。

title項
music_by項
data_by項
title項は、データのタイトルである。通例として使用曲の曲名をそのまま使う場合が多い。
music_by項は、使用楽曲の作者名を書く。
data_by項は、データ作成者を書く。貴方の事である。

picobeatでは、これらの項に使える文字が制限されている。
使える文字は以下であり、20字以下にする必要がある。
半角文字 A〜Z a〜z 1〜0 !"#$%'-=.,?@+*/_()
全角文字 あ〜ん、ア〜ン

bgm_vol項
演奏mp3ファイルの音量を指定する。
単位は%であり、変えないのならば100にする。

level1項
level2項
level3項
1つのデータファイルには3つの譜面を記述することが出来る。
それぞれ、level1項=第1譜面(LIGHT)、level2項=第2譜面(NORMAL)、level3項=第3譜面(MANIAC)、という名前がついている。
それぞれの譜面について、存在しないならばその項は記述しない。
存在するのならば、難易度を1~10の範囲で記述する。数が多いほど難しいという意味である。

format項
譜面データは4種類の形式(フォーマット)で書く事が出来る。

format=1 の時、フォーマット1で記述する。これは、1拍ずつのデータを順番に書き連ねていく形式であり、譜面を考えながらでも効率よく作成が出来る。途中でテンポが変わる曲には正しく対応できない。
format=2 の時、フォーマット2で記述する。これは、ノート1つごとに絶対時間を細かく記述する形式であり、何らかの方法(ツール等)で時間の計算が出来ることが前提となっている。
format=3か4 の時、フォーマット3・4で記述する。これは、フォーマット1に汎用性を持たせた形式である。

gametype項
picobeatでは、ゲームの形式をここで設定する。(carmのように途中でゲームを変える事はできない)
gametype=1 の時、5KEYモード(5鍵風)
gametype=2 の時、7KEYモード(IIDX風)
gametype=3 の時、9KEYモード(ポップン風)

基本的な理屈
譜面データ作成の基本的な理屈

フォーマット1説明
まず、1拍の長さを決定する。
1拍とは譜面の最小単位であり、たとえば4分音符だけで構成出来るデータであれば、1拍の長さは4分音符になる。ひとつでも8分音符が混ざっていれば、最小は8分音符になるので、1拍の長さは8分音符である。

1拍の実時間が、単位時間(unit_time項)となる。
これを計測する。この計測が正しく出来ないとまともなデータにはならない。

計測のために、曲から始点と終点を選ぶ。
曲の速度(テンポ)が変わらず、拍子がはっきりしており、かつ、なるべく長い部分を選ぶ。
(4拍ぶんを計測して4で割るよりも、200拍ぶんを計測して200で割ったほうが遥かに信頼出来る結果になるため)
MP3DirectCutなど、音声ファイルの「5.127秒地点」のように細かい計測が出来るソフトを使い、始点と終点の間(区間)の時間を計測する。
その区間が1拍の長さの何倍かを数え、区間の実時間から割ることで、単位時間が求められる。小数を丸めないこと。

始点時間 + (単位時間 × 拍数) ≒ 終点時間

となる事を確認すること。誤差は最低でも0.1秒以下に。

例:
使用曲の中で「始点2.612秒」から「終点32.104秒」を「54拍」(4分音符×54)ぶんの長さとして計測する。
(32.104[秒] - 2.612[秒]) ÷ 54[拍] = 0.5461481[秒]
という計算により、この曲の単位時間は0.5461481秒となる。

次に、演奏開始時間(start_time項)を決める。
譜面データは、演奏開始時間以降にしか設定できない。
譜面データの一番最初にノートを置いた場合、それは演奏開始時間と同じ時間に現れることになる。
問題がなければ、先に使った始点をそのまま使うと良い。
演奏開始時間から単位時間をどれだけ足しても、実際の拍とずれていない事が絶対条件である。

次に、譜面速度(scroll_time項)を決める。
これは、ノートが50ドット移動するのに要する時間であり、大きいほどノートは遅いという事になる。
先に求めた単位時間をそのまま使ってもよい。0.2〜1くらいの範囲で適当に決めてもよい。

譜面データ(seq1~seq3項)は、以下のように記述する。
1拍目のデータ,2拍目のデータ,3拍目のデータ, …
このように、その拍に存在するノートの情報を、1拍ごとに半角のカンマで区切って書き連ねていく。
ノートのない拍は、何も書かない。
改行は全て無視されるので、見やすくするためにいくらでも改行してよい。

データの内容は以下である。
ノート別データ一覧
1拍に複数のノートがある場合は、その全てを記述する(「zxc」「46」など)

以上を踏まえて、例えばこのように記述する。
&seq1=
ei,,,,,,u,,
y,,,,,,e,,
r,,,, ,,t,e,
q!,,,q, w!,,,w,
w,,,,,,r,y,
q,,,,e,,u,,
t,,,,q,,e,
,w,,,,,,,,
見やすくするために、8拍ごとに改行している。

フォーマット2説明
フォーマット2では、全てノートの到着時間をそれぞれ秒で指定する。
単位時間は必要ないが、譜面速度(scroll_time項)を求める必要がある。
フォーマット1と同じように計測し、決定すること。譜面速度はイベントにより変更が可能である。

譜面データ(seq1~seq3項)は、以下のように記述する。
1つ目のノートの到達時間(秒)/1つ目のノートの内容,
2つ目のノートの到達時間(秒)/2つ目のノートの内容,
3つ目のノートの到達時間(秒)/3つ目のノートの内容,
 :
このように、ノート1つのデータごとに半角カンマで区切り、さらにその中で、半角スラッシュで区切って記述する。
改行は全て無視されるので、見やすくするためにいくらでも改行してよい。

データの内容は以下である。
ノート別データ一覧
複数のノートが同時に来る場合は、その全てを記述する(「zxc」「46」など)

以下は例である。
いちいち手計算しながら時間を求めるという手間はありえないので、何らかのツールなどで計算する事が前提となっている。
&seq1=
20.924973/y,
21.008263/w,
21.091553/y,
21.174843/w,
21.258133/y,
21.341423/w,
21.424714/qu,
21.924455/qu,
22.424196/qu,
22.923937/qu,
 :

フォーマット3・4説明
フォーマット3・4は、フォーマット1に汎用性を持たせた書式である。
フォーマット1を理解した上で読むこと。

演奏開始時間(&start_time) が必要である。
単位時間(&unit_time) は不要である。

フォーマット1が1拍(=1データ)ごとに記述するのに対して、フォーマット3・4では1行に1小節のデータ(行データ)を記述する。

行データは以下の種類がある。
いずれにも当てはまらない行や空行は無視される。

#1.512642
このように、行の頭に半角シャープ(#)がある場合、その行は小節時間の設定である。
これは1小節の長さを秒単位で記述する。1拍ではない点に注意。
この設定は何度でも行える(変更できる)。
最初の段階では小節時間は設定されていないので、最初のデータを書く前に必ず設定が必要である。

時間ではなく、BPMで小節時間を指定することも可能である。(SSROでは使用できない)
#BPM/160
1小節が4拍(4分音符×4)の時は、このように記述する。
そうでない場合は、さらに4分音符の数を書く。
#BPM/160/3 
この例は、BPM160であり、1小節に4分音符が3つ(3拍子)の場合である。
いずれも小数が使える。
2,,4,,6,,8,
このように、行にいくつかの半角カンマ(,)がある場合、その行は譜面データである。
1行に1小節ぶんのデータを記述する。
記述する内容は以下である。
ノート別データ一覧

1小節がカンマの位置で分割される。フォーマット3と4で、分割のされ方が異なる。
フォーマット3の時、(カンマの数+1)に分割される。
2,4,2,4,2,4,2,4
この例ではカンマは7つであるので、8分割される。
この1小節は8拍であり、1拍は8分音符の長さということになる。
フォーマット4の時、(カンマの数)に分割される。
2,4,2,4,2,4,2,4,
上の例ではカンマは8つであるので、8分割される。
この1小節は8拍であり、1拍は8分音符の長さということになる。
最後のカンマより右に書いたデータは無視される。
フォーマット3と4の違いはこの点だけである。

1拍ぶんのデータを、さらに分割して記述する事も出来る。(SSROでは使用できない)

z   x   c   v v v v
4分音符4分音符4分音符16分音符×4
通常、このようなデータを記述したい場合、一番短い16分音符に合わせて16分割し、
z,,,,x,,,,c,,,,v,v,v,v,
のように書く必要があった。

これを、半角パイプ(「|」=BackSpaceキーの左)を使って簡略化する事が出来る。
1つの拍のデータをパイプで区切って分割する。
上の例は、このように書く事が出来る。
z,x,c,v|v|v|v,
半角パイプが3つなので、4拍目の「v|v|v|v」は4分割される。
C/0.25
このように、行の頭に半角文字で「C/」とある場合、その行は譜面速度の変更である。
譜面速度を変更できる。
B/12.5
このように、行の頭に半角文字で「B/」とある場合、その行は演奏開始時間の再定義である。
これまでのデータに関係なく、演奏開始時間を決め直して、次のデータの時間を決定する。
間奏などで間が空き、次のノートの時間までの補完が面倒な場合などに使う。
時間を遡らないようにすること。
/コメント行だわさ
このように、行の頭に半角文字で「/」がある場合、その行は明確にコメント行と判断され、無視される。
BACK
このように、「BACK」とだけ書かれた行は、1小節戻るを意味する。
z,,,,
BACK
x,,,,

上の例では、zとxは同時になる。

z,,z,,
BACK
,x,,x,

上の例では、「z,x,z,x,」と同じ意味になる。
レーンごとに別々に打ち込みたい場合に有用である。

フォーマット4の例
&seq1=
#1.5  ←ここから、1小節を1.5秒とする(この設定は必ず最初に必要)
4,6,4,6,  ←4分割されるので、4分音符×4になる
2,8,2,8,
2,,2,,6,6,6,,  ←8分音符を含むため、この行(小節)だけ8分割
5,5,5,  ←この行(小節)だけ3連符
/第2パート  ←コメント
#BPM/160  ←ここから、1小節をBPM160相当に変更
B/20  ←演奏開始時間を20秒に再定義。次のデータは20秒目になる
C/0.15  ←ここから、譜面速度を0.15に変更
46,,,,46,,,,
28,,,,28,,,,

背景(クリップ)について
プレイ中に画像などを背景(クリップ)として表示することが出来る。
data.txtの適当な場所に以下の記述をすること。
&back=1
&back_alpha=100
back=1の時、back.jpgを背景とする。
back=2の時、back.swfを背景とする。
背景のファイルを作成し、data.txtなどと同じ場所に置く事。

以下のように書く事もできる。
&backfile=(ファイル名)
この場合は、相対パスや絶対パスを使った記述も可能となる。
backとbackfileを両方書かないこと。
(SSROでは&backfileの記述は使えない)

back_alpha項は、背景の不透明度(単位%)である。100の時標準であり、ノートが見にくい場合に小さくして背景を暗くする。(Carmbeatのみ)

背景の仕様は以下である。
いずれの場合でも、jpgファイルか、40FPS/SWF6形式のswfファイルが使える。
Carmbeat
大きさは300x400である。ただし、300x400とはFLASH全体の大きさであり、画面の上部と下部が隠れる事を考慮する必要がある。
swfの場合、本体のスプライト _root.backspr の中に読みこまれるので、ターゲットの指定の際には注意すること。

picobeat:5KEY、7KEY
大きさは200x200である。
swfの場合、本体のスプライト _root.skinspr.backspr の中に読みこまれるので、ターゲットの指定の際には注意すること。

picobeat:9KEY
大きさは90x200、全体の背景は400x300である。
ファイル名の記述は前述のようにではなく、以下のようにする。
&backfile1=(左側の背景)
&backfile2=(右側の背景)
&backfile3=(全体の背景)
全体の背景は、画面全体に表示される。通常の背景より手前、ノートより奥になる。
swfの場合、本体のスプライト _root.skinspr.backspr1 、 _root.skinspr.backspr2 、 _root.skinspr.backspr3 の中に読みこまれるので、ターゲットの指定の際には注意すること。
どんなswfファイルでも利用出来るが、理想は音が発生せず、ある程度の長さでループするものである。
背景swfを単独で再生して正しく再生されても、背景として読み込むとおかしくなる場合がある。

また、演奏中の音と同期を取ろうとしても無理なので、どうしてもやる場合は、背景swfの(フレーム数ではなく)再生時間を厳密に計測し、それに従って画面を切り替える等で対処すること。

picobeatではデバイスフォントは表示されない場合がある。その場合は埋め込みフォントを使う事。

背景swfからは以下の変数が利用できる。
_root.BGMPOS //曲の進度(ミリ秒)
_root.bgm.duration //曲の全体の長さ(ミリ秒)
_root.st_life //体力(0~100)
_root.st_pe //PERFECT数
_root.st_gr //GREAT数
_root.st_go //GOOD数
_root.st_ba //BAD数
_root.st_mi //MISS数
_root.st_combo //現在のコンボ数
_root.st_maxcombo //最高コンボ数
_root.st_nofnote //総ノート数

_root.st_a //簡易変数A
_root.st_b //簡易変数B
_root.st_c //簡易変数C

_root.st_noteres[n] //n番目のノートの結果
初期では全てに 0 が入っている。
1つのノートの結果が出ると、
ノート種別番号 × 10 + 判定
の値が入る。
ノート種別番号
(Carmbeat)
1〜9   : P型ノート左から
30     : P型ノート全押し
11〜17 : B型ノート左から
18     : B型ノートスクラッチ
10     : B型ノート全押し
21〜24 : D型ノート ← ↓ ↑ →
25,26  : D型ノート 左三角、右三角
20     : D型ノート 矢印全押し
31,32  : T型ノート 赤太鼓、青太鼓
41〜46 : DR型ノート左から
40     : DR型ノート全押し
51〜66 : J styleの左上から右へ

(picobeat)
1〜5   : 5keyモード左から
6      : 5keyモードスクラッチ
11〜17 : 7keyモード左から
18     : 7keyモードスクラッチ
21〜29 : 9keyモード左から
判定
1 : PERFECT
2 : GREAT
3 : GOOD
4 : BAD
5 : MISS
例えば、carmbeatのスクラッチは18番であるので、 3つ目のノートであるこれをGREATで取った場合、 _root.st_noteres[3] = 182; という数が入る。 ノート番号の1から順に、この値が0でなくなるまで監視する事で、 ゲームの状態を背景から知る事が可能になる。

難易度名称の変更
各譜面は、LIGHT、NORMAL、MANIAC、と名付けられているが、これを変更する事が出来る。
data.txtのどこかに以下の記述をすること。
&difname1=(第1譜面の新しい名前)
&difname2=(第2譜面の新しい名前)
&difname3=(第3譜面の新しい名前)
変更しない部分は記述しない。
Carmbeatでは、半角英数字8文字以内、
picobeatでは、半角英数字7文字以内を推奨する。
それ以外の文字でも使用出来るが、レイアウト等に不具合が出る可能性がある。
(そうなったとしてもゲーム自体には影響しない)

全体時間調整
全てのノートの時間を等しく変更する事が出来る。
完成したデータで、音だけを差し替えるような場合に使う。
data.txtのどこかに以下の記述をすること。
&timeadjust=(時間)
時間は秒単位。
全てのノートを2秒遅らせたいなら、&timeadjust=2
2秒早めたいなら、&timeadjust=-2 となる。

簡易変数
背景swfからゲームの状態を知るために、簡易変数を利用する事が出来る。
簡易変数には、簡易変数A 簡易変数B 簡易変数Cの3つがあり、数値型変数であり、初期値は0である。
その内容は、
_root.st_a
_root.st_b
_root.st_c
の変数で知る事が出来る。

簡易変数を操作するには、ノートとして記述する
ノートのデータ実行内容
$AI
簡易変数A += 1
$AD
簡易変数A -= 1
$AZ
簡易変数A = 0
$BI
簡易変数B += 1
$BD
簡易変数B -= 1
$BZ
簡易変数B = 0
$CI
簡易変数C += 1
$CD
簡易変数C -= 1
$CZ
簡易変数C = 0
(I=Increment D=Decrement Z=Zero の頭文字)

1拍に、普通のノートと同時に書く事も出来る。
「z」と「x」と「$AI」を「zx$AI」のように書く。

Carmbeatの拡張機能 (picobeatでは使えない)
オートプレイモード
タイトル画面を出さずに、自動的にオートプレイを開始させるモードである。
data.txtの適当な場所に以下の記述をすること。
&autoplay=1
autoplay項は、オートプレイに使用する譜面番号を書く。
1の場合は第1譜面(LIGHT)を使うことになる。
1回オートプレイが終わった後はタイトル画面に戻る。

DDRっぽいモード
判定位置の矢印の枠だけが表示され、ノートが下から上に流れるモードである。
このモードに限り、[R]キーを押すと流れる方向が逆になる。
data.txtの適当な場所に以下の記述をすること。
&mode=1
このモードを使用する場合、
2(↓) 4(←) 6(→) 8(↑) 5(←↓↑→) 7(左三角) 9(右三角) 以外のノートを使用しないこと。

SSR互換モード
一部のノートに対応するデータを入れ替える。
data.txtの適当な場所に以下の記述をすること。
&ssrcp=1
これを使用すると、
のデータは順に
 4 2 8 6   であるが、これが
 4 2 8 6   に変更される。

SSR用のデータをそのまま使えるようになる。

タイトル画像読み込み
タイトル画面のCarmBeatのロゴ部分に別の画像を表示させることが出来る。
title.jpg というファイルがあると自動的に読み込まれる。
サイズは300x150である。

リブート機能
タイトル画面で以下を押す事でゲームの再起動が出来る。
いずれもdata.txtを読み込むところからやり直すので、data.txtを編集しながら確認したい時に有用である。

タイトル画面で F4 キー
再起動し、再びタイトルに戻る。
タイトル画面で F1〜F3 キー
再起動し、それぞれ譜面1,2,3のオートプレイを開始する。

Carmbeat:J styleについて
jubeat風のJ styleは独立した仕様となっている。他の種類のノートを混ぜることは出来ない。
data.txtに以下の記述をすることで使用可能となる。
&mode=2

使用するノートのデータは以下である。
1234
qwer
asdf
zxcv

ゲームで使用するキーは2種類から選ぶことが出来る。
この内容は自動的に保存され、保存されていない場合は起動時に選択する。
[表示設定]で変更することが出来る。

タイプ1タイプ2
1234
QWER
ASDF
ZXCV
4567
RTYU
FGHJ
VBNM

その他の異なる点は以下である。
・scroll_time の値は無視される(常に速度は一定)が、省略するとエラーになるので何か書いておくこと。
・ゲーム中にノートの速度を変更しても、得点が0.95倍になるペナルティが無い。また、速度は自動的に保存される。
・その譜面で「一番上の列が使われていない」「一番上と2列目が使われていない」場合、使われない部分は表示されなくなる。
・ロングノートは禁止されていないが正しく表示されない。

picobeatの拡張機能
5KEYモードにおける謎のノート

5KEYモードで、6キー、7キーを使う事が出来る。
ノート用文字は「f」「v」であり、ゲームで使うキーも同じである。
9KEYモードにおける謎のノート

9KEYモードで、謎のピンクを使う事が出来る。
ノート用文字は左が「a」右が「h」であり、ゲームで使うキーも同じである。
ドラムっぽい謎のモード

&gametype=4
とする事で、謎のドラムモードを使用する事が出来る。

ノート用文字は以下である。ゲームで使うキーも同じである。
左シンバルハイハット左バススネアハイタム 右バスロータムフロアタム右シンバル
a
s
x
d
f
v
g
h
j

背景の大きさは130x220である。
リブート機能
タイトル画面で以下を押す事でゲームの再起動が出来る。
いずれもdata.txtを読み込むところからやり直すので、data.txtを編集しながら確認したい時に有用である。

タイトル画面で F4 キー
再起動し、再びタイトルに戻る。
タイトル画面で F1〜F3 キー
再起動し、それぞれ譜面1,2,3のオートプレイを開始する。

作成上の注意点
・キーボードの場合、3つ以上の同時押しは反応しない場合があるので考慮するべきである。

・ロングノートが終わった直後に同じノートがあると、誤動作でミスし易くなる。

・画面にロングノートがある時に譜面停止すると、停止が終わった時にロングノートの帯の長さが変わる。(仕様。変更後の長さが正しい)

アップロードの方法
全てのファイルが用意出来たら、FLASH再生用のhtmlファイルを作成する。
よくわからなければ、以下を右クリック保存。
Carmbeat用再生html
picobeat用再生html
(拡張子を.htmlに変更すること)
(「FLASH表示部」は変更しないこと)

carm.swf または pico.swf
bgm.mp3
data.txt
再生用.html
背景ファイル(必要ならば)
以上全てのファイルをサーバーの同じディレクトリ(フォルダ)に置く事で作業が完了する。
data.txtはテキストファイルなのでアスキー転送する事。これ以外はバイナリ転送。
再生用htmlを実行してテストすること。
ローカルでプレイする際も同じディレクトリであれば動作する。

汎用背景集
全て、使用は自由である。
右クリックで保存し、背景ファイルとして指定すること。

1.キャラクター集 (picobeat 9KEY)

picobeatの9KEYで背景に表示するキャラクターである。
毎回ランダムに選ばれる。
キャラクター集(左側用)
キャラクター集(右側用)
画像借用元 :
http://members.jcom.home.ne.jp/mozunatto/
http://forest.her.jp/moricchi/

2.MENDES風背景 (picobeat 5KEY/7KEY)

ノートを消すごとに自機から弾が出る、ゲーム風の画面を表示する。
MENDES風背景

Game & FLASH & Document by D4U