Wednesday, April 26, 2017

AnswerTextについて

Genericな会話テキストの定義コード。画像の例は挨拶。

発話者の性別その他でフィルタリングした上で、その中からランダムな1個を表示する、ということをシステムがやっています。気にしないパラメータ(AllやNone)は省略可(デフォルト値としてAllやNoneが入るので)。

これはDialogue型というデータ枠ですが、AnswerText型で別枠に入れて、その枠の中をシステムが走査。このSceneの代わりに、EditorIDを指定できるようにすれば良いかなと思います。(EditorIDじゃなくてシーンIDと言った方が適切か)

噂話についても、発話テキストをstring型で定義するよりは、こういう型のEditorID(シーンID)を指定する方が、発話者ごとに微妙にテキストを変えられるので良いかも。Genericな噂ばなし用のRumor型という、似た処理をするものがあるので、それをシーンID指定できるようにすればok。

フィルタリング項目にFaction指定がまだ無いけど、Factionの名前かEditorIDを指定できれば良さそう。

2 comments:

  1. Dialogue{
    Data = "Greetings"
    ...
    }
    で Greetingタイプと宣言できるんですね。
    このDataで指定できる"Greetings"みたいなのは事前登録されてるものになるんでしょうか?

    ReplyDelete
    Replies
    1. Dataは実際に表示するテキストですね。
      Scene = 'scGreeting'がタイプ指定になります。
      で、このDailogue型は、ジェネリックなもので、システムで事前登録してるタイプしかありません。

      スクリプトクエストで使う用には、この「タイプ」の代わりに、クエストユニークなシーンIDを指定できるようにするイメージです。
      AnswerText {
      Data = "Greetings from Quest Test!"
      SceneID = "QUEST_TEST_ANSWER_FOR_QUEST_START"
      }
      みたいな感じで、フィルタリング用として、任意の文字列IDを与えます。(このテキストデータの固有IDではありません。)
      Dialogue型に、SceneID指定を足しても出来ますが、走査対象が物凄く増えるので。

      Delete