第09回 実際にシナリオを作ってみよう


オープニングトーク

ツカバーク「ようこそ、ツカバークのSRCコラムへ。コラム進行役のツカバークです。」

ジェナス「同じく進行役のジェナス=ジェイフォードだ。」

ツカバーク「えー、早速始まったこのSRCコラムですが、色々あってコラム執筆が遅れてしまってすみません。」

ジェナス「そこからカミングアウトするのかよ……。」

ツカバーク「1月は仕事が全く無くて暇だったのだけど、最近はソーシャルゲームについつい没頭していまして……。」

ジェナス「モ○ゲーか? モ○ゲーなのか!?」

ツカバーク「いえ、○リーのデ○コレを徹底的に。」

ジェナス「俺はてっきり、モ○ゲーの方をやっているのかと思ったけどな。」

ツカバーク「まあさすがにアレコレ手を出すと、課金で大半お金を使ってしまうことが目に見えてるのでほどほどにやってます。」

ジェナス「で……いくら課金したんだ、言ってみろ。」

ツカバーク「現時点で○万円ぐらい?」

ジェナス「中には数十万つぎ込む馬鹿がいるみたいだが、仕事もほぼしていない状況なのにそんなに使って大丈夫なのか?」

ツカバーク「だ、大丈夫なんじゃないかな……多分。」

ジェナス「いいから早く今回のコーナーのテーマを……むしろ、安定した仕事を見つければいいだろうが。」

ツカバーク「収入面の問題に関しては頑張ってます、頑張ってはいますけど……。」

ジェナス「その口ぶりだと、全然進展していないみたいだな。」

ツカバーク「自分のリアル事情はそれくらいにして……そろそろ本題に移りたいと思います。」


まずは手軽な短編シナリオから作ってみよう

ジェナス「今回のテーマは、シナリオを公開するまでの手順について語っていくんだったな。」

ツカバーク「いよいよ本格的に、SRCシナリオライターへの一歩を踏み出すという訳です。」

ジェナス「まあこの段階に来るまでが、長い道のりだったがな。」

ツカバーク「SRCコラム開始が2009年の11月末、今回の更新が2012年の2月末ですからねぇ(笑)」

ジェナス「そういえば今回は、恒例の補佐役を呼んでいないんだな。」

ツカバーク「補佐役がいないのは予算の都合上……ではなく、総集編風味にお届けしようかと。」

ジェナス「つまり今までのコラムで学んだ事を踏まえて、実際のシナリオ作成に挑む方向性な訳か。」

ツカバーク「とはいえ、あくまでも作者主観で作成しているので、あまり参考にならないかもなのでご了承ください。
まずは今までシナリオ作成に必須なコラム内容について、纏めておさらいしていきましょう。」

  • SRC本体のダウンロード
  • シナリオ作成に必要な素材集め
  • 作成するシナリオのコンセプト決め
  • eveファイルの作り方
  • シナリオのフォルダ構成
  • データのファイル構成
  • イベントラベルとイベントコマンドの使い方

ジェナス「ざっと纏めるとこんな感じだな。特にSRC本体はシナリオのテストプレイには必須だから、第02回コラムを参照してダウンロードしてくれ。」

ツカバーク「必要な素材集めは第03回、シナリオのコンセプト決めは第04回、eveファイルの作成方法とシナリオのフォルダ構成は第05回、
データのファイル構成は第06回、イベントラベルの使い方は第7回、イベントコマンドの使い方は第08回をそれぞれ参照してくだい。
以上で、コラム内容のおさらいは一通り終わりです。」

ジェナス「作成するシナリオのコンセプトが大方固まったら、使用する素材とデータをそれぞれ対応するフォルダに入れ、
イベントファイルとマップファイルをそれぞれ作成しておく。
まずイベントファイルを作成する際は、下記のような土台を予め作成しておくと良いだろう。記述が面倒な人はコピー&ペーストで張り付けておくといい。
ちなみにマップファイルはイベントファイルと同じファイル名にしておくと、対応したマップファイルが自動的に表示されるぞ。」

@作品名

プロローグ:

Exit

スタート:

Exit

勝利条件:

