2012/12/15

セラーナちゃんの心~DLC1NPCMentalModel~

先日、ユニークボイスを結婚対応させるテストをした際に、試しにセラーナちゃんで実験してみたわけなんですが、その時に「おや?」と思うことがありました。

実はテストする際、最初はセラーナちゃんのActorを複製して、そのコピーしたキャラを使って結婚可能かどうか、試してたんです。
すると、なんだか、妙な違和感がありまして。
どこが、とはうまく説明できないんですけど……そのセラーナちゃんのコピー人形が、どうもセラーナちゃんらしくない、というか……少なくとも、これはおばちゃんの知ってるセラーナちゃんじゃない、という気がして仕方がないのです。
顔カタチは確かにセラーナちゃんなんですが(コピーしたんだから当たり前ですが)、顔の表情が明らかに別人なんですよ。
…というか、どちらかといえば、顔つきが何だかソリチュードのターリエさんに似てる。
まあ、結婚用のボイスは、ターリエさん…ハイエルフ女性のボイスをそのまま拝借して使ってましたからね。
そのせいで表情が重なって見えるのかなあ……音声ファイルって、唇の動きだけじゃなく顔の表情データまで含まれちゃってたりするのかしら……
おばちゃんの考えすぎかな、と思ったりもしたのですが、次に本物のセラーナちゃんを使って再びテストしたところ、今度は音声はターリエさんの声のままなのに、ちゃんとセラーナちゃんっぽく見えるようになったので、「おや?」と思ったのでした。

静止画のスクリーンショットじゃ、いまいちわかりづらいんですが……
動いているところを見ると、表情といい仕草といい、まるで別人なんです。

よくよく観察してみると、本物のセラーナちゃんは身振り手振りが激しいんですよね。
ちょっと相槌を打つだけなのに、イタリア人みたいに掌をパタパタさせたり、肩を揺すったり腰に手をあてたり……動きがせわしない。
あと、やっぱりうまく説明できないんですけど、「表情」が違います。
うちのセラーナちゃんは、時折妙に皮肉っぽい超然とした顔をするというか……「あらまあ」とおっとり呆れるような、お姫様然とした表情を浮かべるのですが、顔は澄ましてるくせに手や肩がぷるぷる小刻みに動いているので、内心面白がっているのがバレバレだという……ユーモラス、といっても良いような独特の雰囲気を醸し出しています。
一方、コピー人形の複製のセラーナちゃんは、同じ感情設定がされたセリフを喋っていても、そんな風にはなりません。
それどころか、上画像のスクリーンショット(右)の眉をひそめる顔つきなどは、ハイエルフ女性がよくする、ちょっと非難がましい、煙たそうな表情、そのものじゃないですか?

しかし同じActorのデータなのに、どうして違って見えるんだろう……
そもそも、セラーナちゃんらしい、とか、らしくない、とかって何なんだろう?

そういえば…とその時、ようやく思い出したんですが、セラーナちゃんが被っているエイリアスのクエストの「DLC1NPCMentalModel」には、確かキャラのアニメーションを制御するスイッチ処理が組み込まれていました。
以前、セラーナちゃんのAIパッケージの仕組みを調べた時、ちらっと覗いてたんですが……あまりに複雑かつ膨大な処理なので、閉口して解読するのは諦めたんですよね。
しかし今回、本物のセラーナちゃんと、コピー人形のセラーナちゃんの差を作り出しているのは、間違いなくこの「DLC1NPCMentalModel」のスクリプト処理だと思うので……あくまでおばちゃんが理解できる範囲までですが、セラーナちゃんの「心」が入っているパンドラの箱を開けてみることにしました。


「DLC1NPCMentalModel」のスクリプトを覗いてみると、セラーナちゃんの心は、2つの主軸(Axis)から成り立っているのが読み取れます。
一つの軸は「GuardedToOpen」……心が閉鎖的であるか、開放的であるか、です。
そしてもう一つの軸は「SeriousToPlayful」………心がシリアスに傾いているか、それとも、おちゃらけ(?)に走っているか、です。
この二つの主軸の数値の範囲によって、セラーナちゃんはゲーム中で表情や仕草をリアルタイムで変化させているようです。
「GuardedToOpen」と「SeriousToPlayful」が共にマイナス値に傾けば、心を閉ざしてプレイヤーを警戒する「Guarded」なIdleアニメーションを、一方、彼女が心を開き、何か面白がるようなことがあったりすると、「Playful」なIdleアニメーションを取るようになります。

