概要
ExHIBITの標準CGモードは、ExHIBIT標準CGモード.xlsを適切に埋めることで作成されます。
このドキュメントには、主にExHIBIT標準CGモード.xlsを書くための情報が記述されています。
標準のCGモードは、ゲーム中IDで指定された演出リソースのほとんど(立ちキャラ、イベントCG、DLTアニメ、MPGアニメ)を、一様に扱えるようになっています。
そういうと一見複雑な感じがしますが、標準CGモードは、「アイテム」「グループ」「サムネール」の3つのオブジェクトから構成されていて、 とても簡単に設定できるようになっています。それぞれの関係とCGモード作成の手順は次の通りです。
  1. 表示するカットを定義するアイテムを好きなだけ作成する
  2. いくつかのアイテムをひとまとめにしたグループを好きなだけ作成する
  3. いくつかのグループをひとまとめにしたサムネールを好きなだけ作成する
  4. サムネールの表示位置やページ割りを決める
こうして作成されたオブジェクトは、実際のゲーム中で以下のように処理されます。
  1. ユーザーが頁を選択する。
    該当するサムネール群が表示されます。よくあるCGモードの選択画面ですね。
  2. いずれかのサムネールが選択される。
    サムネールに関連づけられているグループの最初のものの中の最初のアイテムが表示されます。
    ここからが少し独特で、縦と横の操作があります。
    十時キーを想像してください。縦のキーを押すと、順番に定義されているグループの1枚目の画像を表示します。 横のキーを押すと、グループ内に定義されている実際の画像を順番に表示します。
    立ちキャラで言えば、縦キーを押すと、ポーズを表示し、横キーを押すと表情を表示するといったイメージです。
    ビューよりも大きな絵は自動的に拡大縮小の対象となり、ユーザーは任意にそれを行うことが出来ます。
    表示を終了するとサムネール一覧に戻ります。
上記の定義を行うために、ExHIBIT標準CGモードxlsは、レイアウト定義サムネール定義グループ定義の3シートから出来ています。 このxlsを埋めて、サムネールとサムネール画面を作るだけで、CGモードの作成は終了です。 フラグの管理や表示の制御などはすべてシステムが自動的に行います。
構成
標準CGモードは、「アイテム」「グループ」「サムネール」の3つの概念から構成されています。
アイテムは、表示するカットを定義するオブジェクトで、1カットが1アイテムで定義されます。
グループは、1つ以上のアイテムをまとめたものです。
立ちキャラで言えば、同じポーズで違う表情はすべて別のアイテムになり、 同一ポーズの表情違いのアイテムの集まり全体がグループになるようなものです。
サムネールは、1つ以上のグループをまとめたもので、ユーザーが選択するのはこのサムネールになります。
アイテム定義のフォーマット
アイテムは、mode, p0, p1, p2, p3 の5つのパラメータで定義します。
modeは実際にアイテムで表示する画像の種類を表し、p0〜p3はmode毎に異なった意味を持っています。
グループ定義のアイテム指定
■ mode 0
立ちキャラ表示用で、立ちキャラ+背景を指定します。
p0. 表示するキャラクターID
p1. 表示するボディID
p2. 表示するフェースID
p3. 背景に表示するCGID。変更しない場合は-1を指定してください。
背景のイベントCGがビューよりも大きい場合は、CGIDに続いてソース上の位置と領域を指定できます。 デリミタは半角のセミコロンです。
BGID;sx;sy;sw;sh
sw, shを省略、または0を指定した場合は、sx, sy からビューの大きさが利用されます。
■ mode 1
イベントCGを表示します。
p0. 表示するCGID。
p1. 描画方法を指定します。通常は9(DRAW_FADE)です。
p2. 表示時間をms単位で指定します。通常は300程度です。
p3. 0を指定してください。
■ mode 2
DLT(アニメーション)を指定します。
p0. 表示するDLTのID
p1. 同時に再生する効果音があれば、効果音IDを指定します。
再生しない場合は-1を指定してください。
p2. p3の引数の種類を指定します。
  1. p3は無視されます
  2. p3はLID;LX;LY;fade;fadeTime;BgCgID
  3. p3はLID;LX;LY;fade;fadeTime;BgCgID;cid;bid;fid;nPos
