忍者ブログ

方向音痴のSkyrim

PCゲーム「Skyrim」の雑多なCKいじり日記

セリフ用Questの作成【既存Dialogueにセリフ追加1】

既存Dialogueにセリフを追加する方法で、フォロワー用指示会話を作成していきます。
ここではバニラのフォロワーシステムに対して、「新規ボイスタイプ追加」「既存のフォロワー用ボイスタイプで固有セリフ追加」をそれぞれ行います。

いったんミラベルとアンカノのセリフ追加Modから離れて、新しいESPファイルを作成しました。別Modとして作っていきます。
マスターファイルは「Skyrim.esm」「Update.esm」として、DLCは含めません。含めませんが、最終的には競合を最小限に抑え、DLCと併用できるよう仕上げるつもりです。



まず最初は、Quest「DialogueFavorGeneric」にある雇用の会話にセリフ追加しようと思います。
ところがQuest Dialogue Conditionsを見てみると、汎用ボイスタイプにしか対応していないQuestみたいですね。首長になっている人にもDialogueが適用できません。
ユニークボイスやカスタムボイスのフォロワーには、雇用会話だけ新規Topicを作成するしかなさそうです。これはテルドリン・セロと同じタイプのフォロワー用Questを作ることになるので後回しにします。
ここでは汎用ボイスタイプなら誰でも誘えるよう、セリフを新規追加してみます。



「DialogueFavorGenericFollowBranch」というDialogue Branchがあるので、これのTopicを開きます。
リストに並ぶInfo全てを見て、Conditionsを確認。追加したいセリフの優先度を考えます。
まずは、既存のInfoに対応していない汎用ボイスタイプ全てに該当するセリフを作りたいです。上にあるどのInfoにも該当しないボイスタイプを受けるので、「リストの一番下」に置かないといけません。
どのInfoも選択していない状態で、Infoリストの空白部分で右クリック>New。



「SharedInfo」を利用して、このようなInfoを作成しました。
上から二段目の「Prompt」にも、「冒険に出発しよう」というような代替選択肢の文言を入力しています。「Prompt」に入力したテキストは、TopicTextの選択肢の代わりに表示できます。このInfoに該当するNPCだけには、いつもと違う選択肢を出したい、というときに使用します。同じ選択肢でよければ空欄で。完全に好みの問題です。ここでは自作Modで追加したセリフが確認しやすいので入力しています。

ConditionsはInfoの先頭にあった「Lead the way.」のセリフを参考に設定。ボイスタイプの縛りを外したので、PotentialFollowerファクションに加入していて、プレイヤーと友達以上の関係であれば、誰でもフォロワーとして誘えます。Quest Dialogue Conditionsの前提条件をプラスすると、「汎用ボイスタイプで首長でなく、PotentialFollowerファクションに加入しているプレイヤーと仲の良いNPC」かつ、上に並んだInfoに条件が引っかからなかったNPC全員をこのInfoで受けることができます。



いったんOKボタンを押してInfoを確定します。リストの一番下に自作Infoが追加されました。
一つ上にある既存Infoにも変更履歴がついてしまってます。必要のない変更なので、あとでTES5Editで消す予定です。

さて、雇用セリフにはNPCをフォロワーにするScript処理が必要です。既存の雇用セリフについているScriptと同じ内容を自作Infoにも取り付けます。



既存InfoについているScriptの確認。
Quest「DialogueFollower」をPropertyとして登録し、「End」のところで雇用に必要な処理を行っています。
バニラのフォロワーQuestを変更しているフォロワー拡張ModではScriptの内容が違うことがあります。そちらと互換を取りたい場合は、マスターファイルとしてフォロワー拡張Modを読み込んでから作業することになります。



自作InfoにScriptを付けます。
まず「End」の部分に「 ; 」半角コロンを入力し、下のCompileボタンを押します。



すると、「TIF__」から始まるInfo専用のScriptが自動的に作成されます。
※Mod OrganizerからCKを起動していたら、コンパイルできないかもしれません。



Scriptの名前が他Modと被っていたら誤動作の原因になりますので、オンリーワンの名前に変えます。
「End」のところで「Advanced」タブをクリック。「Rename Script」ボタンを押します。



「Rename Script」という小さなウィンドウが開きます。ここでScriptに新しい名前を付けます。
他ModのScriptと被らないような名前で。



名前が変更できました。生成したScriptは、「Data/Scripts」にあります。
PEXファイルがコンパイル済みの実行用、Sourceフォルダ内にあるPSCファイルはCKやエディタでの編集用です。Modを配布する際はPEXファイルのみでも大丈夫です。

Scriptを選択して、「Properties」ボタンを押します。



このようなウィンドウが開きます。
左下の「Add Property」ボタンを押します。



既存Infoで確認したのと同じ名前のPropertyを入力します。
「Type」は"Quest"、「Name」は"pDialogueFollower"です。
間違いがないか確認して、よければOKします。



Propertyが登録できました。
「pDialogueFollower」をクリックして選択すると、Pick Objectのところへすでに「DialogueFollower」が選ばれていると思います。違っていたら、手作業で選択します。これでOKします。
CKはPropertyのタイプと名前から、こちらが探しているものを予想し、自動的に内容を入れてくれることがあります。気が利きます。

Scriptではこのように、Script内で使用するオブジェクトをあらかじめPropertyという名札を付けて登録する必要があります。名札は各Scriptが用意しています。とあるオブジェクト(ここではInfo)にScriptがAddされると、オブジェクトはScriptが持つ名札を確認し、使用するオブジェクトをそれぞれ探しだして名札に対応させます。そして各オブジェクトに「Scriptが名札の名前を呼んだら、用事を聞きに行って仕事するように」と指示します。名札に対応するオブジェクトを用意してあげないと、Scriptは「名前を呼んでも誰も来ないので、仕事が進まん。仕方ないからこいつの処理は飛ばす」と言ってエラーを吐きます。
厳密には違うかもしれませんが、他オブジェクトを参照して作業するScriptは、だいたいこんな感じでPropertyの設定を必要としています。



Propertyの登録ができたら、Scriptの左に出ているアイコンに鉛筆マークがつきます。
次に「End」のところで、最初に入力した「 ; 」半角コロンを消し、処理内容を入力します。既存Infoから内容をコピー&ペーストすると間違いがないです。

(pDialogueFollower as DialogueFollowerScript).SetFollower(akspeaker)

↑「pDialogueFollower」という名札(Property name)に対応するオブジェクトが「DialogueFollowerScript」というScriptを持ってるはずだから、そのScriptにある"SetFollower(Actor)"という処理を"Actor = akspeaker"で実行してくれ……という内容です。

入力出来たら「Compile」ボタンを押します。特にエラーが出なければ成功。これで雇用のセリフが機能するようになりました。
OKして編集を確定します。

エラーが出たらPropertyの名前を間違えたか、「End」の入力内容にスペルミスがあるかだと思われます。Mod OrganizerからCKを起動している場合も、うまくいきません。MOを介さず直接CKを起動してコンパイルします。もしくはMO経由でコンパイルできる環境を整えます。



雇用のセリフには、仲間がいっぱいで断る時のセリフも必要です。
既存のInfoからConditionsをコピーし、ボイスタイプの縛りを削除してこのようにセリフを決めました。
こちらのセリフではScriptは使用していません。



リストの一番下にInfoを追加して、このようになりました。これで汎用ボイスのフォロワーなら割と誰でも雇用できるようになります。


リストの一番上にInfoを追加する方法もやってみます。
ここではムアイクを仲間に誘う専用セリフを作ってみましょう。タルヴァス同様、ムアイクのボイスタイプはカルジョやジェイ・ザルゴと同じなので、「MaleKhajiit」用セリフ「Then lead on, friend.」より上にムアイク専用セリフを置く必要があります。リストの一番上なら問答無用で最優先されるので、下位のInfoのConditionsを心配する必要はありません。既存InfoへのCondition編集なども行わずに済むので、競合の可能性も最小に抑えられます。


一番上に追加するので、一番上にある既存Infoを選択し、右クリック>Newします。



仲間に誘うセリフもムアイク専用「一緒に来てくれ。お前の嘘が必要だ」を用意することにして、Promptに入力。
Conditionsでは、ムアイクを直接指定します。これでカルジョなど他NPCはこのセリフを使えません。



仲間がいっぱいで断られるときも同様に。


 
このようになりました。不思議と最上位にあった既存のInfoには変更履歴がついていません。もしついていたとしても、TES5Editで取り除きますが……。


同様の手順で、ダンジョン入り口や絶景を見た時のフォロワーのコメント用Quest「FollowerCommentary01~03」にもセリフを追加できます。セリフは「Scene」の所にあります。

コメント用QuestにはどれもQuest Dialogue Conditionsに「PotentialFollowerFactionに加入している」という条件のみがあり、ボイスタイプ自体は限定していないので、どんな声のNPCでもこのQuestのセリフを言うことができます。

前へ | 次へ
PR

Author

UNI
Skyrimで遊ぶのも、CKで改造するのも好きなファンタジー好きです。
戦闘苦手で難易度は基本EASY、慣れてもNORMAL程度。 アンデッド恐怖症なので、ノルド遺跡探索が辛い……。

ブログ内検索

最新コメント

[11/12 fighf]
[11/11 AllicebeLype]
[11/11 コング]
[11/10 chomechome-X]
[11/05 UNPおじさん]