Exit

エピローグ:

Exit

ツカバーク「イベントファイルの土台が完成したら、下記の一例のように作品の読み込み、パイロットとユニットを予めプロローグで作成する処理を記述します。」

@テイルズオブファンタジア
@テイルズオブファンタジア(モンスター)

プロローグ:
Unit クレス=アルベイン(前期) 0
Pilot クレス=アルベイン 10
Ride クレス クレス=アルベイン(前期)
Exit

ジェナス「まずはシナリオに使うデータを、イベントファイルの先頭に@作品名という行を指定しておく。
データは予めGSCデータパックからコピーしてくるか、自作した作品のフォルダをDataフォルダに入れておくといい。
ちなみにテイルズオブファンタジア(モンスター)のデータは、作者が自作しているぞ。」

ツカバーク「次はプロローグラベル内に、Pilotコマンド、Unitコマンドを使いユニットとパイロットをそれぞれ作成して、Rideコマンドでユニットに乗せます。
各イベントコマンドの書式は、SRC本体のヘルプから流用すると下記のようになります。」

Unit name rank

指定項目 解説
name 作成するユニットの名称
rank 作成するユニットのランク

Pilot name level [ID]

指定項目 解説
name 作成するパイロットの名称
level 作成するパイロットのレベル
ID パイロットのグループID

Ride pilot [unit]

指定項目 解説
pilot 乗せ換えを行うパイロット
unit パイロットを乗せるユニットのユニット名称またはユニットID

ジェナス「新規にユニットを作成するなら、Createコマンドで十分事足りるんだが、次のスタートイベントで詳しく解説していくぞ。」

スタート:
Telop テスト
Launch クレス 11 11
Create 味方 ミント=アドネード(前期) 0 ミント=アドネード 10 7 11
Create 味方 チェスター=バークライト(前期) 0 チェスター=バークライト 10 11 7
Create 敵 シルバードラゴン(TOP) 0 TOP汎用モンスター・強(ザコ) 15 19 19 銀竜
Create 敵 ドラゴンナイト(TOP) 0 TOP汎用モンスター(ザコ) 10 17 19 リザード
Create 敵 ドラゴンナイト(TOP) 0 TOP汎用モンスター(ザコ) 10 19 17 リザード
Create 敵 リザードマン(TOP) 0 TOP汎用モンスター・弱(ザコ) 9 15 17
Create 敵 リザードマン(TOP) 0 TOP汎用モンスター・弱(ザコ) 9 16 16
Create 敵 リザードマン(TOP) 0 TOP汎用モンスター・弱(ザコ) 9 17 15
Create 敵 ピヨピヨ(TOP) 0 TOP汎用モンスター・弱(ザコ) 9 19 11
Create 敵 ピヨピヨ(TOP) 0 TOP汎用モンスター・弱(ザコ) 9 18 12
Create 敵 ピヨピヨ(TOP) 0 TOP汎用モンスター・弱(ザコ) 9 12 18
Create 敵 ピヨピヨ(TOP) 0 TOP汎用モンスター・弱(ザコ) 9 11 19
ChangeMode 銀竜 待機
ChangeMode リザード 待機
Exit

ツカバーク「プロローグラベル内の書式は、予め作成しておいたユニットをLaunchコマンドで配置する為の複線だった訳です。
Createコマンドなら一行で済みますが、シナリオの展開に合わせて臨機応変に使い分けると良いんじゃないかと。
新たにTelopコマンド、ChangeModeコマンドが加わっているので、Launchコマンドと合わせて解説していきましょう。」

Telop message

指定項目 解説
message 表示するメッセージ

ジェナス「Telopコマンドはその名の通り、テロップを表示させるためのコマンドだ。主にサブタイトルの表示に使われるな。
一行で表示可能な文字数は全角25行目までだが、半角ピリオド(.)をメッセージに挿入すると、一行だけ改行を行うことが可能だ。
なお、テロップが表示される際には、Subtitle.midが自動的に鳴るようになっているぞ。」

ChangeMode [unit] mode

指定項目 解説
unit 思考モードを変更するユニットのメインパイロット名またはグループID
mode 思考モード

