1.3K Views
March 22, 26
スライド概要
映像会社のプログラマー
KawaiiPhysics 設定入門
KawaiiPhysicsとは Kawaii Physicsは、Unreal Engine向けのシンプルな疑似物理プラグインです。 髪、スカート、胸などの揺れものを「かんたんに」「かわいく」揺らすことができます。 (公式引用) Boneに対して簡易的な PhysicsSimulationを行いアニメーションさせる Boneが仕込まれてない部分は揺らせないのでモデリングの段階で意識する必要がある 製作者のおかずさん https://x.com/pafuhana1213
ABPのAnimGraphで右クリックしてノードを検索
Bones
RootBoneを設定する Rootに設定した骨以下の階層の骨が揺れる root
ExcludeBones 揺れる対象から除外する 同じ階層だけど揺らしたくない時やパラメータを分けたい時に使用する 未設定 ExcludeBones root
AdditionalRootBones RootBoneを複数設定できる パラメータが同じものは纏められるので便利 スカートや髪の毛の束はこれで纏めておくと扱いやすい 未設定 AdditionalRootBones
DummyBoneLength 仮想の骨を追加する 暴れる時に追加すると安定したり、骨の数が足りない時に追加して無理やり揺らしたりできる
PhysicsSettings
PhysicsSettingsで揺れのパラメータを調整する
Damping(減衰 ) 値が大きいほど揺れにくい、値が 0に近いほど揺れやすい
Stiffness(剛性 ) 値が大きいほど元の形状を維持、 0に近いほど柔らかくなる
WorldDampingLocation,Rotation World座標での移動、回転の反映度
CollisionRadius コリジョンの大きさを調整する 大きいほど突き抜けにくいが不自然な当たり方をするので調整が必要 当たり判定を使用しない場合は調整不要
LimitAngle simulation時に角度制限をつける 跳ね上がりを抑えたり、暴れるようなら制限をつけて抑えるのが有効
PlanarConstraint 指定した軸に応じた平面上に各 Boneを固定 X Y Z
PhysicsSettingsにはカーブを設定できる
カーブの設定方法 Rootが0,末端が1 末端にかけて揺れやすくしたい時は右肩下がりのカーブを作成する Damping 0- 0.1×1.0 0.5- 0.1×0.75 1- 0.1×0.5
カーブアセット化をして汎用的に扱えるように出来るが 参照しているノード全てに影響が出てしまうので細かく調整したい場合は注意
Limits
Collision形状は4種類 基本的には体の形状に合わせてコリジョンを 配置していくが、突き抜け対策や見栄えのた めに嘘つくことも大事 Sphere Box Capsule Plane
DrivingBone Collisionがどの骨に追従するか指定する
SphereにはLimitTypeがある Innerを選ぶとBoneがSphere内に留まるように動 く。 暴れを抑えたい時にBoneを包むように配置した り、引っ張りたい時に使用する 基本的にはOuterを使用するのでInnerを使用する ことはほとんどない (DefaultはOuter)
Plane 矢印の向きが表、Boneをこれ以上移動させたくない時に使用する
CollisionはAsset化して使いまわせる UE標準のPhysicsAssetやLimitsDataAssetにしておけばNode毎にCollisionを設定する手間 がなくなるので共通形状はAsset化しておくのが大事
CollisionはAsset化して使いまわせる 共通のCollisionを使用しつつ、専用で必要な場合はNode毎に追加するのが綺麗 Node毎にAssetの使用有無は選べるのでまずはCollisionAssetを作成しておく
BoneConstraint
BoneConstraint 指定した骨間の距離を維持しようとする 一緒に動くようになるので突き抜け対策になる (中央画像の赤い線)
使用するために繋がりを定義したDataAssetを作成する どこの骨とどこの骨が繋がってるか一つ一つ記載していき、完了したらApplyRegexで反映す る。 Skirtの場合は一周するように繋げる
アセット作成時の文法 skirt_01_01_l , skirt_01_02_l , skirt_01_03_l skirt_02_01_l , skirt_02_02_l , skirt_02_03_l 同じ階層のBoneをまとめて繋げる時は skirt_01_0[1-9]_l skirt_02_0[1-9]_l のように[ ]で括ることでまとめて記載できる
ExternalForce
WindDirectionalSourceを配置
Presetから選んで適用することも出来る
SyncBones
基準の骨の動きを元に対象の骨を一緒に動かす機能 ver1.20.0から追加された Skirtの貫通対策になる
基準となる骨(主に膝の骨を指定する) 制御対象の骨 Bonesの設定でRootBoneに追加してないと制御できない 制御対象の骨がどれだけ影響を受けるか 末端が0,先端が1 膝に近いほど影響を受けるようにするには右肩上がりのカーブ を作成する
横方向と縦方向の設定を分けたい時 全部同じ設定を適用すると、skirtの横の骨が前に引っ張られて 綺麗に見えない時があります。 力の加わる方向に応じて設定を分けると綺麗になります。 SyncBonesを追加 Skirtの横側の骨を指定 X軸以外の影響をNoneに設定