FE定番の増援イベントの作り方について説明します。\\ とりあえず序章に毎ターン増援を出したいと思います。\\ {{ https://i.imgur.com/FvE4iYm.jpg }} ====== 増援ユニットの設定 ====== まずは、増援するユニットを作ります。\\ ===== StepA1 ===== 「ユニット配置」ボタンをクリックしてください。\\ {{ https://i.imgur.com/7bnHLBX.jpg }} ===== StepA2 ===== 新規に増援ユニット群を定義したいので、「新規領域の確保」ボタンをクリックしてください。\\ {{ https://i.imgur.com/UHKdKEW.jpg }} ===== StepA3 ===== 確保する人数を設定します。\\ とりあえず3人ぐらい確保します。\\ {{ https://i.imgur.com/6W4aI7F.jpg }} {{ https://i.imgur.com/SPsLz1y.jpg }} ===== StepA4 ===== 新規枠が確保されました。\\ NEWとかかれている部分です。\\ {{ https://i.imgur.com/LwlOPQU.jpg }} 新規枠には、とりあえずエイリークが設定されているので、そのキャラをどけて増援で出したいキャラを設定します。\\ ===== StepA5 ===== まずは、一番上のキャラクターを設定します。\\ {{ https://i.imgur.com/NfVOXxQ.jpg }} ===== StepA6 ===== とりあえず、こんな感じにしてみました。\\ 座標は、左上にしました。\\ {{ https://i.imgur.com/JI7omjY.jpg }} \\ |ユニット|7F|グラド兵士| |クラス|3F|戦士| |アイテム|1F|鉄の斧| |座標|X=2,Y=3| ===== StepA7 ===== 「書き込む」ボタンで内容を確定します。\\ {{ https://i.imgur.com/w676R2l.jpg }} ===== StepA8 ===== 2人目を設定します。\\ 座標は、さっきの奴の隣です。\\ {{ https://i.imgur.com/MwDnICg.jpg }} 設定したら、「書き込む」ボタンで結果を確定します。\\ ===== StepA9 ===== 3人目を設定します。\\ {{ https://i.imgur.com/k79ZWZy.jpg }} \\ 同様に、「書き込む」ボタンで結果を確定します。\\ ===== StepA10 ===== 設定が終わったら、彼らが配置されている先頭アドレスをメモってください。\\ {{ https://i.imgur.com/w6HBJkP.jpg }} \\ 今回は、0x01000000が先頭アドレスです。\\ \\ なぜ、先頭アドレスをメモする必要があるのか? それは、彼らを表示するイベントはこれから作るため、彼らのデータはどこへも紐付けされていないためです。\\ そのため、ユニット配置ウィンドウを閉じたり、別の章に切り替えたりすると、データが失われるためです。\\ データが失われても、領域を占有していることにはかわりなく、無駄な領域が生まれてしまいます。\\ とはいっても、100バイトにも満たない程度のロスだと思いますが・・・\\ ===== StepA11 ===== メインの簡易メニューに移動します。\\ 次は、先ほど作成したユニットを出現させるイベントを作ります。\\ ===== StepA12 ===== イベントを作るには、「イベント」と書かれている部分をクリックします。\\ {{ https://i.imgur.com/dgw9bDG.jpg }} ===== StepA13 ===== イベント設定画面に来ました。\\ 今回は、ターンイベントで彼らを出現させます。\\ {{ https://i.imgur.com/5P2Em15.jpg }} ===== StepA14 ===== イベントの種類が、ターン条件になっているか確認してください。\\ ディフォルトはターン条件なので、たいていの場合、何もしなくても大丈夫です。\\ {{ https://i.imgur.com/URNYWBY.jpg }} ===== StepA15 ===== 次に、ターン条件に新規枠を確保するため、「リストの拡張」ボタンをクリックします。\\ {{ https://i.imgur.com/URNYWBY.jpg }} ===== StepA16 ===== 何やら画面が表示されますが、とりあえずそのまま「移動処理を実行する」ボタンをクリックします。\\ {{ https://i.imgur.com/zOjuWTN.jpg }} ===== StepA17 ===== ターン条件イベントが確保されました。\\ ちょっと多すぎましたね・・・\\ まあ、1つ12バイトなので、誤差みたいなものです。誤差だよ誤差。\\ {{ https://i.imgur.com/lmtHCat.jpg }} \\ ちゃんと、やる場合は、先ほど領域を確保するときに、確保するサイズをちゃんと指定してください。\\ ただ、小さすぎると、もっと増やしたくなった時に、再度追加で確保すると、断片化によるロスが発生しますので、どちらがいいかは、難しいところです。\\ ===== StepA18 ===== 領域を確保はできたので、新規に確保したターン条件に増援のイベントを作ります。\\ 新規に増設された5番目のイベントをクリックしてください。\\ {{ https://i.imgur.com/8Kr0D6o.jpg }} ===== StepA19 ===== 今回は以下のように設定しました。\\ {{ https://i.imgur.com/Wctnsbp.jpg }} \\ イベントは後で設定するので0のままにします。\\ \\ |発生タイプ|2|2=ターン条件| |開始ターン|2| |終了ターン|3| |ターン前指定|0|主人公ターンに実行| \\ つまり、2-3ターン目の主人公ターンに増援を出します。\\ 合計2回の増援が行われます。\\ \\ 主人公ターンとは、プレイヤーが操作できるターンのことです。\\ 主人公ターンに増援するのと、敵ターンに増援するのでは、難易度が大幅に変わります。\\ \\ 主人公ターンに増援されたキャラは、出てきたターンは動きません。\\ そのため、先制攻撃で倒すことができます。\\ \\ 敵ターンに増援すると、出てきたターンに即行動するので、プレイヤーからすると完全な不意打ちになります。\\ もし、背後から増援され、敵ターンで先行して動かれたりなんてすると、悪夢ですね。\\ \\ 前半のステージは、プレイヤーターンに増援して、後半は敵ターンにするとかの使い分けを考える必要があります。\\ ===== StepA20 ===== とりあえず、「書き込み」ボタンを押して結果を確定します。\\ {{ https://i.imgur.com/kADBQoG.jpg }} \\ この後に、イベントの確保をしたときにも書き込みは行われるので、ここで書き込みをするかどうかは、実はどうでもいいです。\\ ただ、やったところで損は何もありません。\\ ===== StepA21 ===== 次に、イベントの設定をします。\\ 「新規イベント」ボタンをクリックしてください。\\ {{ https://i.imgur.com/kADBQoG.jpg }} ===== StepA22 ===== 「新規に領域を割り当てますか?」と聞かれるので、「はい」と答えます。\\ {{ https://i.imgur.com/GZg658F.jpg }} ===== StepA23 ===== 領域を確保しました。\\ {{ https://i.imgur.com/GZg658F.jpg }} ===== StepA24 ===== 新規にイベント領域が確保されました。\\ この領域にイベントを作っていきます。\\ {{ https://i.imgur.com/gYPopgX.jpg }} ===== StepA25 ===== イベントとと書かれている部分をクリックすると、イベント命令を設定する画面に行けます。\\ {{ https://i.imgur.com/9AH5dFG.jpg }} ===== StepA26 ===== イベント命令を設定する画面に来ました。\\ 現在は、終端命令のリターンしかない、まったくの白紙の状態です。\\ ここに増援を実行するイベントを作ります。\\ {{ https://i.imgur.com/lhlNTjG.jpg }} ===== StepA27 ===== 画面の余白を、ダブルクリックしてください。\\ コントロールパネルが出現します。\\ {{ https://i.imgur.com/IzSOMZ6.jpg }} ===== StepA28 ===== 「命令変更」ボタンをクリックしてください。\\ {{ https://i.imgur.com/pGcGrj6.jpg }} ===== StepA29 ===== イベントでどんな命令を実行するか選ぶことができます。\\ ここには、先人たちの解析で現在判明しているすべての命令が登録されています。\\ {{ https://i.imgur.com/W2YuWC8.jpg }} \\ イベント命令は、 config/data/eventcond_*.txt にあります。\\ 命令はFEシリーズごとにことなります。\\ また、ASMを使えれば新規に命令プログラムすることもできます。\\ ===== StepA30 ===== 今回は、ユニットを出したいので、カテゴリの「ユニット設置」を選択します。\\ {{ https://i.imgur.com/tYGKtuj.jpg }} ===== StepA31 ===== 「[XXXXXXXX:POINTER_UNIT:ユニット情報]を読込移動 主に増援 カメラ移動有り」を選択してください。\\ {{ https://i.imgur.com/SgWOhlK.jpg }} \\ 選択後に、「命令を選択する」ボタンを押してください。\\ なお、命令をダブルクリックしても、大丈夫です。\\ ===== StepA32 ===== 先ほど選択した命令が選択されました。\\ 命令の引数を設定します。\\ {{ https://i.imgur.com/SgWOhlK.jpg }} ===== StepA33 ===== 最初の方でユニットを増設したアドレスをメモりましたよね。\\ その内容をここで書きます。\\ \\ 今回は、 0x01000000にユニットを設置しましたので、 01000000となります。\\ {{ https://i.imgur.com/55q0W3H.jpg }} \\ \\ ちなみに、正式には、ポインタですので、GBAのアドレス配置のルールにより +0x08000000しないといけません。\\ 0x01000000 + 0x08000000 = 0x09000000ですので、 0x09000000が正しい値です。\\ でも、そんな計算をいちいちするのは面倒です。\\ 面倒ということはミスが発生するのでよくないです。\\ そのため、FEBuilderは自動的に変換してくれます。\\ ユーザは、何も考えずに、値を書くだけで自動的にすべて解決します。\\ もちろん、+0x08000000した正しい値を書いていただいてもまったく問題ありません。\\ ===== StepA34 ===== ユニット情報の値を書いたら、変更か新規挿入ボタンを押します。\\ 現在イベントはないので、どちらでも結果は同じです。\\ {{ https://i.imgur.com/oOTn6Ce.jpg }} ===== StepA35 ===== 記載した内容がリストに表示されています。\\ {{ https://i.imgur.com/dxZrTbP.jpg }} ===== StepA36 ===== 最後に、「書き込み」ボタンを押して内容を確定してください。\\ {{ https://i.imgur.com/60Ic5jL.jpg }} これで、データの紐付ができました。\\ 先ほどメモした、ユニット配置のアドレスはもう消しても大丈夫です。\\ ===== StepA37 ===== F5キーを押して、エミュレータを起動して、動作を確認します。\\ 2ターンから3ターン目に増援が現れます。\\ {{ https://i.imgur.com/FvE4iYm.jpg }} \\ 増援を確認したら、エミュレータは終了してください。\\ ====== 人数の増減 ====== いきなり3人増援はちょっとやりすぎたかもしれません。\\ 増援を減らすべきなのかも・・・・ということで、ユニット数の増減をやってみます。\\ ===== StepB1 ===== メイン画面である簡易メニュー画面に戻ってください。\\ FEBuilderGBAは、PAUSE/BREAKキーを押すと、どの画面からでも、メイン画面に戻れて便利です。\\ {{ https://i.imgur.com/4fQNrb7.jpg }} 簡易メニュー画面では、増援で出てくる敵キャラがちゃんとマップに表示されています。\\ 彼らの数を変えたいので、増援ユニットをダブルクリックしてください。\\ ===== StepB2 ===== 増援キャラの設定に飛びます。\\ 作ったときは、NEWでしたが、彼らはターンで増援されるという設定になりましたので、ターン条件で増援されるキャラとして表示されます。\\ {{ https://i.imgur.com/NqZPJ8U.jpg }} ===== StepB3 ===== 数を減らしましょう。とりあえず1人だけにしてみます。\\ 真ん中のキャラを選択してください。\\ {{ https://i.imgur.com/YpCWKlJ.jpg }} ===== StepB3 ===== 真ん中のキャラのユニット番号を 0 にしてください。\\ ユニット番号 0 というのは、終端という意味です。\\ これ以降にはデータはありませんという意味になります。\\ {{ https://i.imgur.com/aTIqRi5.jpg }} ===== StepB4 ===== 「書き込み」ボタンで書き込んで結果を確定させます。\\ {{ https://i.imgur.com/U4Ipuj5.jpg }} ===== StepB5 ===== そうすると、真ん中のキャラが -EMPTY- となります。\\ これは終端マークが入っているキャラという意味です。\\ 一度ユニット設定を移動してしまうと、終端以降のキャラの表示は消えます。\\ {{ https://i.imgur.com/U4Ipuj5.jpg }} ===== StepB6 ===== F5キーでエミュレータを起動して動作を確認します。\\ 終端マークを2人目に入れたため、今回は、1人しか増援されません。\\ {{ https://i.imgur.com/mNzlkLw.jpg }} ===== StepB7 ===== 1人だけだと味気ない場合は、元に戻すこともできます。\\ 先ほどのユニット情報を再度見てみると、1人になっています。\\ これは、ディフォルトは終端まで読み込むからです。\\ 2人目に終端が入っているので、1人だけの読込になっています。\\ {{ https://i.imgur.com/Nqa03II.jpg }} ===== StepB8 ===== 元に戻すには、「読込数」で、元の人数である「3」を入力し、「再取得」ボタンを押します。\\ そうすると、ちゃんと3人表示されます。\\ {{ https://i.imgur.com/8sQYQ6C.jpg }} \\ ここで、2人目の ユニットIDを 0 以外にすれば復元できます。\\ ===== StepB9 ===== では、増やす場合、読込数をもっと大きい値にすればいいのか?というと、そんなことはダメです。\\ 試しに、読込数を10と、当初の3よりもっと大きい値にすると、このようになりました。\\ {{ https://i.imgur.com/Audoqsi.jpg }} \\ なにやら、めちゃくちゃな情報が表示されました。\\ これは、終端を突き破って、別の情報を強引にユニット情報として解釈したためです。\\ これらを書き換えると、他の情報を壊してしまうため、とても危険です。\\ ゲームのフリーズにつながります。\\ ===== StepB10 ===== 何かまずいことが起きた場合は、もう一度、リストを選択しなおすと、自動的に再取得が行われるため、安全になります。\\ 「書き込む」ボタンを押さない限り、大丈夫です。\\ {{ https://i.imgur.com/V7SQ7AG.jpg }} \\ また、間違って「書き込む」ボタンを押したとしても、Undo機能で元に戻せますし、そもそも、メインメニューでROMに書き込むと、命じない限り、すべての処理はメモリ上で行われるので、ROMファイルを傷つけることはありません。\\ もし、ROMにも書き込んでしまったという場合でも、FEBuilderはROMに書き込む前にバックアップを取っています。\\ \\ だからといって、バックアップもすべて消してしまったという場合は、さすがにどうしようもありません。\\ ===== StepB11 ===== では、もともとの人数を覚えていなかったり、\\ 最初に確保した数よりユニットを増やした場合はどうするか?というと、「リストの拡張」ボタンを利用します。\\ {{ https://i.imgur.com/hbKOHhg.jpg }} ===== StepB12 ===== リストの拡張で、設定したい人数を入れれば、安全にデータを拡張できます。\\ {{ https://i.imgur.com/LdLvzPr.jpg }} ===== StepB13 ===== 5人に増やしてみました。\\ {{ https://i.imgur.com/D2R1aaC.jpg }} リストの拡張でいくらでも変えられるといっても、リストの拡張をやりまくると、使えない断片データがたくさん生まれて、残り容量を圧迫します。\\ ご利用は計画的にどうぞ。\\ \\ 将来的には、断片データを再利用するdeflagする機能を作りたいとは思います。\\ ただ、なかなか難しい機能なので開発は難航しています。\\ ====== おしまい ====== 以上で増援の説明は終了です。\\ ユニット数の調整は、章開始イベントとかでもやりますので、やり方を覚えてしまうと、幅広い応用が可能です。\\