ScenarioMod の理解すべきもの・しなくて良いもの

  • 概要

    ScenarioModは多くのたくさんのソースファイルが付いていますが、
    理解すべき対象は非常に絞られています。
    しかも幸いなことに、理解対象はすべて「日本語による関数や変数」なのです。

  • ScenarioModの理解・編集の区分け

    普段からプログラムに書き慣れていない人は、
    ScenarioModのソースを見ると、圧倒されてしまうと思います。

    ScenarioModではこれらを可能な限り緩和するべく、理解対象の処は、可能な限り「日本語」を多く使ってプログラムを記載しています。

    また、ソースを以下のような趣旨にハッキリと区分しています。

    • 参照しない。変更しない。

      見る必要も編集する必要もないもの。
      (※これらはバージョンがアップされたら更新されるため、編集は非推奨)

    • 参照する。変更しない。

      ソースを記述する際には、その都度参照する必要はあるが編集する必要はないもの。
      (※これらはバージョンがアップされたら更新されるため、編集は非推奨)

    • 自分で変更する。自分でバックアップを取っておく。

      自分で編集すべきもの。

    に分かれています。

    早速、ソリューションエキスプローラで確認してみましょう。

    まず、ソリューションエキスプローラーのツリー状の「+」「-」部分をあちこちクリックして、
    以下のような「表示状態」にしてみましょう。


    上図の

    • 赤い部分

      赤い部分が『見る必要はあるが編集する必要はないもの』です。

    • 青い部分

      「青い部分」だけが『③自分で編集すべきもの』となります。

    そうです。

    実は「自分で編集すべきもの」はたったの2つしかないのです。

    しかもこの2つは「2つで1組の」セットですから、
    言い換えれば、編集対象は「青い枠内」の1セットだけと言えます。

  • 編集対象「カスタム駆動関数.cpp」

    各々を理解するまえに、軽く「『自分で編集すべきもの』を見てみることにしましょう。

    • On_噴出メッセージ直前

      カスタム駆動関数.cpp」の中身を見ると、以下のようになっています。
      他にもいろいろと記載されていますが、まずは以下のような記述の部分を焦点としましょう。

      string カスタム::On_噴出メッセージ直前(string 武将名, string 元メッセージ, メッセージ関連情報型 メッセージ関連情報) {
      
          if (武将名 == "真田幸隆") {
              return "マジかよ…最悪だぉ!!";
          }
      
          // 変更しない場合""
          return "";
      }
      

      細かなところの意味は不明でしょうが、どうやら

      「噴出しメッセージの直前」に「武将が『真田幸隆』」ならば、「マジかよ…最悪だぉ!!」にしているということ。
      詳細は不明としても、とにかく
      『真田幸隆』ならば「マジかよ…最悪だぉ!!」なんだということがわかります。

    • On_プレイヤ担当ターン《メイン画面》

      少し他のところに自分で入力してみるとしましょう。
      今回は「On_プレイヤ担当ターン《メイン画面》」の関数に5行ほど足しこんで以下のように記述してみましょう。

      この段階ではハッキリと意味を理解する必要はありません。

      void カスタム::On_プレイヤ担当ターン《メイン画面》() {
        フェイドアウト();
        カメラ移動(3);
        フェイドイン();
      
        効果音再生(効果音音源::豊作);
        確認ダイアログ表示("これはプロトタイプだよ!!");
      }
      

      「プレイヤのターンがメイン画面でまわってきた時」、「フェイドアウト~カメラ移動(3とは何だ?)~フェイドイン」⇒「効果音の『豊作』が鳴って」⇒「『これはプロトタイプだよ!!』というダイアログが出る」
      日本語なので、なんとなくわかります。

      「カメラ移動」の「3」というのは何でしょうか。
      「カメラ移動」にマウスを当ててみましょう。


      すると、バルーンヘルプ表示が出るはずです。
      どうやら、「3」というのは城番号か何かのようです。「3番=どこの城」なのか? は今の段階ではさておき、「3番の城にカメラ移動」するのでしょう。

    • 動作確認

      さて、(ScenarioMod.dllをちゃんと天翔記フォルダーにコピーしたかを確認した後)、実際に天翔記を起動して、 実際にそうなのか確認してみましょう。
      確かにプレイヤーのターンで、フェイドアウト・インを挟んで「どこぞ」にカメラが移動した後、勝ち鬨と共に、ダイアログが表示されました。


      又、真田幸隆を見てみたところ、「会見」のメッセージや「商人」とのやりとりなどで「マジかよ…最悪だぉ!!」ばかり言っています。
      どうやら確かに機能しているようです。



  • その他

    以上となります。
    それでは次節より、「知るべきこと」について常に「練習」を挟みながら、細かく見てゆきましょう。