たとえば、セラーナちゃんと最初に出会う場面……ディムホロウ洞窟で、彼女を何百年もの眠りから目覚めさせた後、セラーナちゃんは「どちら様?」とプレイヤーの素性を尋ねてきますが、「あんたには関係のないことだ」とそっけない態度を取ったり、「むしろそっちの素性が聞きたい」などと自分を見せない選択肢を取ると、セラーナちゃんはプレイヤーを警戒し、心をガードする方向に傾き始めます。
その一方で、自分をどうするつもりか、どこに連れていく気なのか、という問いに対し、プレイヤーが「どこに行けばいいか聞いてなかった」とボケた返事をすると、「その無計画ぶり、頼もしすぎましてよ」とかなり可笑しがってくれて、Playfulが2もプラスに傾きます。
(各数値は-3~3の範囲で変動します)
きっと、セラーナちゃん的には、かなりツボに入った返答だったんでしょうね(笑)

ちなみにセラーナちゃんの心を動かすために、プレイヤーは常に彼女に親身的な選択肢を選ぶ必要があるかというと、必ずしもそうではない、というのが面白いです。
最初の出会いのシーンも、そっけない態度を取りつつ、セラーナちゃんの興味を引くことができれば、彼女は「この人、気は許せないけど、なんだか面白い…!」という、まるで恋の始まり(笑)みたいな態度になるわけですからね。
さすがRNPCというだけあって、ユーザーに合わせて、縦置きでも横置きでも自由自在にデザインを変えてくるという……まさに今流行のレスポンシブ(!)なNPCです。
セラーナちゃんといえば、プレイヤーがちょっと立ち止まった隙に色々な行動をする特殊なAIパッケージの方につい目が行きがちですが、この心理状態によるIdleアニメーションのパターン変化も特筆に値する新機能だと思います。
まあ、このゲームは元々、キャラの表情変化がわかりずらいという点があるのですが……自分の選んだ会話の選択肢で、セラーナちゃんの表情や態度が変わったりするかどうか、注意深く観察しながらプレイするのも、Dawnguardの醍醐味のひとつ、なのではないでしょうか。

セラーナちゃんをセラーナちゃんらしくさせている独自のIdleアニメーション

ははあ……このアニメーションのrootに「DLC1Serana」の直接指定があるから、コピー人形には適用されないんですねえ。
まあ、ここで同じアニメーションを取れるように設定してやっても、スクリプトで組まれた「心」がなければ、セラーナちゃんのようにはならないわけなんですが。
ちなみにこのセラーナちゃん用のIdleアニメーションには、「RomanticFollower」という名前がついています。
どういう意図を込めて、こんな名称にしたのかは定かではありませんが、変わりやすい女心を搭載したフォロワーという意味なら、確かにロマンティック……でしょうか。

アニメーションは、心理状態の2つの主軸の数値によって条件付けされています。

セラーナちゃんが「遊び好き(Playful)」という心理状態にある時は、Flirty(チャラチャラ)というカテゴリのアニメーションを、「シリアス」な時は、Sarcastic(皮肉っぽい)態度を、心を開いてくれている時は Caring(思いやりのある)仕草を、また、心をガードしてる場合はstandoffish(よそよそしい)態度を取るみたいです。
うちのセラーナちゃんは、皮肉っぽい感じがするから、どっちかというと「シリアス」方向に傾いているのかなあ……
まあ、こればっかりはデバッグ用のログを吐き出させて確認してみるしかありませんが。

ちなみにこの心理状態の数値は、セラーナちゃんの吸血病を治療して人間にするための条件には、まったく関わってきません。
なので、セラーナちゃんの態度がどんなに硬化しようが、治療ができなくなる…ということは無いのですが、会話の選択肢によっては治療ルートに入れなくなるフラグが立つ場合があるので、セラーナちゃんと会話する際は要注意です。

