こんにちは。蛛賢です。
PropsGamesでRPGを作りました。
備忘も兼ねて「Zodiac Walk Prologue」の制作手順を投稿します。
今回はフィールドエンカウント及び戦闘です。
Zodiacではフィールドを1歩進むとランダムで敵と遭遇したり、お金を拾ったりします。
<場面移動 移動先="エルティア郊外" アニメ="瞬間移動" />
で最初の選択肢に戻ります。
<音楽 ファイル="フィールド_PerituneMaterial_Wish3.mp3" ループ="on" フェード="2000" 音量="40" /><画像表示 ID="367" 透明度="100" 時間="2000" /><もしも 条件="共通.flg平原初回=FALSE" タイプ="フラグ" ><画像表示 ID="542" 透明度="100" 時間="2000" /><待機 時間="2000" /><画像表示 ID="542" 透明度="0" 時間="2000" /><待機 時間="2000" /><変数変更 変数="共通.flg平原初回" 値="TRUE" /></もしも><画像表示 ID="543" 透明度="100" 時間="2000" /><待機 時間="2000" /><もしも 条件="共通.flgボス=FALSE" タイプ="フラグ" ><選択><会話 名前="" 速度="0" >どうしますか?<改行 />【所持金】<変数表示 変数="共通.int所持金" /> Coin<改行 />【歩 数】<変数表示 変数="共通.int歩数" /> 歩<改行 />【討伐数】<変数表示 変数="共通.int討伐数" /> 体</会話><選択肢 メッセージ="歩く" ></選択肢><選択肢 メッセージ="街に戻る" ><音楽 フェード="0"/><画像表示 ID="543" 透明度="0" 時間="2000" /><画像表示 ID="367" 透明度="0" 時間="2000" /><待機 時間="2000" /><場面移動 移動先="エルティア市街" アニメ="瞬間移動" /></選択肢><選択肢 メッセージ="次の国に行く(200Coin)" ><もしも 条件="int所持金>=200" タイプ="数値" ><選択><会話 名前="" 速度="0" >エンディングに移行します。<改行 />よろしいですか?</会話>
<選択肢 メッセージ="はい" ><音楽 フェード="2000"/><画像表示 ID="543" 透明度="0" 時間="2000" /><画像表示 ID="367" 透明度="0" 時間="2000" /><待機 時間="2000" /><場面移動 移動先="ラコルミベルナ市街" アニメ="瞬間移動" /></選択肢>
<選択肢 メッセージ="いいえ" ><場面移動 移動先="エルティア郊外" アニメ="瞬間移動" /></選択肢></選択></もしも><小説 横="中央" 縦="枠中央" 幅="16" 高さ="1" 速度="60" >所持金が足りません<クリック /></小説><場面移動 移動先="エルティア郊外" アニメ="瞬間移動" /></選択肢></選択></もしも><もしも 条件="共通.flgボス=TRUE" タイプ="フラグ" ><選択><会話 名前="" 速度="0" >どうしますか?<改行 />【所持金】<変数表示 変数="共通.int所持金" /> Coin<改行 />【歩 数】<変数表示 変数="共通.int歩数" /> 歩<改行 />【討伐数】<変数表示 変数="共通.int討伐数" /> 体</会話>
<選択肢 メッセージ="歩く" ></選択肢><選択肢 メッセージ="街に戻る" ><音楽 フェード="0"/><画像表示 ID="543" 透明度="0" 時間="2000" /><画像表示 ID="367" 透明度="0" 時間="2000" /><待機 時間="2000" /><場面移動 移動先="エルティア市街" アニメ="瞬間移動" /></選択肢></選択></もしも>//一歩進む<画像移動 ID="367" 横="-162" 縦="-44" 速度="100"/><待機 時間="1" /><画像移動 ID="367" 横="-162" 縦="-20" 速度="100"/><待機 時間="400" /><画像移動 ID="367" 横="-162" 縦="-44" 速度="100"/><待機 時間="1" /><画像移動 ID="367" 横="-162" 縦="-20" 速度="100"/><計算 結果="int歩数" 式="共通.int歩数+1" /><待機 時間="1000" /><ダイス 代入先="共通.intダイス" 目="1,2,3,4,5,6,7,8,9,10" 速度="30" 遅延="0" 順番="裏実行"/><もしも 条件="共通.intダイス=1" タイプ="数値" ><コード呼出 コード名="01_野盗戦" /></もしも>
<もしくは 条件="共通.intダイス=2" タイプ="数値" ><コード呼出 コード名="02_盗賊戦" /></もしくは>
<もしくは 条件="共通.intダイス=3" タイプ="数値" ><小説 横="中央" 縦="枠中央" 幅="8" 高さ="1" 速度="60" >2Coin 拾った<クリック /></小説><HP 操作="足し算" 範囲="全体" 値="1" 時間="1000" /><計算 結果="int所持金" 式="共通.int所持金+2" /></もしくは>
<もしくは 条件="共通.intダイス=4" タイプ="数値" ><小説 横="中央" 縦="枠中央" 幅="7" 高さ="1" 速度="60" >何もなかった<クリック /></小説><HP 操作="足し算" 範囲="全体" 値="1" 時間="1000" /></もしくは>
<もしくは 条件="共通.intダイス=5" タイプ="数値" ><コード呼出 コード名="01_野盗戦" /></もしくは>
<もしくは 条件="共通.intダイス=6" タイプ="数値" ><コード呼出 コード名="02_盗賊戦" /></もしくは>
<もしくは 条件="共通.intダイス=7" タイプ="数値" ><コード呼出 コード名="03_山賊戦" /></もしくは><もしくは 条件="共通.intダイス=8" タイプ="数値" ><コード呼出 コード名="04_グランホッパー戦" /></もしくは><もしくは 条件="共通.intダイス=9" タイプ="数値" ><もしも 条件="flgボス=TRUE" タイプ="フラグ" ><もしも 条件="int討伐数>10" タイプ="数値" ><コード呼出 コード名="10_ボス戦" /><場面移動 移動先="エルティア郊外" アニメ="瞬間移動" /></もしも><小説 横="中央" 縦="枠中央" 幅="7" 高さ="1" 速度="60" >何もなかった<クリック /></小説><HP 操作="足し算" 範囲="全体" 値="1" 時間="1000" /><小説 横="中央" 縦="枠中央" 幅="16" 高さ="1" 速度="60" >…が、かすかに気配を感じる<クリック /></小説><場面移動 移動先="エルティア郊外" アニメ="瞬間移動" /></もしも><小説 横="中央" 縦="枠中央" 幅="7" 高さ="1" 速度="60" >何もなかった<クリック /></小説><HP 操作="足し算" 範囲="全体" 値="1" 時間="1000" /></もしくは><その他><小説 横="中央" 縦="枠中央" 幅="7" 高さ="1" 速度="60" >何もなかった<クリック /></小説><HP 操作="足し算" 範囲="全体" 値="1" 時間="1000" /></その他><場面移動 移動先="エルティア郊外" アニメ="瞬間移動" />
◇エンカウントイベント
エンカウントしたら「呼び出し時」の方のイベントに飛ぶようにしました。
戦闘イベントの「中断」がいまひとつ使い方が分かっていません。
<小説 横="中央" 縦="枠中央" 幅="7" 高さ="1" 速度="0" >敵が出現した<クリック /></小説><画像移動 ID="367" 横="-162" 縦="-32" 速度="1"/><小説 横="中央" 縦="枠中央" 幅="5" 高さ="1" 速度="0" >Lv.2 盗賊<クリック /></小説><戦闘 名前="盗賊戦" ><勝利><小説 横="中央" 縦="枠中央" 幅="6" 高さ="1" 速度="0" >敵を倒した<クリック /></小説><小説 横="中央" 縦="枠中央" 幅="6" 高さ="1" 速度="0" >+ 5 Coin<クリック /></小説><計算 結果="int所持金" 式="共通.int所持金+5" /><計算 結果="int討伐数" 式="共通.int討伐数+1" /></勝利><敗北><小説 横="中央" 縦="枠中央" 幅="6" 高さ="1" 速度="0" >全滅した<クリック /></小説><画像表示 ID="367" 透明度="0" 時間="2000" /><待機 時間="2000" /><場面移動 移動先="ゲームオーバー" アニメ="瞬間移動" /></敗北><中断></中断></戦闘>
◇戦闘選択画面
エンカウントイベントから遷移する戦闘を制作します。
あらかじめノンプレイヤーキャラクターとして敵を作っておきます。
戦闘画面では画像を追加できませんが、ターン前後にイベントを挟むことができます。
これを利用して相手の特殊攻撃や演出等を表現することが可能です。
<変数変更 変数="共通.intTemp" 値="0" /><それぞれ 対象="敵全体"><人物参照 代入先="共通.intダイス" 役割="$選択中" 属性="HP" /><計算 結果="intTemp" 式="共通.intTemp+共通.intダイス" /></それぞれ><もしも 条件="intTemp>0" タイプ="数値" ><ダイス 代入先="共通.intダイス" 目="1,2,3,4,5" 速度="30" 遅延="0" 順番="裏実行"/><もしも 条件="共通.intダイス=3" タイプ="数値" ><小説 横="中央" 縦="枠中央" 幅="11" 高さ="1" 速度="60" >盗賊は逃げ出した…<クリック /></小説><待機 時間="100" /><効果音 ファイル="逃走.mp3" 音量="80" /><待機 時間="1" /><画像移動 ID="367" 横="-162" 縦="-34" 速度="400"/><待機 時間="1" /><画像移動 ID="367" 横="-162" 縦="-20" 速度="400"/><待機 時間="400" /><小説 横="中央" 縦="枠中央" 幅="7" 高さ="1" 速度="60" >失敗!<クリック /></小説></もしも></もしも>
↑ただの演出である逃亡失敗。
(戦闘を中断させるイベントはないため)
イベントを駆使すれば独自システムの戦闘を表現できるのかもしれませんが、
今回は基本機能の〇△☆のダイスによる戦闘システムを活かすこととしました。
また、ボスは1ターン力を溜めて、次のターンで全体攻撃を放ってきますが、これもイベントで実装しています。
まぁ…全体的に、PERITUNE様(BGM)、CLOSET様(画像)、効果音ラボ様の素材のおかげで成立しているんですけどね…
取り急ぎ今回はここまで。
※需要あるか分かりませんが、ご要望あれば詳しめに書きます。