※2022/03/15 ; version 0.50 に更新。滞在場所が指定されていないとき、滞在行動の時間帯になるとその場でサンドボックスしていたのを、デフォルトのAIで行動するように変更しました。これにより、旅先で別れた際にその場でサンドボックスしてしまう現象が修正されます。また、寝間着の処理タイミングをずらして、処理が重なるのを防止しました。
NPCの滞在場所や就寝場所などを指定することができるようになります。4時間ごとにタイムテーブルを変更することも可能です。
デフォルトの装備をインベントリ内で可視化する機能があり、フォロワー中でなくても渡した装備品を着てくれます。当MOD管理下で眠る際の寝間着も指定できます。
対応人数は32人までです。各NPCは独立して管理されるため、全員別々の場所で生活させることも可能です。対象のNPCはフォロワー候補でなくても構いません。
1. 最新版ダウンロード (uploader.jp)
※すべてのDLC、および SKSE、SkyUI が必須です。
2. 使い方と主な特徴
2-1. 習得パワー
当MODを導入すると、自動的に「ライフスタイル」というパワーを覚えます。
対象のNPCをクロスヘアに捉えてからパワーを唱えると、メニューが開きます。
- 場所指定 … その地点を登録します。詳細後述。
- タイムテーブル … タイムテーブルの表示、変更を行います。詳細後述。
- 服装 … デフォルト装備の可視化や、寝間着の設定を行います。詳細後述。
- 設定クリア … そのNPCの設定をクリアします。服装も元に戻ります。
- 所持品 … インベントリ画面を開きます。盗み扱いにはなりません。
- AI情報 … 現在のAI情報を表示します。
場所指定やタイムテーブルの変更等を行うと、当MODのNPCリストに自動的に登録されます。
クロスヘアに誰も捉えないでパワーを唱えると、NPCリストを表示します。そこから各NPCのメニューを開くことができます。
NPCがプレイヤーと離れている場合、メニュー画面の「場所指定」の選択肢は表示されず、替わりに「呼び出す」と「行く」の選択肢が出ます。フォロワー候補でないNPCを移動させたいときは、何らかの設定を行ってNPCリストに登録し、目的の場所で呼び出してください。
2-2. 場所指定
メニューで「場所指定」を選択すると、行動の種類を選択するダイアログが出ます。その地点を指定したり、解除したりすることができます。
「滞在」はロケーション情報を取得して、広範囲の自由行動をさせます。他の3つは、指定時にNPCが立っているポイントを中心として行動します。「作業」は食事と就寝を除いた自由行動を行い、「食事」は椅子に座って一定時間食事した後に自由行動となり、「就寝」はベッドで眠ります。
行動地点を指定すると、タイムテーブルが以下のように設定されます。すでにタイムテーブルの設定が行われている場合は変更しません。
- 作業 … 11:00, 15:00
- 食事 … 07:00, 19:00
- 就寝 … 23:00, 03:00
2-3. タイムテーブルの変更
メニューの「タイムテーブル」を選択すると、現在の設定を表示するとともに、各時刻の行動を変更することができます。
場所指定とタイムテーブルを組み合わせることで、NPCの行動を柔軟に設定することが可能です。下図の例では、7:00 になると起床してホワイトランの街に出て、11:00 からはドラゴンズリーチで過ごし、19:00 にはバナード・メアに移動して食事をし、23:00 にブリーズホームへ帰って就寝するようになります。
2-4. 服装の変更
- デフォルト可視化 … デフォルト装備をインベントリ内で可視化します。
- 寝間着 … 当MODのAIで就寝する場合の寝間着を設定することができます。
- 元に戻す … 可視化と寝間着の設定を元に戻します。
- バニラ衣装 … バニラの衣装 (Outfit) に戻すことができます。バニラのNPCでのみ表示されます。
- ID入力 … Form ID を入力して、Outfit を直接指定することができます。(要 UIExtensions)
「デフォルト可視化」をするとデフォルト装備を取り除くことができるので、任意の防具を渡して装備させることが可能です。フォロワー中でなくても渡した防具を着続けてくれます。
「寝間着」を選択すると専用のインベントリ画面が開くので、寝間着にしたい防具を渡してください。何も渡さないと寝間着設定はクリアされ、着替えは行われません。
「元に戻す」で可視化と寝間着の設定がクリアされます。
バニラのNPCのみ、「バニラ衣装」の選択肢が表示されます。ほぼ全員分の Outfit データを内部に保持しており、衣装を元に戻せなくなったNPCをバニラの状態に戻すことができます。これは、Back to Vanilla Outfit から Sleep Outfit 以外の機能を取り込んだものです。
「ID入力」は UIExtensions 導入下でのみ表示され、Outfit の Form ID を直接入力して変更することができます。IDの先頭2桁を「xx」(小文字のエックスエックス) にした場合、ロードオーダーが自動補完されます。他のMODの Outfit を xEdit 等で調べて適用する際に便利です。
2-5. MCM
MCMでは、登録されたNPCの一覧と場所情報を見ることができます。スロット番号の入れ替えや、設定のクリアも行うことができます。ここでのクリアは、パワーの設定クリアと全く同じものです。場所指定やタイムテーブル等の変更は、パワーから行ってください。
一般 タブでは、当MODのON/OFFや、すべてのNPCの一括クリアをすることができます。アンインストールの際は、ここからOFFにしてください。OFFにすると、すべてクリア も同時に実行されます。
3. インストール・アンインストール
3-1. インストール
MOD管理ツールでインストールしてください。
すべてのDLC、および SKSE、SkyUI (LE版 / SE版) が必須です。
ID入力 機能を使う場合のみ、UIExtensions (LE版 / SE版) も必要です。
ハースファイアの家はロケーション情報の設定が適切でないため、当MODで修正を加えています。
同様の修正を行う下記のMODと併用する場合は、ロードオーダーを以下の通りにしてください。他の2つのMODの方を優先することになります。
- 1. 当MOD
- 2. Hearthfire Upper Floors (version 0.70 以降)
- 3. Hearthfire multiple adoptions – Now with custom home support for kids and spouse
3-2. アンインストール
MCMの 一般 タブを開いて、当MODをOFFにしてください。
その状態でセーブしてから、MOD管理ツールでアンインストールしてください。
4. 更新履歴・旧バージョン
4-1. 更新履歴
- 2022/03/15 (version 0.50) ; 滞在場所が指定されていないとき、滞在行動の時間帯になるとその場でサンドボックスしていたのを、デフォルトのAIで行動するように変更。寝間着の処理タイミングをずらして、処理が重なるのを防止。
- 2021/05/29 (version 0.40) ; NPCが就寝する際、対象のセルにプレイヤーが先に入っていると寝間着に着替えなかった問題を修正。
- 2021/02/06 (version 0.30) ; 場所やタイムテーブルを変更した際、AIがすぐに切り替わるように修正。服装の可視化をしたNPCが、裸のままになることがある問題を修正。服装をバニラ衣装にしたり、Form ID で直接指定する機能を追加。
- 2020/07/29 (version 0.20) ; 服装を元に戻せなくなる問題を修正。
- 2020/07/16 (version 0.10) ; 公開。
4-2. 旧バージョン
5. 技術情報
5-1. 滞在ロケーション
滞在場所を指定したときは、その地点の Location 情報を取得しています。Location は、複数のセルをまとめた地域情報のようなものです。
Package で Sandbox を設定する際、行動範囲としてこの Location または特定のオブジェクトのどちらかを指定することができます。Location を指定した場合、その中の World Location Marker Ref という設定項目によって、Sandbox の仕方が変わるようです。
Marker Ref が設定されていない場合は、Cells に含まれるセルで自由行動を取ります。セル間の移動もするようです。
一方、設定がある場合は、Sandbox が始まるとまずその Ref まで移動し、それから自由行動を始めます。このとき、セル間の移動については、しばらく観察したものの移動を確認できませんでした。
Marker Ref を持つ Location だと、Sandbox の開始地点がそこに固定されるので自由度が低くなります。行動範囲が狭いと感じられるかもしれません。スクリプトからは、この Marker Ref を変更することができませんでした。
5-2. 服装のデフォルト可視化
デフォルト可視化と言っていますが、内部処理としては裸の Outfit に変更し、元の Outfit の防具をインベントリに入れているだけです。裸の Outfit に最適装備を着させるスクリプトを設定しているので、フォロワー中でなくても装備を着続けてくれます。
元の Outfit 情報を個別に保存し、元に戻すことができるようにしています。
5-3. 寝間着
version 0.10 – 0.20 の仕様
寝間着は、一旦すべての装備を脱がせてから、寝間着のコピー品を着させるようにしています。各NPCを担当する32人のマネキンさんが裏で寝間着を保管しています。
Package 変更やセル移動のタイミングを取得し、寝るときに寝間着を渡して着させ、起きるときに取り上げています。取り上げる処理については厳密でなく、寝間着を持ったままになっていることも多いかと思います。これは、NPCの Package が変わったときのみ取り上げていて、プレイヤーが別のセルに移動したときには処理を行っていないからです。
負荷をあまりかけず、ただしNPCが裸にならないように、そして装備品が消失しないようにと考えた結果、今の仕様になりました。NPCが着ているのはコピー品のため、寝間着設定画面で渡したものが無くなることはないはずです。
version 0.30 の仕様
寝間着を着させるかどうかの判定方法を変更しました。
これまでは、デフォルト可視化の処理とやや複雑に絡んでいたため、まれに裸のままになってしまうことがありました。この処理を分離し、デフォルト可視化をしたNPCにはまず最適装備を着させ、1秒待ってから寝間着の処理を行っています。こうすることで、もし寝間着の処理がうまく行われなかったとしても、裸にはならないようにしています。処理を分離したことで、動作も安定したと思います。
5-4. AI情報
AI情報は、Package の Form ID と管理している esm/esp 名を表示します。その Package が特定のクエスト専用のものであれば、その ID と Priority (優先度) も表示します。
NPCの Package 情報は、スクリプトの GetCurrentPackage() 関数で取得することができます。その Package に Owner Quest が設定されている場合のみ支配クエストを取得でき、優先度も調べられます。
最初はテストプレイ時に確認する目的で実装していたものですが、場合によっては有用かもしれないと思い、残しておきました。
できることなら、クエスト専用でない Package でも支配クエストを取得できると良いのですが、今のところ難しそうです。もしこれができると常にクエスト優先度を取得できるため、Package の競合チェックに非常に役立ちます。
8 thoughts on “Lifestyle of NPCs – ライフスタイル変更MOD”
これいいですね!マジで痒いところに手が届きそう!
有難く使わせていただきます~いつもありがとうございます!!
こんにちは!こちらにもお越しいただきありがとうございます。
時間をかけて作ったので興味を持ってもらえて嬉しいです。どうぞお試しください☆
通りすがり失礼します。素晴らしいmodですね…!
My Home is Your Homeでは物足りない、FLPでは多機能すぎる…という自分の嗜好にどストライクでした。
フォロワーの行動制御には寝間着modやいろいろなものを組み合わせていたのですが、これ一本に整理できそうです。
公開頂き誠にありがとうございます…!
ありがとうございます!
雇用中でないNPCの行動を一括して制御しようと思い、この形になりました。
あまり負荷をかけないことを念頭に置いているので、特に寝間着などは思ったように動作しないこともあるかもしれません。
何かありましたら教えていただけると助かります。またどうぞお立ち寄りください☆
AI情報の表示機能が非常に助かります。挙動がおかしいフォロワーに干渉しているMODが簡単にわかるようになりました!
いつもありがとうございます。
私もこの機能をよく使ってます。思ったように動いてくれなくて確認したい時ってありますよね。機能をそのまま残しておいてよかったです。ありがとうございます。
素晴らしいMOD!!!!!!ありがとう!!!!
嬉しいお言葉!ありがとうございます。