セラーナちゃんの治療ルートは、このダイアログの選択肢が入口です。

吸血鬼側だろうと、ドーンガード側だろうと、どっちでもいいみたいですが(違った…GlobalValueの「DLCPlayingVampireLine」が0の場合というのが条件に入ってました;だから、吸血鬼側だとダイアログは出ませんね)、とりあえずDawnguard本編のクエストラインを終えて、セラーナちゃんをフォロワーとして雇用し、なおかつ、ちゃんと別れられる状態になっている時に、上記のような会話……「吸血症を治すことは考えてみたか?」という選択肢が出てきます。
(当然ながら、プレイヤーが吸血鬼になってる間は出ません)
その際に、「いいえ…どうして?」とセラーナちゃんが聞き返してくるようでしたら、大丈夫なのですが、「前にもこの話をしましたわね……わたし、ちょっと無愛想すぎでしたかしら?」と言われる場合は、残念ながらセラーナちゃんには治療する気が無い、というフラグが既に立ってしまっています。


ちなみにセラーナちゃんの治療クエストに入るためのダイアログ関係は、例の「DLC1NPCMentalModel」クエストの中で設定されているのですが、このクエストのダイアログは膨大かつ複雑怪奇に入り組んでいて……解読するのは非常に困難です。

見てください、この膨大なダイアログの巣を……
どこがどう繋がっているのやら……さっぱりわかりませんがな。

そんなわけで、間違っていたら申し訳ないのですが……セラーナちゃんをぜひ人間にしたい!という方がいらっしゃるかもしれないので、参考までに書いておきたいと思います。

上記のダイアログで、「前にもこの話をしましたわね…わたし、ちょっと無愛想すぎでしたかしら?」と言われてしまうパターンは、「ToldPlayerSheDidntWantCure(治療する気はないとプレイヤーに言った)」というフラグが立ってしまっている場合です。
セラーナちゃんが、吸血症の治療についてコメントを述べる機会は、時期的には、Dawnguardのメインのクエストライン、DLC1VQ03の「予言者」というクエストの、吸血鬼側ならステージ5以降、ドーンガード側ならステージ20以降に発生し、DLC1VQ05の「死の超越」というクエストに入る直前までの間に交わせる会話の中にあります。
(星霜の書を手に入れるためにセラーナちゃんと一緒に旅をしている最中、お母様のヴァレリカさんに会う前まで……といった辺りでしょうか)


プレイヤーが「元々吸血鬼だったのか?」とセラーナちゃんに尋ねると、セラーナちゃんはえんえんと自分が吸血鬼になった経緯を語ってくれますが、その話を詳しく聞いていくと、吸血鬼化して家族がバラバラになってしまったこと、そのせいで地下に長く閉じ込められて最悪だった、とか、吸血鬼になる儀式は目を背けたくなるようなものだった……とかいうグチ(?)を聞かされるかと思います。
そこで、「大丈夫?」とあくまで彼女の気持ちを思いやるだけの無難な相槌を打つだけならいいのですが、「治療法を探そうと考えたことはあるか?」などと、無粋なことを言ってしまうとアウトです。
この選択肢が何故アウトなのかと不思議に思うかもしれませんが……まあ、女の子が何かしらグチを漏らす場合、その問題を解決するためにはこうすべきだったんじゃないか、とか、問題解決の為にオマエはどんなことを試みたのか、などと合理的に突っ込んだらいけませんよね(笑)
そういう時は「そうか、それは大変だったね」と軽く聞き流してやらないと、「私の気持ち、全然わかってくれない!」と女の子は気分を害してしまいます。(ほんとか?笑)
そんなわけで、「治療法を探そうと考えたことはあるか?」と聞いてしまうと、セラーナちゃんが「治療なんざする気は毛頭ございません!」とへそを曲げてしまうフラグが立つので注意しましょう。

