シーンとは
初めてヴェルニースに入った時のサイモアの演説や、パルミアで王とラーネイレが対面したりしてるシーンのこと。
これと同様のことがカスタムマップで再現できる。
シーン再生のタイミングはマップに入った時、マップから出た時、CNPCで{sceneplay}もしくは%txtsceneplayを使用したとき、の3パターン。
作り方
user/cmapフォルダ内に「***.sc1」というファイルを置くことで使用できる(***はマップ名)。英語モードではsc1をsc2にする。
各マップを生成する際、user/cmapフォルダに以下のファイルがある場合は取り込むことができる(***はマップ名、#は連番)。
- ***_cmapbg#.bmp 背景画像(640×480) 30種類まで ファイル形式はbmpに限定。
- ***_cmapface#.bmp ポートレート(80×112) 30種類まで ファイル形式はbmpに限定。
- ***_cmapmc#.mid、***_cmapmc#.mp3 BGM 30種類まで ファイル形式はmp3もしくはmidiに限定。
- ***_cmapse#.wav 効果音 30種類まで ファイル形式はwavに限定。
- BGMは***_bgm#.mid、***_bgm#.mp3(#は階層番号+100)とすることで指定した階層で最優先に適用することができる
基本コマンド
基本的に
{タグ} "ファイル名"
の形式で記入
{*}
シーン再生番号。
数値にはマップ変数の90-99を使用し、番号は下一桁*10000に対応(変数が90番で0番目のシーンなら{0}、変数が95番で3番目のシーンなら{50003})。
シーン再生に必要な値はシーンが再生された段階で+1され、具体的には{0}が再生された場合、次のシーン判定で{1}が再生される条件が満たされることになる。
それ以外の場合、変数の操作なので会話本文に{mgdata90add1}などを記入する必要がある。
もう一つの手段として、新規階層に到達した時に階層+100000番のシーンがあればそれを再生する。ただし、仕様上の都合で地下方向のみ適用されるとのこと。
{pic}
背景画像。
giraphicフォルダにあるbg#.bmp、もしくはuser/cmapフォルダの***_cmap#.bmpに対応。
記述する際は"bg#"、"cmapbg#"と記述し、マップ名・拡張子は不要。
{mc}
BGM。
既存のBGMの場合、"McIntro"のような形式で指定。対応する曲は本家wikiのアイテム>ディスクを参照。
user/cmapフォルダから指定する場合、"cmapmc#.mid"、"cmapmc#.mp3"とマップ名を含めずに記述。
{se}
効果音。既存の効果音の場合、"atk1.wav"のようにファイル名(+拡張子)でそのまま記述。
user/cmapフォルダから指定する場合、BGM同様にマップ名を含めずに"cmapse#.wav"と記述。
{actor_*}
登場キャラの設定。登場するキャラの数だけ連番で指定。
"x,y"でxはキャラの名前、yは顔番号を指定。
顔番号は通常graphicフォルダのface1.bmpに対応。user/cmapフォルダから指定する場合も数字のみ(数字はcmapフォルダの方が優先される)。
{fade}
画面が暗転する。本文は記述しない。
{fadein}
暗転から復帰する。本文は記述しない。
{wait}
ちょっと待つ。本文は記述しない。
{txt}
テキスト本文。
{chat_*}
{actor_*}に対応したキャラのダイアログを表示。
{end}
シーン終了フラグ
例文
MMA付属の「mogumogucastle.sc1」より。
マップ名は「mogumogucastle」。
取り込まれているファイルは「mogumogucastle_cmapbg1.bmp」「mogumogucastle_cmapbg2.bmp」「mogumogucastle_cmapface1.bmp」の三つ。
;#####################################
{0}
{pic} "bg3"
{actor_1} "異形の森の使者『ロミアス』,57"
{actor_2} "特製肉まんじゅう,1"
{mc} "mcIntro"
{txt}
今はもう忘れ去られた昔
イルヴァの地に十の文明の残骸が埋もれ
レム・イドの傷跡が癒えぬまま迎えた十一紀、
最も多くを破壊し生み出したと語られる時代
シエラ・テールの物語。
{fade}
{mc} "mcTown1"
{pic} "cmapbg1"
{fadein}
{chat_1}
突然ゲームが振り出しに戻ったかと心配させてしまったか? これはシーン再生機能の紹介だから安心していいぞ。
{chat_1}
カスタムマップとカスタムワールドにはイベント管理用に独自のマップ変数が用意されているが、話の進行によってこれが一定の数値になった時、本家のメインシナリオにあったようなイベントシーンを再生することができる。
{chat_1}
イベントシーンの再生タイミングはカスタムマップに入る時と出る時だ。マップ切替時にイベント変数が基準を満たしていれば、対応するシーンが再生される。他にもCNPCの会話ダイアログ終了に%byeの代わりに%sceneplayを使うことでもシーン判定を呼び出せるぞ。
{chat_1}
イベントシーンに使う素材はある程度だがカスタムマップとカスタムワールドのファイルに含めることができる。ファイル生成の際cmapフォルダに「マップ名_cmapbg(連番).bmp」あるいは「マップ名_cmapface(連番).bmp」というファイルがあればそれぞれ背景と顔画像として最大30種類ずつ取り込むことができる。そして……
{fade}
{pic} "cmapbg2"
{fadein}
{txt}
{chat_1}
このようにイベント中に表示を切り替えて使用できるというわけだ。
{chat_2}
ちぃーっす!
{pic} "cmapbg1"
{chat_1}
今再生しているシーンの定義ファイル自体もcmapフォルダに用意してあれば自動的にカスタムマップやカスタムワールドマップのファイルに梱包される。「マップ名.sc1」が日本語のシーンファイル名だ。英語版も用意できるなら「マップ名.sc2」という名前で作っておくといい。
{chat_1}
イベントシーンの再生判定に使用されるのは0番から99番まであるマップ変数の90番台の10個だ。恐らく今は値が全て0になっていると思うが、このシーンは90番のマップ変数が0という条件で再生している。
{chat_1}
シーンファイル内の各イベントの先頭には条件に対応する番号が{}で囲まれて書かれている。今表示中のシーンは変数の値0に対応しているから{0}が開始位置だ。
{chat_1}
値が10の時に表示するシーンは{10}、20の時は{20}。91番以降の変数には各番ごとに10000の固定数が加えられて、91番の値が10なら{10010}、95番の値が2で再生するなら{50002}という書き方になる。
{chat_1}
再生したシーンに対応する変数は表示後、値が1加算される。これにより同じシーンがマップを移動するたびに表示されることはないはずだ。逆に{1}{2}{3}{4}と順に作っておくことで出入り毎に少しずつ話を進行させる演出もできるぞ。
{chat_1}
駆け足だが説明は以上だ。不十分とは思うが急ごしらえなので容赦してもらいたい。詳しい説明は順次ドキュメント類に書き足していくことになるだろうからそちらも参照してくれ。
{fade}
{end}
{100}
{pic} "cmapbg1"
{txt}
俺達の旅はまだ始まったばかりだ!
第一部完
{end}
{actor_*}はできるだけ早い段階で設定したほ方がいいかもしれない。
最初が{0}なので、(変数が操作されていなければ)初めてそのマップに入った段階でシーンが再生される。{100}は何らかの手段でマップ変数の90番が100になると再生される。
逆に、{0}が再生された後に何らかの手段でマップ変数の90番の値が0になるともう一度見ることが出来る。
{0}{10000}{20000}のように、複数の条件が満たされているとマップ変数の小さい方から順に連続で再生される。