01~03回まで、SetRaceの関数でNPCの種族を変更して変身させてきました。一人一役で扱いやすい反面、NPCの作り方によっては、ステータスやCombatStyleなどが変身後の戦闘スタイルと合わず、変身に合わせてアビリティを付与したりCombatStyleを変更したりと手間がかかります。
こういったNPCには、彼らと同じ名前の変身後のNPCを用意し、変身のタイミングで役者を入れ替える方法が便利です。異なるActorを使用するので、変身後のステータスも自由に決められます。人間の時は知的な純魔法使いだけど、変身したら爪と牙で敵を引き裂く血なまぐさい狼野郎、みたいなメリハリあるNPCも作りやすいです。
一方で変身中、元のNPCをDisableするにしろどこかの待機セルに飛ばすにしろ、扱いに注意が必要です。フォロワー拡張Modはフォロワーが遠くに行くとプレイヤーの近くにワープさせる機能があります。雇用中のフォロワーをDisableするのもModによってはまずいかもしれません。この辺りの対処が最大の悩みどころです。
基本的にはこれまで書いてきた変身魔法のScriptで、新規Propertyに変身後のNPCを設定し、SetRaceのところをDisableやMoveToなどを使ってNPCを入れ替える処理に書き直せばいけます。
第1回のScriptを手直ししただけのものです。これまでに無いほど汚いスクリプトな気がします……。このScriptひとつで変身と元に戻る処理をやっていますが、かなり横着な書き方かもしれません。ちゃんと二つに分けたほうがいいのかも。
特に第1回ではSetRaceだった部分の処理を、以下のように書き直しています。
TransformerActor:変身後に呼び出すNPC
Target:魔法の使用者、変身前のNPC
最初はMoveto()で待機セルに設置したマーカーの場所へ移動させるつもりだったのですが、色々あって少々てこずったため、Disableで一時的に消す方法を取りました。フォロワー拡張Modとの兼ね合いにより、どちらの方法がいいかは分かりません。バニラのままのフォロワークエストであればDisableしても特に問題なさそうでした。
SetDoingFavorは「手伝ってもらおうかな」を強制解除する関数です。テスト中、キーの操作ミスで変身中のNPCにFavorモードを発動してしまい、困ったことになったためです。Favorモード中、DisableされたNPCに対して指示を実行すると即CTDしてしまいました。MoveToで他所のセルに移されたNPCに対してもCTDしそうな気もします。とりあえず気づいた点だけでもCTDを引き起こさないように対応しておきました。
・変身するとき
TransformedActorに変身後のActorを登録
TurnBackはFalse
・戻るとき
TransformedActorに元の姿のActorを登録
TurnBackはTrue
変身用魔法と戻る魔法を作り、適切な状況でそれぞれのActorに魔法を使わせます。
以下は、個人的な具体例です。
クエスト「月明かりに照らされて」に登場するシンディングは、3人用意されています。うち一人は彼を殺した時に現れるハーシーンの化身である幽霊なので、実質は2人。ファルクリースの牢にいる人間シンディングと、ブローテッド・マンの洞窟でワイルドハンティングに現れる狼男シンディングです。
形態別にせっかく二人用意されていることだし、置き換え変身魔法の題材になってもらいました。
使うScriptが異なるだけで、魔法の作り方自体はこれまでと同じです。
Combat Override Packageを使用して、強制的に魔法を使わせることにしました。
ストーンフレッシュの魔法を装う必要も無いので、変身用のMagicEffectのみを登録。
シンディングは魔法を使いそうに見えないので、シャウトとして作りましょうか。
シャウトを強制使用させるためのCombat Override Packageです。
Templeteの「Shout」を元に、Procedure Treeの最後にProcedure:Waitを追加しただけのもの。
あとはConditionsタブにて、「CurrentFollowerFaction」に加入しているか、もしくはチームメイトになっているかの条件をつけ、フォロワーのときだけPackageが動くようにします。
さらに戦闘が起きるたび変身するのもせわしないので、体力が死にかけのときだけ使うように条件付けしました。
これを人間シンディングが使うようにします。
第2回と同じ手法で優先度100のクエストを作り、エイリアスにシンディングを設定。
Combat Override Packageは新規FormListに登録して、エイリアスのAI Package設定欄の下にあるCombatOverrideListでそのListを選択します。
こちらは狼シンディングに覚えさせる変身解除魔法です。アビリティとして作りました。
プレイヤーが彼に「灯明」を当てると、変身解除魔法が発動します。プレイヤーが任意で変身を解除させられる方法なので、けっこう便利な設定です。
狼シンディングが呼び出されるのは時間的にもそれほど長くないつもりでいるので、Condition付きのアビリティをいくつかつけてもそこまでゲームに負担はかけないでしょう。負担をかけるにしても変身中のみに限定することができます。
狼シンディングも同じようにエイリアスで管理します。
シンディングが変身するのはフォロワーになっているときですが、変身魔法で呼び出された狼シンディングは別Actorなので雇用状態にはなっていません。
そのため、狼シンディングにはプレイヤーに追従するAI Packageが必要です。PackageのConditionsタブでは、人間シンディングがフォロワー状態になっているとき、で設定しています。
すごく分かりにくいですが、動作テストで変身している時の様子です。
NPCを入れ替える瞬間そうしても一瞬姿が消えてしまうのですが、そこまで不自然には見えません。あるいは、エフェクトなどで煙幕を張るなどすると上手にごまかせるかもしれません。
変身魔法の作成は魔法自体の作成も一苦労ですが、その魔法をいつどのようにしてNPCに使わせるかも結構手がかかります。そのままだとNPCが自発的に使ってくれる魔法の構造ではないだけに。
シンディングについてはこの方法をベースに、ある程度完成した形でフォロワー化できたらなぁと考えています(
しました)。
同胞団のサークルメンバーは自力で変身を制御できるので、01~03回の記事でやったような方法でいけそうかな……。
前へ |
次へ
1. 生まれ変わるシンディング
私的な製作のお話になってしまいますが…同胞団の拡張Modを製作している際に、メンバーを強化するために色々なPerkを作成していました。優先度の高いQuestを作ってAliasを被せ、バニラのActor情報に改変を加えずに、フォロワーに自作Perkを持たせたいと思っていたのですが…QuestAliasからはPerkを改変・追加できる欄は無く、変更できる項目はかなり限定されるという壁にぶつかりました。結局、Modの互換性を高める事を優先し、既存の同胞団メンバーへの新規Perkの付与は諦め、すべてのPerkをShoutやAbilityに作り直しました。しかしそれでも、Perkでしか得られない設定やActor欄の変更でしか実現不可能な事もあるため…何もできずに断念せざるを得ないアイディアもありました。新規作成したActorは既存のNPCと異なり、Perkの適応をはじめ、Actor情報の変更に関して柔軟性があることを痛感したのも、この時です。
UNIさんのシンディングのように、「人型⇔人狼型」が独立している変身方法が確立されれば、「変身によってActor情報自体を一時的に変化させられる」ため、Questでは変更できなかったActorのベースになる部分(見た目、性格、戦い方、攻撃の仕方など)を自分の力で制御できる、極めて特殊なAIのフォロワーが誕生しそうですね!
同じ「人型⇔人型」でも、「髪型を変える」や「着替える」という動作にも拡張できそうで…日常生活への応用にも、期待が膨らみます!!二刀流の製作で必死で研究した「武器の持ち替え」でさえも、すんなりと成し遂げてしまうようなスゴさを秘めていると思います。
>Disableで一時的に消す方法を取りました
掲載されているScriptを一生懸命読みましたが、やはり自分には難しい内容でした…(>o<) これを一から書き上げてしまうUNIさんの製作力に、感銘を受けました!
Disableは自分もコンソールでよく使用するのですが、消えたActorが存在ごと消されたのか?または、その場に居て見えなくなっているだけなのか?が、今一つ把握できておりません。消えた人もEnableすると、消えた場所とは全く違う所に居たり…見えない状態の時の処理に謎が多いですよね。死亡した時は一定時間後に、例の死体置き場Cellに飛ばされてしまう人もいれば、Cellにすら残らず跡形もなく消える人も居たりと…。
変身中の“異界”にいる人型シンディングが、どんな状態なのかが気になります(^u^)?
>プレイヤーが彼に「灯明」を当てると、変身解除魔法が発動します。
面白いアイディアですね~!「常に明るい所を歩くこと。力ずくでもそうさせる」や「ステンダールの光がお前の病を浄化するだろう」という、番人の言葉を思い出しました。シンディングの狼の魂を「灯明」の淡い光が落ち着かせているように見えます。彼らの前で「救世主の皮鎧」を見せびらかしていると、怒られてしまうんですよね(^^;)
シンディングは「着る」以前に「なってしまう」人なので、バレた時点で逃げるか始末するしかないですが…。
>シンディングについてはこの方法をベースに、ある程度完成した形でフォロワー化できたらなぁと考えています。
彼の変身の様子や戦闘能力、行動などが気になっています!画像を拝見したところ、つるはしを持っている人型シンディングが黒いモヤの発生と共に徐々に消え、
人狼シンディングになっていく感じでしょうか。プレイヤーの変身でも人狼から人間に戻る時には、切り替わりを「ISMod」の画面効果で不自然にならないように工夫していますよね。同胞団Quest:C01「栄誉の証明」でもファルカスは物陰に隠れて変身解除していました…(汗)
でもやっぱり、変身は隠れるよりも堂々と獣の姿に変貌するのが醍醐味ですよね!逆も然り。(全裸になる設定は最高です!) 変身するシンディングを前に、周囲の人たちと一緒に…その“絶望感”を味わいたいです。
実装される日を楽しみにしております!!
Re:生まれ変わるシンディング
Actor置き換えの長所はそれぞれにカスタマイズの自由があることですが、最大の短所は変身前と変身後のNPCの同期(つじつま)をどう合わせるかでしょうか。生死の状態や、所持アイテム、装備品等々、けっこう大変そうです。シンディングについても「月明かりに照らされて」のクエストがクエスト完了後もずっと動き続けて人狼シンディングを監視しているので、人間形態とウェアウルフ形態との生死を同期させるのは諦めています。
DisableされたNPCは、描画されなくなってAIも停止している状態になっているようですね。スカイリムの世界から一時的にいなくなっている扱いみたいです。基本的にはDisableされた地点に留まっているのですが、Enableされた瞬間に「本来AIが稼動していたらいる地点」にワープすることもあるようです。
NPCは死んだら一定時間後にDisableされるみたいですが、ランダムイベントなどで生成されたNPCは役目を終えたらDisableされてDeleteできれいさっぱり消されるみたいです。ユニークなNPCだと、埋葬用のScript「WIDeadBodyCleanupScript」がActorデータについていれば、自分の町の棺に持ち物が移され、体は例の死体置き場に送られるようになっています。自作NPCにもこの埋葬用のScriptをつけて、棺か骨壷をどこかに置いてあげれば同じように処理されましたよ。自作NPCがれっきとした町の住人になったようで、ちょっと嬉しかったです。いえ、自作のNPCが死ぬのは悲しいんですけど(^^;
>全裸になる設定は最高です!
えっ? シンディングの裸ですよ? 装備を剥ぐと本当に全裸になるmodを入れてたら、見苦しいことこの上ないのでは(なので全裸か着衣かのオプションをつける予定です)。
しかしもしシンディングが、アエラさんとはまたちょっと違うタイプの孤高の美女だったら……。幼い少女を引き裂いた罪に苦しみつつ、隔絶された小さな谷間でわが身に眠る人狼の力を忌みながら隠遁生活を送っているとかだったら。救世主の皮鎧などいらぬ、彼女の重荷を背負いたいってドヴァキンは多いかもしれませんね。幼女引き裂き事件は、犯人が薄汚いおじさんだとあまりに分が悪すぎます……(T_T) シンディングも話を聞く限りでは、人狼の力を抑えようと自分なりに方法を探して努力してたみたいなんですが。