まずは脳筋ドヴァキンから。
彼には同胞団用のAI Packageを借りてきて、適当にスケジュールを組んであげています。
Factionも地下のベッドが使えるようにと、同胞団ファクションに加入させました。たぶん持ち前の大きな態度で関係者の振りをして、無料宿泊しているだけです。
各3時間の昼食と夕食、8時間の睡眠、それ以外は裏庭のベンチでだらだら過ごす素晴らしい生活。
しかししばらく観察していると、午前0時を回ったらなぜか裏庭に出て行ってしまいます。
地下で寝ないの?
睡眠スケジュールを調べてみたら、Locationが「Near editor location」になっていました。
自分が配置されている場所の範囲500でしかベッドを探せないようになっています。
ジョルバスクルの地下を見てみると、確かに同胞団メンバーはほぼ全員自分のベッドのすぐそばに配置されていました。
対してドヴァキンはジョルバスクルの裏庭が配置場所なので、これでは地下へは行きませんね。
デフォルトのAI Packageをいじるわけにはいかないので、睡眠スケジュールを作ることにします。
新しいAI Packageを作成し、Package Templeteには「Sleep」を選択。
各種設定は「CompanionShift1Sleep0x8」と同じですが、Sleep Locationのみもう少し汎用性のあるものに変更します。
まずはジョルバスクル地下の一般メンバー用寝室を覗いてみます。
プライバシーも何もないと思っていたのですが、NPCの配置を見る限り、一応男部屋と女部屋に分かれていた模様……。
寝室の中央には、Xマーカーが配置されています。これはファルカスが、入団したばかりのプレイヤーを寝室へ案内する時に使用している目印。
AI PackageでLocationやTargetなど、何かオブジェクトを指定すると、そのオブジェクトにReference関係の変更が加わってしまうようです。そしてオブジェクトに変更が加わると、それが存在する室内セルそのものにまでModの変更が及んでしまいます。
これを避けるには、バニラのAI PackageやQuestなどがすでに参照しているオブジェクトを指定します。もしくは、「In cell」でセルごと指定します。場合によっては使えない方法ではありますが、ざっくり設定でよければセルに余計な変更を加えなくてすむので、自作Modの扱いやすさがUPします。
ということで、このファルカス参照済XマーカーをSleepLocationとして使用することにしました。「寝室用のマーカーである」「寝室の中央にある」という2点も、これ以上ないくらいに最適です。
Radiusは「780」。この範囲内であれば、寝室全体をカバーできるでしょう。男女の寝室の区別ができなくなってしまうのは、仕方ありません。ざっくり設定ですから。
ゲーム内で確認したところ、さっそく女部屋で就寝していたドヴァキン。プライバシーなんか初めからなかったようなものだし、まあいいでしょう……。
次は「早朝シャウト」のスケジュールを作ります。雄鶏よろしく、ホワイトランの町全体に響くような場所から、揺ぎ無き力で朝の挨拶をしてもらうつもり。
これは屋外セルにマーカーを置くことにしました。ものを置くだけなら、屋内セルの変更に比べると競合の心配が少ないかと思われます。
上はジョルバスクルの裏庭を眺めているところ。
内戦関連などクエストが多い町なので、マーカーだらけです。
【
ショートカット】
[M]:全マーカーの表示/非表示
[1]:選択したオブジェクトの表示/非表示。1回押すと半透明、2回押すと非表示
[Alt+1]:↑で非表示にしたオブジェクトの全表示
[F5]:レンダーウィンドウの更新。一部オブジェクトがうまくロードされなかった場合によく使ってます
このあたりの操作を駆使して、邪魔なマーカーやオブジェクトを非表示にしつつ作業していきます。
「早朝シャウト」を放つのにいい場所を探します。
スカイフォージが見晴らしよさそう。マーカーだらけで少し作業がしづらいですが。
いくつかのマーカーやオブジェクトを非表示にし、「XMarkerHeading」をObjectWindowからドラッグ&ドロップして置きます。特定の方向に向かせたい時便利なマーカーです。
分かりやすいようにEditor IDも付けておきました。
NPCがマーカーに到達できないといけないので、ちゃんとNavmeshの上にあるかどうか確認しておきます。
確認できたらNavmeshの細長いウィンドウを消してNavmesh編集モードから抜けます。
これでシャウトの立ち位置が決まりました。
次にどこへ向けてシャウトを放つかを決めるマーカーを置きます。
座標さえ指定できればいいので、「XMarker」が便利。
先ほど置いた「XMarkerHeading」の視線から仰げるような空中に、マーカーを置いて目印にしました。
目印ができたら、AI Packageを用意します。
「Place to Travel」と「target」に先ほど用意したマーカーをそれぞれ指定。「Place to Travel」のRadiusは「32」にしました。
最初「Shout」というPackageTempleteを使ってテストしてみたのですが、どうもこれ、シャウトの立ち位置まで「target」に指定されたオブジェクトを見つめながら移動するようです。日常のスケジュールで使うには少々不自然だったので、立ち位置までは「Procedure:Travel」で移動させることにしました。
「Procedure:Shout」は、シャウトを一回放った後はtargetをずっと見つめ続けるだけになります。
スケジュールは朝の6時から1時間としました。
動作確認。ハイフロスガーの天辺へ向けてシャウトするようにしてみました。
スカイフォージの床が方眼になっているので、ゲーム内で方角を確認し、CKでマーカーを位置調整する作業が地味にやりやすかったです。
シャウトを放った後は「Procedure:Shout」の余韻で、斜め上に配置したターゲットのXMarkerを見つめ続けます。
「揺ぎ無き力」がハイフロスガー山頂まで達するのを見届けているようで、なかなかいい感じ。
もう一人のドヴァキンにも、ホワイトラン~ソリチュードまで各町の宿を経由して旅をするPackageを作りました。
Package Templete「SandboxMultiLocation」は、6つのポイントをランダム、あるいは順番に巡らせることができます。
ホワイトラン「酔いどれハンツマン」では、SandboxのLocationとして、黄色い直方体がついたXマーカーを指定しています。この黄色い印は、「LocationCenterMarker」というセルの中心的な場所を示すLocation Reference Typeです。AI Packageで参照しても変更が加わらないので、使いやすいマーカーのひとつ。
ソリチュードの「ウィンキング・スキーヴァ」では、傭兵ベルランドさんがいつも座っている椅子をLocationとして選びました。この椅子はベルランドのAI Packageですでに参照されているオブジェクトなので、セル変更を加えずに指定することができます。
バニラデータが参照しているオブジェクトにひたすら便乗していく感じです。
ロリクステッドとドラゴンブリッジの宿は、「In cell」で屋内セルごと指定しました。
一通りの作業が済んだら、TES5Editでespファイルの確認です。
こんなふうに「Cell」の項目自体がないので、屋内セルには一切の変更が入っていないのが確認できます。
Worldspaceへの変更も、必要最小限になっています。
余談ですが、ドヴァキン達のボイスタイプがなにでもプレイヤー用のシャウトが音声つきで使えるよう、4つのFormList「VoicesPlayer」「VoicePowerVoicesList」「VoicePowerVoicesListNoDraugr」「VoicePowerVoicesListwithTsun」も変更しました。
各Listに対応させたいボイスタイプを追加登録。それから「MaleEvenToned」や「FemaleEvenToned」などのフォルダから"voicepowers_"で始まる音声ファイル全部を、対応させたいボイスフォルダにコピー。これで「MaleNord」や「FemaleCommander」のボイスタイプでも音声つきシャウトが放てるようになります。
前へ |
次へ
1. 同胞団、万歳!
今まさに…私が実現したいけれど良く分からなくてできなかったことについて書いてくださっていたので、ものすごく感動いたしました…!!!
本当にありがとうございます!!しかも、今回の記事の舞台が同胞団だったり、ジョルバスクルだったりと…個人的に嬉しい記事でもありました!
(前回の{ SPSの記事のスクリーンショットにもさりげなくファルカスが写ってるーー!と、今頃気づきました!笑)
どうしてもNPCに的を射る行動をやらせいと思っていたのですが、Uniさんのドヴァキンさんの早朝シャウト」の方法を参考にして作れそうです!!
ハイフロスガーに向かってシャウトの挨拶を飛ばすドヴァキンさん…本当に絵になりますね~!!(Uniさんのブログに来ると、NPCが普通にシャウトをしている光景が当たり前という感じに思えてきて…不思議です!)
NPCがAIPackageで赤いバツ印をTargetにして矢を放っていたことまでは突き止めていたのですが、「Xmarker」の扱い方が分からなかったのでずっと悩んでおりました。
また、今まではCKによる改変の影響がmodにどこまで反映されているのか知らずにmodを作成していました…汗
1つの変更が室内セル全体に影響するのも大変勉強になりました。新規で設置するより、なるべく元々あるものを活用していく方が後々のmod干渉を避けられるということですね!
まずはアエラの弓の訓練Packageからこさえようと思っております。
>もう一人のドヴァキンにも、ホワイトラン~ソリチュードまで各町の宿を経由して旅をするPackageを作りました。
「掃除人フォロワー」もそうですが、長距離移動を可能にしたAIPackageを作れるなんて…Uniさんはやっぱりスゴイです!自分も同胞団のホームでPackage作りの基礎を学んで、上達したらいろいろな街に派遣できるようなものを作れたらよいなと思います(^^)b
>ドヴァキン達のボイスタイプがなにでもプレイヤー用のシャウトが音声つきで使える
これも凄い!と関心しました(^ ^)「MaleEvenToned」は声的に好きなのでいつも使っていましたが、シャウトフォロワーを何人か作るときに他の声にできたらいいなぁと思っていたので、今度試してみます!
友好度をあげたいNPCにはいつも「FavorJobsDranksFuction」をつけて酒をおごれるようにしていますが、もしかしたらこの方法で、酔っぱらいの名言「エールか、ハチミツ酒はねぇか?」にも音声がつけられますか?
【NPCの人狼化について】
Uniさんも興味を持ってくださっていたみたいでとても嬉しいです!
魔術師大学のサボス・アレン校長の精神を受け継ぎ、まさに「手当たり次第に」CKを弄っていた結果…奇跡的に歯車が噛み合ったという感じでしたので、本当は他にもっと良い方法が見つかると思っております。やはりファル「粕」の私一人では限界がありました…。Uniさんがより洗練された方法へと昇華して下さることを信じつつ…。フォロワーの人狼化システムが確立できる日を夢見つつ…書かせていただきます。
まさか、あのスコールさんに搭載した「蒸気」が思わぬ形で活躍するとは…予想外でした。
<変身する方法(仮)>
スコールさんの「蒸気」の祝福の搭載に着想を得て、Werewolfの変身EffectをNPCにSpellとして搭載し、使わせる方法です。
変身自体はAIPackageなしで行けますが、この方法では戦闘開始直後に勝手に変身してしまうので発動のタイミングを決めるのに後から必要になってくると思いました。
Magic Effectの「①WerewolfChangeFXEffect(Script)」と「②WerewolfChangeEffect(Werewolf)」のどちらを利用しても変身は可能でした。Spellのところを見ると、①はScriptとしてNPCやQuest依存の変身に使われていて、②はプレイヤーがパワーで変身するときに使うものだと考えられます。(最終的には①を使用しなければならないことが判明しました。※)
そのままのSpellをNPCに搭載しても使用しませんでしたが、①をDuplicateし、SpellのEffectsに「オークフレッシュ」で使われている「ArmorFFself0」の効果を追加、EquipTypeを「Voice→EitherHand」に変更したところ、オークフレッシュとして認識したのか…使用してくれるようになりました!! 呪文詠唱後にオークフレッシュのEffect→変身Effectが始まり、人狼化します。しかし、Uniさんがおっしゃっていたように、一度変身してしまうと時間が経っても元に戻りませんでした。
「WerewolfTransformVisual」のScriptを見てみると、ウェアウルフのRaceを取得して見た目が野獣形態になった後に「PlayerWerewolfQuest」のStage1へ移行するようになっていました。
これがやっかいな問題を引き起こしていると思います…。このQuestは「Player」をウェアウルフにする目的で記述されたScriptのようで、NPCがこのQuestを開始(?)してしまうと、
おそらくQuestを進行・終了するための記述がないため、ずっとウェアウルフ化したままになるのだと予想しております。
※①のPapyrus Scriptsの「WerewolfTransformVisual」が変身を司っているようです。②の「WerewolfChangeEffectScript」は、プレイヤーがウェアウルフになった時の能力や
Faction、咆哮、捕食などの細かい設定が含まれていました。つまり、①の方はRaceがWerewolfになるだけの変身、②の方はプレイヤーのために記述されたScriptであるので、この①を使用した変身ではウェアウルフの特徴の全てがNPCには反映できないという…不完全な点があるようです。(本当は②をNPCのために一から記述することができれば一番良いのですが…力及ばず)
例えば、①を使った方法では、Werewolfの忌避Factionに入らないためか、街中に化物が出現していても誰も気にしていませんでした(笑)
今回は「弟子」に被検体になってもらいました。
衛兵の一人をコンソールで「Setav aggression 3」と入力し、敵対させた時の反応です↓
skyrim.jpn.org/images/560/56056.jpg
skyrim.jpn.org/images/560/56057.jpg
<変身を解除する方法>
アイディアはあるのですが、まだ形にできておりません…このままだと一生ウェアウルフです(苦)
Re:同胞団、万歳!
教えてもらった方法でやってみたら、自分で魔法を使って変身してくれました!
うちのドヴァキンもブレナインと揃って、カルロッタさんに臭うって嫌われてましたよ……。それにしても自作フォロワーが、生みの親のいいモルモットにされるのはどこも同じみたいですね。
「ArmorFFself0」の効果を追加して、NPCにオークフレッシュと誤認(?)させるのはすばらしい方法です! 教えてくださってありがとうございます! NPCが絶対に使わないような魔法も、この方法で使わせることが可能になりそうですね。すごく応用の幅がありそう。
マント系魔法もこの誤解をしてくれるようで、同じ手法が通用しました。
【WerewolfTransSpell】
http://blog.cnobi.jp/v1/blog/user/84403e0550ca33d3595bc8431cf65480/1405859301
↑元通りになるScriptをつけたウェアウルフ変身魔法を作ってみました。まだ試作段階ですが、取り急ぎご報告をば。別データで作ったものを抜いてきただけなので落ち度があるかもしれませんが、なにか参考になれば幸いです。
■サンプルMod
0.Spell「aaaWerewolfChangeFX」とMagicEffect「aaaWerewolfChangeFXEffect」を作って、戦闘中に自力変身するようにする。
1.Spell「aaaWerewolfChangeFX」のEffects「BeastForm」の効果時間(変身時間)を「15秒」から「3分」に増やす。
2.MagicEffect「aaaWerewolfChangeFXEffect」を開き、Script「WerewolfTransformVisual」をRemove。自作のScript「SL00SLF__WerewolfTransformVisual」をAddして各Propertyを設定。
Scriptは「WerewolfTransformVisual」をほぼ丸写しですが、魔法の効果が切れたときに実行されるOnEffectFinishというイベントを付け加え、そこで元に戻る処理を行っています。元に戻る処理は、同胞団クエストのID「C01」についているScriptを参考にしました。
NPCが使うことを前提にしているので、プレイヤーが人狼化した時のクエストに関する条件分岐は削除。変身前の種族はScriptに記憶させているので、バニラの一般的な種族であれば誰でも使える魔法になっているかと思います。
また、元に戻ったとき裸になるようにしています(装備を全て外した状態)。しばらく視界に入れないようにすれば、エリアチェンジしなくてもそのうち装備しなおしてくれるみたいです。
(変身時は忌避Faction「PlayerWerewolfFaction」にも加入させてみたのですが、衛兵達は無反応でした。加入させるだけでは敵対しないのかもしれません)
-----------------------------------------------------------------------------------
>長距離移動を可能にしたAIPackage
Package Templete「SandboxMultiLocation」はデフォルトであるテンプレなので、これを使えば簡単にNPC達を旅立たせることができますよ。どんな長距離でもNPCが到達可能な場所であれば、出かけてくれます。
>「エールか、ハチミツ酒はねぇか?」
FavorJobsDrunksというクエストで管理されている台詞みたいですね。確認してみたところ、会話の発生条件はボイスタイプなどを限定してはいないので、「FavorJobsD_FavorSimpleDrun_000B026C_1」という名前の音声ファイルを各ボイスタイプのフォルダに加えるだけでいけそうな感じです。音声ファイルの中身は、それぞれのボイスタイプから「のどが渇いた」や「なんかくれ」系の台詞を探さないといけませんが……。怒鳴り声のシャウトと違い声の特徴が明確に出てしまうので、他のボイスタイプで音声を使いまわすのは難しそうです。
同胞団は特にファルカス・ヴィルカスの双子がなんだか可愛くて好きです。(どちらも厳ついおっさんですけど;) この二人は人狼であるのを恥じているみたいなので、ピンチになるまでは変身しないように設定できたらよさそうですね。
NPCの個性として人狼化させられるようになったのがとにかく嬉しくて堪らないので、サークルメンバーに魔法を覚えさせ、群れで狩りを楽しみたいと思います(テストプレイを兼ねて)。
今回は本当にありがとうございました(>▽<)/ うまく改造が進んだら、また記事にしてみます。