【Fallout4】オリジナル入植者にセリフを追加する【MOD制作】

前回、子供入植者による店の呼び込みみたいなオブジェクトを作成しました。今回はそれに呼び込みのセリフを追加登録してみます。

 

専用Questの作成

まずはセリフの登録に必要なQuestを作成します。

↑Questの例。これはダイアモンドシティにいる住人NPC用のQuest。
Questにはその名の通りクエストに関する情報が詰まっています。クエストのタイトルから関連するキャラクターたちのセリフや行動などなど。
ただし「クエスト」とは言ってもゲーム上で表記されているようなわかりやすいイベントだけでなく、プレイヤーとすれ違った際に「やぁ」と挨拶をする程度のものや、敵がプレイヤーを見つけた時の反応などの小さなものまで含まれています。

とりあえずセリフについては殆んどこのQuestのどこかにあるようです。全て調べたわけではありませんが…

ではオリジナル入植者用に専用のQuestを作ってみます。
が、その前に。今回もバニラのデータを参考に… ということで、ダイアモンドシティーにいるナットちゃんと、バニラの入植者のセリフデータを探し出します。

ナットちゃんのセリフはこのあたり。先程のダイアモンドシティーの住人たちのQuestの中に含まれています。
ウィンドウ上部の[Misc]のタブには挨拶や独り言などの短い一言セリフが登録されています。
更に[Topics]の欄で細かく種類ごとに分けられていて、挨拶関連なら[Greeting]や[Hello]、それ以外の独り言などは[Idle]といった感じです。

バニラの入植者のセリフはこんな感じ↓

こちらはWorkshopVendorGreetingsGenericというQuestの中にあります。

 

さて、では参考にするものが見つかったので、この二つを元に専用Questを作ります。
Quest一覧で右クリック→[New]で新規作成。

こんな窓が開くので、とりあえず基本的な設定をしていきます。

まず[ID]に適当なものを入力。いつもどおり自作MOD用とわかるものにしておきます。

次に[Priority]。これは少し重要です。
Priorityは簡単に言うとQuestの優先度です。この数値が高いQuestほど優先して発生します。
どれくらいの数値にすべきなのかは他のQuestと比較して慎重に決めた方がよいようですが、今回はバニラ入植者と同じ20にしておきました。やや優先度低めです。

最後に[StartGameEnabled]にチェックを入れ、[Run Once]のチェックを外します。
StartGameEnabled にチェックを入れておくとゲームの最初からこのQuestが発生します。
Run Once はゲーム中1度だけしか発生させない場合にチェックします。なので何度も繰り返し発生するような挨拶などはチェックを外しておきます。

基本設定はこれで終わり。OKを押して一旦窓を閉じます。

 

Topicsとセリフの追加登録

Questはできたので、今度はその中にセリフを追加してみます。先程作ったQuestを開きます。

今回追加したいセリフはお店の呼び込みに使う短いセリフなので[Misc]タブに切り替えます。
次に[Topics]を追加します。今はまだQuestを作ったばかりで何もTopicがない状態なので、右クリック→[New]で新規作成。色々な種類を選べますが今回は[Idle]を選択。

Topicができたら次はセリフです。隣の大きい枠で右クリック→[New]で新規作成。
窓が開きますが、まだ入力する内容を決めていないので何もせずに一旦閉じます。既に入力内容を決めている場合には閉じずにそのまま進めてしまってOKです。

一先ずセリフの枠だけは用意できました。が、まだ中身は空っぽのままなので、ここに登録するセリフの内容と実際に使われる音声ファイルを用意します。

 

セリフ字幕と音声ファイルの登録

最初に探しておいたナットちゃんのセリフが登録されているQuestを開きます。

Topics欄からIdleを選択すると、右側のセリフ一覧の中に「Everyone who’s anyone…」というセリフがあります。これが今回の目的のナットちゃんのセリフです。
これをダブルクリックして開いていくと、最終的に↓のような窓が開きます。

赤で囲ったところをメモしておきます。
[Response Text]が字幕で、[Voice Filename]が音声ファイルです。

ここで更に下にある枠内の[Voice Type]のところをダブルクリックすると登録されている音声を聴くことができます。
字幕が英語でわからないとか、字幕と音声の内容がちゃんと合っているか確かめたい時には便利です。
ちなみにこのセリフは日本語音声の「誰でもない誰かはパブリック・オカレンシズを読んでる!」というものです。

 