ツカバーク「次はChangeModeコマンド。これはユニットの思考ルーチンを変更するためのコマンドです。
使い方としては、敵をその場から動かなくしたり、特定のユニットを狙うようにするといった具合でしょうか。
思考モードに関しては説明すると長くなるので、詳しくはSRC本体のヘルプを参照してくだされば幸いです。」

Launch [unit] x y [option]

指定項目 解説
unit 出撃させるユニットのメインパイロット名またはグループID
x y ユニットを出撃させる座標
option 出撃の表示方法の指定

ジェナス「Launchコマンドは、作成済みのユニットを出撃させるためのコマンドだ。
特定のユニットを強制出撃させたり、イベントで撤退した敵や味方を再度配置するイベントに使われることが多い。
スタートイベントが組み終わったら、次は勝利条件コマンドを簡単に組んでみるぞ。」

勝利条件:
Talk システム
勝利条件;敵の全滅
敗北条件;味方の全滅
End
Exit

ツカバーク「ラベル内で使われてるTalkコマンドは以前のコラムで語ったので省略しますが、
勝利条件コマンドは大抵のシナリオで使われているので、必ず入れておきましょう。
Talkコマンドの最後の行には、必ずEndを入れておくのを忘れずに。これを記述し忘れるとエラーになりますので。」

ジェナス「次は、味方または敵増援を出すためのラベルと書式をざっと挙げていこうと思う。」

ターン 3 敵:
Create 敵 ドラゴントゥース(TOP) 0 TOP汎用モンスター・強(無言)(ザコ) 15 2 2
Create 敵 ボーンナイト(TOP) 0 TOP汎用モンスター(無言)(ザコ) 10 1 3
Create 敵 ボーンナイト(TOP) 0 TOP汎用モンスター(無言)(ザコ) 10 3 1
Create 敵 スケルトン(TOP) 0 TOP汎用モンスター・弱(無言)(ザコ) 9 5 3
Create 敵 スケルトン(TOP) 0 TOP汎用モンスター・弱(無言)(ザコ) 9 4 4
Create 敵 スケルトン(TOP) 0 TOP汎用モンスター・弱(無言)(ザコ) 9 3 5
ChangeMode 銀竜 通常
ChangeMode リザード 通常
Exit

ターン 4 味方:
Create 味方 アーチェ=クライン(前期) 0 アーチェ=クライン 10 8 6
Create 味方 クラース=F=レスター(前期) 0 クラース=F=レスター 10 7 7
Create 味方 藤林すず(前期) 0 藤林すず 10 6 8
Exit

攻撃後 味方 敵:
Create 敵 ネビロス(TOP) 0 TOP汎用モンスター(ザコ) 10 18 3
Create 敵 クレイデーモン(TOP) 0 TOP汎用モンスター・弱(ザコ) 9 17 2
Create 敵 クレイデーモン(TOP) 0 TOP汎用モンスター・弱(ザコ) 9 19 4
Create 敵 ウィングデビル(TOP) 0 TOP汎用モンスター(ザコ) 10 3 18
Create 敵 クレイデーモン(TOP) 0 TOP汎用モンスター・弱(ザコ) 9 2 17
Create 敵 クレイデーモン(TOP) 0 TOP汎用モンスター・弱(ザコ) 9 4 19
ClearEvent
Exit

ジェナス「簡潔に説明すると、敵フェイズ3ターン目で敵増援、味方フェイズ4ターン目で味方増援がそれぞれ出現、戦闘後に敵増援が出現するといった具合だ。
また敵フェイズ3ターン目は、待機状態のユニットをChangeModeコマンドで元に戻す処理を行ってるぞ。 」

ツカバーク「攻撃後ラベルにはClearEventコマンドをラベル内に組み込んでいますが、これは無限にイベントを発生させないようにするための処置です。
記述し忘れるとバグの原因となるので、ClearEventの付け忘れには十分ご注意ください。」

ジェナス「これで大体のコマンドは組み終わった訳だが、今の仕様だと敵が全滅してもクリア出来ない、
味方が全滅してもゲームオーバーにならないといった事態に陥る事だと思う。ここで、全滅ラベルの出番というわけだ。」

