コンテンツにスキップ

会話の途中で人格を切り替える

概要

ゴーストの会話中に、変数によってモード(人格)を管理し、特定の会話トリガーで別のモードへ切り替える実装方法です。例では 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