死霊術や幽霊やゾンビがいるこの世界では、死んでいる状態が動かずに横たわっているだけとは限りません。Condition Functionで、あるNPCが死んでいる状態を見分けるのに「GetDead==1」だけでは足りないと、いまさらながら気がつきました。
コンソールからCondition Functionをいくつか使えたため調べてみると、死霊術で操られている状態の死体って「GetDead==0」でした……。灰にならない死霊術で仲のいい死体を蘇らせると効果が切れるたび、配達人が遺書を届けに来る理由はこれだったのか。
死霊術(
Reanimate)で蘇っている死体はUndeadという状態になるそうです。これはドラウグルや吸血鬼など、「ActorTypeUndead」というKeywordを持つ種族としてのアンデッドとはまたちょっと違うようで、死体や機械には効かない回復魔法のMagicEffectのConditionを見ると、「HasKeyword ActorTypeUndead ==0」と並んで「IsUndead==0」も条件に加えられています。
いままで「HasKeyword ActorTypeUndead」と「IsUndead」の違いがいまいち分からず、どうして似たような条件が並んでいるのかと疑問に思っていました。こういう意味があったんですね。
おとなしく死んでいる状態であれば「GetDead==1」ですが、死霊術で操られている状態を含めて死んでいるなら「GetDead==1」||「IsUndead==1」、操られてておらず元気に生きているなら「GetDead==0」&&「IsUndead==0」と判断しなければならないです。ゾンビのいる世界は、一手間かかります。やれやれ。
また死霊術で蘇った死体が「GetDead==0」なせいか、生きていればその時間実行されているであろうAI PackageがRunの状態になります。実際には死霊術でコントロールされているためPackageの行動はとらないのですが、「GetIsCurrentPackage」というConditionでAI Packageの実行状態を取ると「True」を返します。