全滅 味方:
GameOver
Exit

全滅 敵:
Continue サンプル02.eve
Exit

ツカバーク「味方全滅時にGameOverコマンドを、敵全滅時にContinueコマンドをそれぞれ使います。
GameOverコマンドは、ゲームオーバーの処理を行うためのコマンドで、Dataフォルダ内のSystemフォルダ内にあるGameOver.eveが使われます。
次にContinueコマンドは、現在のステージを終了して次のステージに移行するためのコマンドです。
他にもGameClearコマンドとQuitコマンドがありますが、前者はゲーム終了時、後者はSRC終了時にそれぞれ使います。」

ジェナス「Continueコマンドで指定したeveファイルが存在しない場合、当然次ステージへは行けない。
1話完結の場合はGameClearコマンド、短編や長編シナリオの場合はContinueコマンドを使うといい。
ちなみに上記の一例で、各ラベルの最後にExitコマンドを記述しているが、イベント制御系以降のコマンドは実行されないようになっている。
初心者のうちは「だったら何のために記述しているんだろう?」と疑問に思うかもしれないが、後々役立つから覚えておいて損はないぞ。」

エピローグ:
Leave クラース
Leave すず
Exit

ツカバーク「最後はエピローグコマンド。ここではLeaveコマンドで味方離脱の処理を行っています。
Leaveコマンドは、味方を一時戦線離脱させる際に使うコマンドです。
離脱させたパイロット及びユニットは、部隊編成やインターミッションに表示されず、非戦闘員の場合は登場する戦闘メッセは表示されません。
なお、離脱させたユニットにはJoinコマンドを、ユニット及びパイロットをデータ上から削除する場合は、
RemoveUnitコマンドとRemovePilotコマンドを使用します。」

ジェナス「ユニットだけを削除したい場合はRemoveUnitコマンド、パイロットとユニットを一緒に削除する場合は、RemovePilotコマンドを使うといい。
結構長々と語っちまったが、これで短編シナリオの作り方は以上になる。」

ツカバーク「今回までの範囲で紹介した例文を集めたシナリオは、こちらからダウンロードできます。後は実際に動かして動作を確認してみてください。」


エンディングトーク

ツカバーク「さて、今回は長々だったツカバークのSRCコラム、そろそろお別れの時間となってしまいました。
       このSRCコラムに関する意見、感想、ツッコミは、メールフォーム掲示板にて順次受け付けています。」

ジェナス「第9回までやっておきながら、意見感想共に未だに0通とは……まるで打ち切って欲しいと言わんばかりの展開だな。」

ツカバーク「まあそんなこんなで、更新ブランクもありながら不定期に続けてきたSRCコラムですが……なんと次回で最終回となります!」

ジェナス「………………。」

ツカバーク「どうしたのジェナス君、急に黙り込んじゃって?」

ジェナス「いや……まさかまさかとは思っていたが、本当に打ち切りになるとは思わなくてな。」

ツカバーク「正直な話、最初の頃は文章力のスキルアップを目指してコラムを執筆してきたわけですが、もうさすがに限界を感じ始めていまして。
リアル事情もありますし、これ以上負担が増えると大変なので、次回でSRCコラムは一旦お開きにしようかなーと考えてます。
まあ、番外編で不定期にやるかもしれませんが……。」

ジェナス「この際、今回で最終回にした方が良いんじゃないか? 台詞もそれっぽいしな。」

ツカバーク「ちょっと待って、まだ最終回が残ってるから!」

ジェナス「これで、第一部完とか、○○先生の次回作にご期待くださいとかだったら、ほぼ確実に打ち切りルート確定なんだがな。」

ツカバーク「とにかく! 次回はいよいよシナリオ公開のためのステップを解説する予定なので、最後まで生暖かく見守ってくれれば幸いです。
ここまでのお相手は、メイン進行役のツカバークとジェナス君がお送りしました!」

ジェナス「じゃ、最後のコラムでまた会おうぜ。」

ツカバーク「ではでは〜。」



SRCの部屋へ戻る

サイトTOPへ戻る