聖職者とアンデッド判定
テキトー(ムー)様が発見され動画上でご紹介されました、『聖職者アンデッドになる手法』(プレイヤーが吸血鬼でない時に聖職者を自身に適用できる状態)について、聖職者がプレイヤー自身に適用される条件を調べてきました。
この調査の元となりました、テキトー(ムー)様の動画は以下になります。具体的なやり方について触れられているのでぜひご覧ください。
【発売11年後の大発見】聖職者アンデッドになる方法【Skyrim】
1. 結論
聖職者[Necromage]や一部の魔法などの効果が、キャラクターを「アンデッド」であるかどうかを判定する条件は、以下のいずれかに該当するときです。
① 種族が「アンデッド系」であるとき
② 「IsUndead」フラグが1になっているとき
『聖職者アンデッドになる手法』とは、②の判定を利用しているものと考えられます。つまりプレイヤーの「IsUndead」フラグを意図的に1にする方法です。重要なのは②の判定ですが、その判定には①が大きく関わる為、まず①の判定について説明します。
2. ①の、種族が「アンデッド系」であるときとは?
人型のキャラクターの場合は、吸血鬼状態であるときに「アンデッド」と判定されます。
一見簡単ですが、この判定はちょっと回りくどい内容となっています。詳しく知りたい方は後で説明します
3. ②の、「IsUndead」のフラグが1になっているときとは?
こちらの判定は通常、死体操作系の死霊術で操られている状態のキャラクターが「アンデッド」と判定されるためのもののようです。
ですが死体操作を想定していないためか、主人公に対してだけは特殊な挙動をしており、
『初めてこのフラグを参照したとき、主人公が「アンデッド」である場合は1に固定、そうでない場合は0に固定し、その後は同じフラグを返し続ける』
となっているようです。
つまり初回のアンデッド判定がずっと固定されるわけですが、②だけではアンデッドと判定されることはありません。そこで一度吸血鬼となり、①の方の判定で「アンデッド」判定を出すことで、②を1に固定していたわけですね。その後は吸血鬼を治療しても、②の方で「アンデッド」判定が出続けるという仕組みです。
なお、NPCの場合はきちんと死霊術で操っているときにだけ1を返すらしく、生存時に生命探知などでこのフラグを参照した場合でも、死霊術で操った後はもちゃんとアンデッド扱いされます。
4. 結果
一度②のフラグでアンデッドと判定されれば、以降はずっとアンデッドとして判定される!
アンデッドなので聖職者も適用され続ける!(ただしアンデッドとしてのデメリットも受け続ける)
以降は内部実装を調べたものです。詳しく知りたい方はどうぞ。
5. 内部実装はどうなっているのか?
まず、Creation Kitで「アンデッドの治癒」(ID:0200e8d4, 内部名:DLC1HealUndead)の「効果」(ID:0200E8D1, 内部名:DLC1RestoreHealthUndeadConcActor)を検索してみましょう。
この魔法はドーンガードの追加魔法ですが、アンデッド以外には何も効果が無いのでわかりやすいです。
Creation Kitでのアンデッドの治癒の効果部分の実装
赤枠のTarget Conditionsが適用の対象ですね。上のHaskeywordの方が①、下のIsUndeadが②の方です。
①の方の意味ですが、Haskeywordは対象が「ActorTypeUndead」を持っていれば1、効果があるということです。ActorTypeUndeadを調べると大量の○○Race、つまり種族が入っているのですが、この中に各種族の吸血鬼版が入っています。これにより、吸血鬼となっていれば「ActorTypeUndead」に該当するため、「アンデッド」と判定されるわけですね。
しかし②の「IsUndead」については、実のところ、Creation Kitやpscスクリプトから確認することのできない内部実装となっています。どのように値がセットされているかは多分(Bethesdaの中の人しか)分かりません。
(コンソールにも一応IsUndeadコマンドが実装されているのですが、なぜか実行しても何も返してきません。本来はターゲットのアンデッド状態を調べて返すコマンド?)
こればかりは挙動を調査する他無く、主人公に対してだけ上記のようなおかしな条件であると判断しました。
そして非常に厄介なことに、実は「聖職者」が何をアンデッドと判定しているかも内部実装となっています。Creation Kitで「聖職者」(ID:000581E4, 内部名:Necromage)を調べても以下のような内容があるだけで、適用対象の条件などは書かれていません。
こちらも挙動を見て判断しましたが、魔法などによるアンデッド判定とずれているようには見えませんでしたので、それらと同様に①と②を利用していると考えています。
聖職者のCreation Kitでの実装 取得条件と効果量しかない
6. 最後に
以上がアンデッドの判定について調べた結果です。基本的にはテキトー(ムー)様の動画での解釈が、実装的にも正しそうだとわかりました。多分に予測などが含まれておりますが、間違いや更なる情報がありましたら、ぜひTwitterの方などで教えていただけると幸いです。
おつかれさまでした。
7. 参考文献
Bethesda様公式のCreation Kit Wiki
Reanimateの項目に、『対象がアンデッドになります( IsUndead 値が真( True )になります)。 』とあります。
https://wiki.bethesda.net/wiki/creationkit/Skyrim/Reanimate/