さて、元になるセリフのメモをとったら、先程作ったセリフに戻ります。
「EMPTY」となっているセリフをダブルクリックして開いたら、まずは[Response Text]のところにメモしてきた字幕の文章を入力。
次に[Voice Filename]ですが、ここがちょっと難しいというか面倒な部分です。

この時点で既に[Voice Filename]の枠になんらかのファイル名が表記されていると思います。
どうもこの音声ファイルに関してはCK側で自動的にファイル名やファイルを置いておくディレクトリが指定されてしまうらしい。
ということはつまり、自分でわかりやすいようにファイル名を決めたり、別のディレクトリにある既存の音声ファイルを使い回すことができない。

本来ならナットちゃんの方に使われている音声ファイルのディレクトリをコピペすれば簡単なのですが、それができないとなると、あとはファイルそのものをコピーして指定されたファイル名に変更して指定されたフォルダ内に置くしかありません。

というわけで、先程メモしてきたナットちゃんの音声ファイルをバニラのデータの中から探して抜き出してきます。
データを抽出するにはB.A.E.というツールを使いますが、ここでは使い方は説明しません。

音声ファイルを抽出できたら先程の[Voice Filename]欄に書かれていたファイル名に変更し、指定されたディレクトリに置きます。ディレクトリはVoice Filenameの下の枠の[Path]のところに書かれています。
使用するVoiceTypeが複数ある場合はそれぞれのフォルダに一つずつファイルを置きます。

 

これでようやく音声ファイルの追加が完了しました。
しかしまだこれだけではキャラクターはセリフを喋ってくれません。……というわけで、最後にこのセリフを喋らせるための条件を設定します。

 

セリフを使用する条件を設定する

最後にするのは 誰が・どんな時に このセリフを使うのかという条件の設定です。

条件を記入するのは[Topic Info]ウィンドウにある[Conditions]の枠。

赤枠の部分です。試しに右クリック→[New]で条件を一つ作ってみます。

↑のような窓が出てきます。
この画像では例として【 [VoiceType] が [MaleChild] ならOK】という条件を指定しています。
この条件に当てはまったキャラクターだけがセリフを使用できるということです。

この「〇〇が××だったら~」という条件指定ですが、色々な内容の条件が用意されているのですが数が多すぎてほとんど把握できてません。

…ので、ここでもバニラ入植者で使われている条件と、その他のNPCを参考にさせてもらいました。

最終的にできあがった条件。上から順に…

→入植者で武器屋の仕事をしている or
→入植者で防具屋の仕事をしている or
→入植者で衣服の仕事をしている or
→入植者で飲食店の仕事をしている and
→入植者である and
→現在、呼び込み用の箱オブジェクトを使用している and
→VoiceTypeがFemaleChildeである

これら全ての条件に当てはまったキャラクターだけが、条件に合うタイミングでセリフを使用することになります。
この場合は武器屋か防具屋か服屋か飲食店の仕事を担当して、かつ女の子の声の入植者が、呼び込み用の箱オブジェクトを使用している時にこのセリフを喋ることになります。

 

さぁ、長かったですがこれでやっと全ての準備が整いました。
ちゃんと間違えずに設定ができていれば、ゲーム上でも上記のタイミングでナットちゃんの声が聞こえてくるはずです。

 

グループ設定とゲーム上での確認

ここまでで目的のセリフの追加はしっかりできている筈ですが、一言だけではまだ寂しい気がしたので他にもいくつかセリフを追加しておきました。

ナットちゃんの声に加えて、ダイヤモンドシティの水売りシェン少年の声も追加しています。
更に、それらの声を女の子用と男の子用のグループにわけ、それぞれグループ設定を適用しています。
これによってセリフ一つ一つに条件付けなどの設定をしなくても、グループ内全てのセリフに一括で同じ設定をすることができます。

グループ設定の方法は簡単なのでここでは省略。

 

ではでは、これまでの結果をゲーム上で確認して終わりたいと思います。

ちょっとまだセリフのタイミングの条件が甘いのですが、概ね成功です。
これで少しは居住地の雰囲気も賑やかになるかな?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください