忍者ブログ

方向音痴のSkyrim

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

家Modにフォロワー居候機能をつける1

Modを作るためのMod。自作家、もしくは自分のお気に入りの家Modに直接フォロワーの居候機能を取り付けるためのシステムを提供します。AI Packageだけ家に合わせて自分で作れば完成です。
既存Scriptを流用するので、PS4でも実装可能です。
■汎用移住Modでは設定不可能な細かい生活スケジュールを与えられる
フォロワーなどのNPCを任意の場所に住まわせるModにはMy Home Is Your Homeがあります。PS4ではRelocate NPCなど。フォロワー管理Modにもそういった機能を持つものがあります。MHIYHもRelocateNPCも汎用移住Modなので、NPCに住むよう指示した場所を認識させ、自然な生活をさせるのは制約があったり不可能だったりします。特にゲームの仕様上、NPCが認識できるのは居住ポイントとして指定した場所の周辺のみで、ロード扉をまたいだ移動は無理。できたとしてもかなり大雑把な指定しかできないでしょう。

任意に住まわせたNPC達がロード扉をまたいで家内外を自在に歩き回り、各施設を自由にのびのび使ってほしい。そういう場合は、家Mod自体にNPC移住機能を添付する、つまりそこで暮らすNPCのAIを自分で作ってしまうのが一番いいです。意外とそういう機能を持つ家はあまり見かけない気がします。MHIYH等汎用の移住Modで一括管理する方が圧倒的に便利だからかと思うのですが、家側にそういう機能があってもたぶん邪魔にはならないはず。


■Dweller Slot【居候追加システム】Mod作成用機能追加Mod
会話からNPCを居候させたり開放したりできるだけの、簡単な居候追加システムです。
これだけでは動きません。AIは必ず自前で編集してもらう必要があるので、少なくともAI Packageをいじったことがある人向けになります。
家Modにマージするか、家Modをマスターファイル指定したパッチとして作るかします。


ダウンロード(mediafire)
※旧Skyrim用のファイルですが、SEでも動作しSE用のCKで編集も可能です。Scriptは既存のものを流用したのでESP1個だけ。旧Skyrim、SEどちらでも利用できます。デフォルトは居候枠4つ。おまけで居候枠8つのも同梱。好きな方を編集してお使いください。
※サンプルとして、ヘリヤーケンホール用の居候Mod(SL99DwellerSlotsBYOHHouse3)を同梱しています。居候1と2は、2階のシングルベッド、居候3と4は2階のダブルベッドで就寝します。食事はダイニングテーブルで1日3回。それ以外の時間は屋内だけでなく、屋外や地下などにも移動してぶらぶら過ごします。2階のベッドと地下を作った状態でお試しください。屋外の散策AIは、テラスを作ってないとうまく動かない地点があるかもしれないです。


機能
  • 既存Scriptを使用しています。なのでPS4でも機能します。PC用、Xbox用で作る場合、気になるようでしたら自前でカスタムScriptを用意し、すり替えてください。
  • 新規ダイアログを追加しているのでseqファイルが必要ですが、つけてないので導入直後の初回ロードでは会話が出ません。セーブしてロードし直し、会話を有効にしてください。
  • 居候管理Quest「SL99DSDwellerQST」の優先度は81。セラーナまで対応可能。
  • その家にいるときだけ、「Would you live in this house? (この家に住まないか?)」の選択肢が出ます。その為住まわせたいNPCを家につれてくる必要があります。対象は、フォロワー候補かプレイヤーと友人関係にある人型NPCのみ(家具が使える種族のみ)。
  • 居候NPCに話しかけると、管理中の居候を解放する選択肢が出る。居候の管理は、居候NPCがどこにいても話しかければできるようになっています。
  • 居候枠は4名(増やしたり減らしたりは各自で編集してください。やりかたはこちら)
  • 家Modに居候Modをマージした場合、家Modをアンインストールする際、事前に居候NPCを全て開放するのを忘れないようにしてください。
  • 居候Modをパッチとして作った場合は、パッチだけいきなり抜くのは構いません。居候NPCは本来のAIに従って元の場所に戻るなりします。
  • 居候NPCがゲームから削除されても(NPCがScriptでdeleteされたりNPC追加Modを抜いても)、居候システム自体は問題ないです。NPCの名前が取得できなくなるので会話選択肢に[...]という謎の文字列が現れますが、無視して新しいNPCを枠に入れてやれば新しいNPCの名前が入ります。
  • ペットを飼いたい場合は、……自前でなんとかしてみてください。バニラの雇用システムやフォロワー管理Modによってペットの扱いが微妙に違うので、慣れてないと難しいです。人間フォロワー扱いで仲間になるペットもいますし……。
  • プレイヤーの家族を完全移住させるのはこれでは無理です。「Custom Family Home」や「Hearthfire Multiple Adoptions」を利用してください。

使い方 (Creation Kitで編集) 参考画像はクリックで原寸大を確認できます。

※居候枠は4つもいらない、あるいはもっと欲しいという場合は、別記事の枠削除や枠追加の編集を先に行ってください。


