会話の途中で人格を切り替える¶
概要¶
ゴーストの会話中に、変数によってモード(人格)を管理し、特定の会話トリガーで別のモードへ切り替える実装方法です。例では 0(通常モード)と 1(怒りモード)の 2 段階を設定しています。
コード例¶
RandomTalk イベントの記述例¶
OnAiTalk
{
if ISINTEGER(mode) == 0 { mode = 0 }
_t = CALLBYNAME("RandomTalk%mode")
}
現在のモード値に応じた対応する会話関数を呼び出します。
モード 0(通常)の会話関数¶
RandomTalk0
{
"\0\s[0]こんにちは。\e"
"\0\s[0]いい天気ですね。\e"
"\0\s[0]怒ったぞー。\e->mode=1"
}
モード 1(怒り)の会話関数¶
RandomTalk1
{
"\0\s[7]うるさい!\e"
"\0\s[7]話しかけるな!\e"
"\0\s[0]許してあげる。\e->mode=0"
}
説明¶
切り替え方法¶
会話文の末尾に ->mode=? を記述します(? は切り替え先のモード番号)。
"怒ったぞー。\e->mode=1"→ モード 1 へ変更"許してあげる。\e->mode=0"→ モード 0 へ戻す
スクリプトが自動的に末尾の指令を検出してモード値を更新し、会話テキストから削除します。
モードの初期化¶
ISINTEGER(mode) == 0 で変数が未設定かどうかをチェックし、初回は mode = 0 に設定します。
表情の使い分け¶
各モードで異なる表情インデックス(\s[0] や \s[7] など)を使うことで、視覚的にも人格の変化を表現できます。
関連項目¶
- Tips/多重人格モード
- CALLBYNAME