通常、p2=1 は、背景+前景DLTのときに、p2=2 は、背景+立ちキャラ+前景DLTのときに利用します。
パラメータの項目の意味は次の通りです。
LID 表示する仮想レイヤーID。-1だとイベント画面に表示するが出来るだけレイヤーを作成した方がよい300推奨
LX LIDを表示するX座標。キャラの汗とかをみせたい時に使う。
LY 同Y座標
fade LIDがレイヤーを指す場合、そのレイヤーの透明度。通常は16。
fadeTime LIDがレイヤーを指す場合、アニメがフェードインする時間。
BgCgID LIDがレイヤーを指す場合、イベント画面に表示するCGのID。
DLTがマスク付きだったり、ビューより小さい場合に指定することが多い。
cid キャラID
bid ボディID
fid フェースID
nPos 立ち位置指定。通常は、-12345。
なお、DLTがビューよりも大きい場合、レイヤーに表示するとユーザーが任意に移動させることができるようになります。 ただしCGのように拡大縮小はできません。
■ mode 3
MPGを音無で再生します。
実際は再生環境のDirectShowで取り扱える形式ならWMVやXVIDを始め、どんな形式でも構いません。
mpgID,wavID(-1),flags(0),tmStart;tmLoopStart;tmLoopEnd
p0. 表示するムービーのID
p1. 同時に再生する効果音があれば、効果音IDを指定します。
再生しない場合は-1を指定してください。
p2. フラグ。
00000000_00000000_00000000_00000000
|||||||| |||||||| |||||||| |||||||+- 1:p3に時間の設定がある
|||||||| |||||||| ++++++++---------- 0x00-0xFF: 識別コード
0だと従来通りp3が無視され全体がループ再生されます。 p3に時間指定を与えたい場合は、p2に0x??01を指定してください。
識別コードは同一グループの中で異なっていれば、0-0xFFのうち何でも構いません。
これは、時間だけが異なっているデータを与えると、システムが同じデータが与えられたと判断する問題に対応するために用意されました。 つまり、p2の値を変えることで、別のデータなんだよと言うことを教えるためだけに用意されたわけです。 通常は、同一mpgを取り扱うアイテム内で、0,1,2...と順に指定すれば良いでしょう。
p3. p1のbit0が1の場合、tmStart;tmLoopStart;tmLoopEnd という形式で再生時間を指定できます。 tmStartから再生が開始され、tmLoopEndに到達したら以降tmLoopStart-tmLoopEnd間を繰り返します。
指定は min.sec.msec.μsec 形式です。
この形式はRSDのCMD_CTRLMOVIEコマンドでも使われているため、sketchのムービーの操作コマンドで設定した後、 RSDをテキストエディタで開くことで、指定時間を取り出すことができます。 CMD_CTRLMOVIEは、時間ぽいところが、再生開始点,再生終了点,ループ開始点,ループ終了点と4つ並んでいますので、すぐ分かります。 その部分を取り出して貼り付ければOKです。