Quest「SL99DSDwellerQST」を開いて、「Player Dialogue」タブを選ぶ。



一番左枠から順に、Branches欄の「SL99DSDwellerStart」を選択、Topics欄の「SL99DSDwellerStartTopic」を選択。一番右の大きな枠Info欄に「(???)」というセリフがあるので、それをダブルクリックして開きます。
Topic Info画面が開いたら、Conditionsリストを確認。一番上の行に「PL GetInCurrentLoc Location:"SL99DSDummyLocation" == 1」があるので、それをダブルクリックして編集します。



編集用の画面が開きます。
ダミーLocation「SL99DSDummyLocation」が設定されているので、家ModのLocationを選択しなおします。この例では、ヘリヤーケンホールのLocationを設定しています。ここにプレイヤーがいるときだけ、居候に誘うセリフが出現するようになります。親Locationを設定しておけば、子Location(ここではヘリヤーケンの屋内)にいるときでもセリフが出現しますよ。

もしその家ModがLocation設定を持っていなければ、Condition Functionを "GetInCurrentLoc" から "GetInCell" に変更し、家Modの屋内セルを指定します。プレイヤーがそのセルにいるときだけセリフが出現するようになります。この辺りは目的に応じて好きなConditionを設定してください。
これでセリフの設定はおしまい。
もしセリフの文言を変えたければ、自由に変えてください。無味乾燥な「[1] これが君の居候枠」より「[2階客室] ここが君の部屋」などが分かりやすいかもしれないです。
Promptを設定してあるDialogueは、Info一覧のFragsの項目に「P」と印が出てますので、Info開いてPromptのセリフを編集してください。居候枠がすでに埋まっていた場合用の、「[1] 誰々と交代して」のセリフが入っています。



次に「Quest Aliases」を選び、各AliasのDweller01~Dweller04を開いて、AI Packageを確認します。一応デフォルトで一通りのスケジュールを用意しています。お好みに応じて、各居候達の生活スケジュールを設定してください。全員同じように過ごしてもいいし、別々のスケジュールを設定し直してもいいです。
※もし居候に死んでほしくなかったら、各DwellerのAliasを開いてEssentialかProtectedにチェック入れてください。



デフォルトでは上記のようなAI Packageを各居候に用意しています。スケジュールを作るのが面倒なときは、デフォルトで用意したAI Packageを編集して利用してください。
睡眠Packageだけ各居候ごとに用意したので、離れた個室にばらばらで寝かせることができます。それ以外は共通スケジュール。
各AI Packageには、居候が雇用中のときは動作しないようConditionを設定しています。「PlayerのTeammateでない」かつ「CurrentFollowerFactionに入っていない」をフォロワーでない条件としています。大半のフォロワー管理Modや独自雇用枠を持つカスタムボイスフォロワーModはおおむね判定できると思います。こちらも必要があれば適宜変更してください。

デフォルトで用意したAI Packageの生活スケジュール
  • 食事:7時、12時、19時から1時間、指定された場所でご飯
  • 睡眠:23時から翌日7時まで、指定された場所でベッドを探して就寝
  • Sandbox:7時から18時まで指定された複数の場所を巡りながら過ごす。18時から23時も同様。昼と夜とでそれぞれ別の場所を指定できるようにしました。
  • DefaultSandbox:上記スケジュールの空き時間をカバーする。終日動作するため、家のセルをLocationとして指定すれば、上記スケジュールの時間設定をミスってスケジュールに穴が開いても、居候が元いた場所に帰ってしまう恐れはなくなります。


ここまで出来たら、居候Mod由来の全データのEditor IDを、自分独自のものにリネームするようにしてください。全てのEditor IDは「SL99DS」という接頭辞で始まってるので、それを検索して一括置換できます。

TES5EditやSSEEditでModを開き、自分のModのespを選択した状態で、右クリックから「Apply Script」を選択。ウィンドウが開いたら「Script」のメニューから「Replace text in EDID and FULL」を選びます。
Replace textのコードが下に表示されるので、7行目の"StrSearch"のところのシングルクォーテーションの中身をSL99DSに書き換え。8行目の"StrReplace"シングルクォーテーションの中身を自分独自の文字列に書き換えます。間違いがないかよく確認したらOKボタンを押します。



こんな感じで「SL99DS」だったところが全部置換されます。文字列が一致すればセリフのテキストなども置換される場合があるので、検索文字列にはご注意ください。

「Replace text」というScriptは、現在選択中の要素の子要素以下を検索置換してくれます。個人的によく使う方法なので一例としてご紹介しました。各自お好みの方法でリネームしてください。


以上で編集終わりです。家Modにフォロワーを住まわせ、テストプレイしてください。
次の記事で、居候枠の削除と追加の方法をまとめています。

前へ | 次へ
PR

Author

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

ブログ内検索

最新コメント

[07/16 chomechome-X]
[07/16 ブレトン魔術師]
[07/15 amo]
[07/10 初心者シセロ]
[07/10 ソウルケルンのエレンウェン]