また、「治療法を考えたことがある?」という質問をしなかった場合でも、「CutOffCureDiscussion(治療についての議論を断つ)」というフラグが立ってしまうと、セラーナちゃんを治療するクエストは始められなくなります。
このフラグが立つと、「吸血症を治すことは考えてみたか?」と聞いても、セラーナちゃんは「あなたとは、もうこの話はいたしませんわ」と取りつくしまもなく拒絶してくるので、治療ルートからは完全にシャットアウトされます。
前述の「治療法を考えたことがある?」という質問をして「ToldPlayerSheDidntWantCure」のフラグを立てている場合は、結局、その後の会話で「CutOffCureDiscussion」のフラグを立てさせられる選択肢に誘導されてしまうので、治療ルートに入れなくなってしまうのです。

それにしても、思いも寄らないところに、落とし穴がありますよね。
セラーナちゃんのツボにはまるポイントも謎ですが、逆鱗にふれるポイントもかなり謎……
ほんと、ヒロインの名に恥じない、ミステリアスな魅力満載の女性です。

【関連記事】
大人のロマンス~セラーナちゃんのモーション変化


6 件のコメント:

  1. 内容の濃さ、文章のおもしろさ最高です
    仕事中に見つけて、ついつい読みふけってしまいました
    これからもおもしろい記事UP(どれもおもしろいですが)お願いします

    返信削除
    返信
    1. コメントどうも有難うございます。
      遊び始めてから、もう一年が経ちますが、このゲームはいまだにプレイ中に
      「あれ?」と思うことがあったり、思わずクスっと笑ってしまうことがあったりして、
      それをつい、誰かに聞いて欲しくて、たまらなくなるんですよね。
      同じくスカイリムを楽しんでいる方に、面白いと言っていただけるなんて……嬉しいです。
      また良かったら覗きにいらしてください。

      削除
  2. 大変興味深く読ませていただきました。
    現在「遊び好きで心を開いた」セラーナを目指して攻略中ですが
    反応や動作を見ても正しい選択肢を選べているのか分からず疑心暗鬼になっています(笑)
    気を遣うと選ぶ返事も無難なものになってしまうので難しいところです。
    なんだか別のゲームをやってる気分になりますが、ミステリアスさを感じるところまで作り込まれるとAIも本当に魅力的に見えますね。
    以前からセラーナはちょっと変わったNPCだなとは思っていましたが、記事を読んでゲームをプレイする楽しみが1つ増えました。
    これからも更新楽しみにしています。

    返信削除
    返信
    1. コメント有難うございます。
      ちなみに後で気づいたんですが、セラーナちゃんの心理状態が今、どういう値にあるかは、デフォルトでデバッグ用のログが書き出されていたりします。
      (iniを書き換えて、Papyrusのログを書き出す設定にしなきゃなりませんが)

      「Papyrus.0.log」などを見ると、たまに「RNPC: Periodic update check.」という記述が出ているかと思いますが、そのタイミングで定期的にチェックされているのがソレです。
      「User」フォルダに格納されている「RNPC_MentalModel.0.log」というのが最新のセラーナちゃんの心理状態で、最初の数値が「心が閉じているか開いているか」どうかの値、二番目の数値が「気分がシリアスか遊び好きか」どうかの値を示しています。

      まあ、繊細?な女ゴコロをあからさまに覗くなんて野暮きわまりない行為なのですが……どうしても気になるようでしたら、ログをごらんになってみて下さいませ。
      ちなみにうちのセラーナちゃんは案の定、「-3,3」のシリアス状態でした。
      (心をがっつり閉ざしたままチャラけていたという……どうりで皮肉っぽい感じがすると思いましたw)

      削除
  3. 大変有用な情報ありがとうございます!
    恐る恐る確認してみたところ、当方のセラーナも「-3,3」でした…少しショックです……
    といっても今のDragonborn入りの環境を構築するより前のプレイ時に出力されたファイルのようです。
    今回も既にDawnGuardのメインクエストは終わらせたのですが、ログが書き出されるまでに少し時間がかかったりするのでしょうか。
    まぁ分からないままのほうが良いこともあるのかもしれませんね…

    返信削除
  4. とてもわかりやすくこの記事を参考に進めさせてもらっています!
    そこで質問なんですが、「どこに行けばいいか聞いてなかった」という選択肢はどのような手順で出すことが出来るのでしょうか?

    返信削除