CMD_CTRLMOVIE`-1`0`68239360,2,-1,0`0`0,0,
0.11.333.334, <- 再生開始点
0.15.291.667, <- 再生終了点
0.11.333.334, <- ループ開始点
0.15.291.667, <- ループ終了点
-1,,1;0.13.291.667`OID:0 LP(11秒333.334→15秒291.667) すぐ開始 接続点:1
■ mode 4
OP/EDなどの所謂ムービーです。
ムービーは、ムービー再生用の最上位ウィンドウに表示されます。このウィンドウはC/I, C/Oしかできないため、 p1にムービー開始時の色(または画像を)、p2にムー日終了時の色(または画像を)指定することで、見た目をF/I, F/Oさせることができます。
p0. 表示するムービーのIDです。
p1. 再生前に描画する画像IDを指定します。0-255を指定した場合、グレースケールの黒〜白になります。256以上はCGIDになります。 処理を行わない場合は-1を指定します。
p2. 再生終了時に表示しておく画像IDです。0-255を指定した場合、グレースケールの黒〜白になります。256以上はCGIDになります。 処理を行わない場合は-1を指定します。
p3. 予約されています。0を指定してください。
■ mode 5
レイヤーを表示するための書式です。同時に3枚のレイヤーを表示できます
p0. 主体となるレイヤーを作成するCGIDです。
p1. p0の表示位置X座標(ビュー上の位置)
p2. p0の表示位置Y座標(ビュー上の位置)
p3. BGID;BGKIND[;ID_0;KIND_0;DX_0;DY_0;ID_1;KIND_1;DX_1;DY_1]
[]に囲まれた部分は省略可能です。
BGID 背景のイベント画面に表示する画像のIDです。種類は、次のBGKINDで定義します。
BGKIND BGIDの種類を定義します。1ならCG 2ならDLT 3ならmpgです。
ID_0;KIND_0;DX_0;DY_0 KIND_0の種類のID_0の画像を、DX_0, DY_0に表示します。
利用するレイヤーIDはシステムが適当に決めますが、p0 < ID_0 < ID_1 の順でp0が一番奧に表示されることが保証されています。
ID_?が0の時は未使用です。
ID_1;KIND_1;DX_1;DY_1 3枚目の表示です。意味は2枚目と同様です。
ExHIBIT標準CG.xlsの記述方法
xlsをダウンロードできるようにして、各ページの記述方法を解説する。
このページは制作中です
概要 レイアウト定義 サムネール画面の位置や表示レイヤー、およびサムネールの各ページに 表示するサムネールを指定します。 page そのサムネールが表示されているCGモードのページです。0から始まります。 代表ID そのページの指定位置に表示されるサムネールのIDです。 サムネール定義シートで、このサムネールに属するCG群のIDを定義します。 このIDはそのままサムネールのファイル名になります。0001 は、0001.gyu となります。 このIDは、サムネールが作成されたCGIDとは直接関係ありません。 選択ItemID その場所に定義される選択アイテムのIDです。 ユーザーが選択した結果は、このIDで返されます。 通常、そのページに最大N枚のサムネールが配置できるとすると、10〜10+N-1 が 利用されます。 layerID  サムネール用の選択アイテムを関連づけるレイヤーのIDです。  よく分からない場合は、610で構いません。 次の、x,y,w,h はこのレイヤー上の座標になります。 x,y サムネールのレイヤー相対表示位置です。 幅と高さは、選択アイテムのそれになります。 F0〜 追加既見フラグの定義を行います。 通常サムネールは、登録された代表IDに関連づけられたグループIDで定義されている 画像を1つでも見た場合に開きますが、それ以外の画像を見た場合開きたいことが あります。例えば、同一画像のサイズ違いなどがそれです。 そういう場合に、そのサムネールを開くCGIDをここで定義します。 サムネール定義 代表IDで示されるサムネールに、画像グループを関連づけるシートです。 代表IDには、必ず1つ以上のグループが関連づけられます。 代表IDを選択した場合、このグループが順番に表示されます。 一般的にはポーズ替えなどの大きな差分がグループとして分離され、1つの グループ内には表情替え等の小さな差分が登録されるのが普通です。 代表ID レイアウト定義の代表IDと同じものです。 gid-0〜 代表IDに関連づけるグループIDを定義します。 最低1つのグループIDを関連づけなければなりません。 実際に表示される画像は、次のグループID定義で定義します。