Fallout箱庭DIY

「箱庭DIY」Fallout分室

【Fallout4】AAFへのアニメーション追加実験(家具用&複数キャラ用)

スポンサーリンク


セールスマン生存ルート
Advanced Animation Frameworkへのアニメーション追加ネタの続き。今回は家具を対象にしたり、複数キャラを指定したアニメーション追加を試します。実験的な内容なので、あくまで参考程度ということで。

基本の動作やxml記述は、過去記事参照してください。
f4mod.hatenablog.com
f4mod.hatenablog.com
f4mod.hatenablog.com

AAFに家具用アニメーションを追加

家具を使ったアニメーションを追加します。今回はPose Itを使用。xmlファイルが同梱されたAAF対応版もあり。

着席ポーズの『RequestedPose4』。地面で再生するポーズな為、デフォルトだと空気椅子。
空気椅子
これを椅子用アニメーションに変更します。SS撮影用途には空気椅子の方が便利かもですが・・・実験ということで!

対象家具をグループ化

アニメーション適用対象の家具をグループ化します。今回は椅子を集めたグループを作成。グループに設定された椅子に対してのみ、『RequestedPose4』が使えます。
PoseIt_furnitureData.xmlを作成。

<meta title="PoseIt_furnitureData.xml" version="1.0" dataSet="furniture"/>
<defaults source="Fallout4.esm"/>

<!-- 家具のグループ設定 -->
<group id="Vanilla Chair">
	<!-- グループに入れる家具のForm IDを指定 -->
	<furniture form="000DF45C" id="NPCChairMemoryLoungeSit01"/>
	<furniture form="001A721C" id="NpcChairLounge01BWeathered01OttomanSit01"/>
	<furniture form="00149E92" id="NpcChairAirplaneSit01"/>
	<furniture form="001A6E52" id="NpcChairHighTechOfficeChairDirtySit01"/>
</group>

全ての椅子に対応させるのは結構大変。実験なのでとりあえず4個だけで。それと、xmlファイル毎に1つのプラグインしか指定できません(多分)。DLCやMODの家具をグループ化したい場合は、プラグインごとに別のxmlファイルが必要です。

家具とアニメーションを紐付け

Posit_positionData.xmlを変更します。元々xmlファイルがあるので、部分的な抜粋のみで。
positionnode内に、locationで家具のグループのidを指定。

<position id="RequestedPose4" location="Vanilla Chair"/>


ちなみにこれはanimationが省略されていて、実際は、

<position id="RequestedPose4" animation="RequestedPose4" location="Vanilla Chair"/>

ということですね。positionanimationのidが同名なら、animationを省略しても平気みたいです(省略してるMODの方が多いかも)。

本来id重複はマズい筈なんですが、これはOKのようです。Wizardからしか参照しないのかも?

アニメーションの座標補正

必要であれば、animationnode(animationData.xml)で座標補正できます。offsetで指定。少し椅子の手前に引っ張りました。
※僕が変なスケルトン使ってるせいだと思います、バニラのスケルトンなら多分補正要らないです。

<!-- offset=”x,y,z,angle”で、キャラの座標補正 -->
<animation id="RequestedPose4" offset="0,5,0,0">
	<actor>
		<!-- RequestedPose4のForm ID -->
		<idle form="1F01"/>
	</actor>
</animation>

angleは、z軸回転の角度補正(yaw、水平状態で回転)。actorが複数いる場合は、:で区切って追記可能。

椅子に座ったポーズの動作確認

実際に動かしてみます。グループに設定した椅子が見つかれば、Wizardに表示されます。
場所の選択

椅子用を選択すると、変更した『RequestedPose4』が選択可能に。
アニメーションの選択

うまく椅子に座ってくれました!
椅子を使ったポーズ
動くには動くんですが、時々動作に時間掛かります。Furniture animationでない物を、強引に設定したせいかも?



AAFで複数キャラを指定したアニメーション

今度は複数キャラ用を試します。Pose Itに『お姫様抱っこ』のポーズが入ってます。抱っこする側される側、それぞれの単体ポーズ。
PoseItのお姫様抱っこ
これを合体させて、2人用のポーズに変更します。

Pose It用のanimationを変更

PoseIt_animationData.xmlの最後に、お姫様抱っこの2人用ポーズを追加します。RequestedPose33とRequestedPose35を合体。offsetのルールは、家具の時と同じ。

<animation id="RequestedPose33and35" offset="1,15,7,90">
	<!-- 1キャラ目、 姫抱っこされる側を女性に限定 -->
	<actor gender="F">
		<idle form="1F1F"/>
	</actor>

	<!-- 2キャラ目、姫抱っこする側を男性に限定 -->
	<actor gender="M">
		<idle form="1F21"/>
	</actor>
</animation>

Pose It用のpositionを変更

PoseIt_positionData.xmlの最後に、合体させたポーズを追加させれば完了。

<position id="RequestedPose33and35"/>

お姫様抱っこの動作確認

2キャラ用なので、ガービーとマママーフィーを選択して『RequestedPose33and35』を実行。actorの性別を制限してるので、選択順序に関係無く男が抱っこする側になります。
ママガービー
この設定だと頭の向きが逆だとは思いますが・・・動作自体は問題無いようです。見つめ合う2人になるのが本来でしょう。y軸回転して(マママーフィーの状態を起こす感じ)、腕に収める想定だと思います。

けれども現バージョン(10b)のAAFでは、y軸回転の補正ができません(z軸回転のみだと思います)。なので、逆向きにして強引にガービーの両腕位置に合わせましたw おかげでマママーフィーの左腕が、ちょっと微妙な感じですが。
アニメーションファイル側で座標調整されてたり、z軸回転だけで補正できる物であれば、問題なく使えると思います。

SSにプレイヤキャラを使わなかったのは、別に俺の嫁云々じゃなくて、変なスケルトンを使ってる影響で他のNPCと相対的な位置が合わない為。


とりあえず、AAFで遊んでみたシリーズはこれで一旦おしまいです。ゲームに組込んだMODは少ないですが、SS撮影のポーズMOD管理用としても便利だと思います。また何か遊んだら記事にするかもです。

 

Copyright © 2015 Fallout Hakoniwa DIY All rights reserved .

S.kutsumiya@gmail.com