多重人格モード¶
概要¶
mode 変数でモードを管理し、EVAL または CALLBYNAME を使って動的に関数を切り替えることで、複数の人格(モード)を持つゴーストを実装する方法です。
情報源: et cetera. の雑記より引用
コード例¶
Version 5 での記述¶
OnAiTalk
{
EVAL("OnAiTalk%mode")
}
Version 4 での記述¶
OnAiTalk
{
CALLBYNAME("OnAiTalk%mode")
}
モード別イベント定義¶
OnAiTalk0
{
// モード 0
"\0ユーザーさん大好きっ。\e"
}
OnAiTalk1
{
// モード 1
"\0くたばれ腐れユーザーさん。\e"
}
説明¶
動作の仕組み¶
mode 変数の値(例: 0 または 1)を関数名に埋め込んで、EVAL または CALLBYNAME で動的に呼び出します。mode が 0 なら OnAiTalk0、1 なら OnAiTalk1 が実行されます。
各バージョンの違い¶
- Version 5:
EVALを使用して関数名文字列を評価・実行する - Version 4:
CALLBYNAMEを使用して文字列で指定した関数を呼び出す
応用方法¶
この手法はランダムトークイベントに限定されません。他の各種イベントも同様に記述し、モード別に辞書ファイルをまとめることで、完全な多重人格ゴーストを実現できます。
モードの切り替えは mode 変数に値を代入することで行います。会話の途中で切り替える方法は「会話の途中で人格を切り替える」を参照してください。
関連項目¶
- Tips/会話の途中で人格を切り替える
- EVAL
- CALLBYNAME