メインコンテンツまでスキップ

FAnimNode_KawaiiPhysics

KawaiiPhysicsのメインAnimGraphノードのAPIリファレンスです。

ソースを見る

クラス定義

USTRUCT(BlueprintType)
struct KAWAIIPHYSICS_API FAnimNode_KawaiiPhysics : public FAnimNode_SkeletalControlBase

ボーン設定

プロパティデフォルト説明
RootBoneFBoneReference-制御対象のルートボーン
ExcludeBonesTArray<FBoneReference>-制御から除外するボーン
AdditionalRootBonesTArray<FKawaiiPhysicsRootBoneSetting>-追加のルートボーン設定
DummyBoneLengthfloat0.0ダミーボーンの長さ
BoneForwardAxisEBoneForwardAxisX_Positiveボーンの前方向軸

Physics Settings

プロパティデフォルト説明
PhysicsSettingsFKawaiiPhysicsSettings-物理制御の基本設定
SimulationSpaceEKawaiiPhysicsSimulationSpaceComponentSpaceシミュレーション空間
SimulationBaseBoneFBoneReference-BaseBone空間時の基準ボーン
TargetFramerateint3260ターゲットフレームレート
OverrideTargetFramerateboolfalseフレームレートのオーバーライド
TeleportDistanceThresholdfloat300.0テレポート距離しきい値
TeleportRotationThresholdfloat10.0テレポート回転しきい値
PlanarConstraintEPlanarConstraintNone平面制約
SkelCompMoveScaleFVector(1, 1, 1)コンポーネント移動スケール

ウォームアップ設定

プロパティデフォルト説明
WarmUpFramesint320ウォームアップフレーム数
bNeedWarmUpboolfalseウォームアップ有効化
bUseWarmUpWhenResetDynamicsbooltrueリセット時ウォームアップ

カーブ

プロパティ説明
DampingCurveDataFRuntimeFloatCurve減衰カーブ
StiffnessCurveDataFRuntimeFloatCurve剛性カーブ
WorldDampingLocationCurveDataFRuntimeFloatCurveワールド位置減衰カーブ
WorldDampingRotationCurveDataFRuntimeFloatCurveワールド回転減衰カーブ
RadiusCurveDataFRuntimeFloatCurve半径カーブ
LimitAngleCurveDataFRuntimeFloatCurve角度制限カーブ

コリジョン(Limits)

プロパティ説明
SphericalLimitsTArray<FSphericalLimit>球体コリジョン
CapsuleLimitsTArray<FCapsuleLimit>カプセルコリジョン
BoxLimitsTArray<FBoxLimit>ボックスコリジョン
PlanarLimitsTArray<FPlanarLimit>平面コリジョン
LimitsDataAssetUKawaiiPhysicsLimitsDataAsset*コリジョンData Asset
PhysicsAssetForLimitsUPhysicsAsset*コリジョン用Physics Asset

Bone Constraint

プロパティデフォルト説明
BoneConstraintGlobalComplianceTypeEXPBDComplianceTypeLeather剛性タイプ
BoneConstraintIterationCountBeforeCollisionint321コリジョン前処理回数
BoneConstraintIterationCountAfterCollisionint321コリジョン後処理回数
bAutoAddChildDummyBoneConstraintbooltrueダミーボーン自動追加
BoneConstraintsTArray<FModifyBoneConstraint>-ボーン制約リスト
BoneConstraintsDataAssetUKawaiiPhysicsBoneConstraintsDataAsset*-制約Data Asset

Sync Bone

プロパティ説明
SyncBonesTArray<FKawaiiPhysicsSyncBone>同期ボーンリスト

外部力

プロパティデフォルト説明
GravityFVectorZeroVector重力ベクトル
bUseLegacyGravityboolfalseレガシー重力方式
bUseDefaultGravityZProjectSettingboolfalseプロジェクト設定の重力使用
bUseWorldSpaceGravitybooltrueワールド空間重力
bEnableWindboolfalse風の有効化
WindScalefloat1.0風のスケール
WindDirectionNoiseAnglefloat0.0風方向ノイズ(度)
SimpleExternalForceFVectorZeroVector単純な外力
bUseWorldSpaceSimpleExternalForcebooltrueワールド空間外力
ExternalForcesTArray<FInstancedStruct>-外力プリセット
CustomExternalForcesTArray<UKawaiiPhysics_CustomExternalForce*>-カスタム外力

World Collision

プロパティデフォルト説明
bAllowWorldCollisionboolfalseワールドコリジョン有効化
bOverrideCollisionParamsboolfalseコリジョンパラメータオーバーライド
CollisionChannelSettingsFBodyInstance-コリジョン設定
bIgnoreSelfComponentbooltrue自己コリジョン無視
IgnoreBonesTArray<FBoneReference>-無視ボーンリスト
IgnoreBoneNamePrefixTArray<FName>-無視ボーン名プリフィックス

タグ

プロパティ説明
KawaiiPhysicsTagFGameplayTagフィルタリング用タグ

ランタイムデータ

プロパティ説明
ModifyBonesTArray<FKawaiiPhysicsModifyBone>物理制御対象のボーン
DeltaTimefloatフレームのデルタタイム

主要メソッド

Initialize_AnyThread

virtual void Initialize_AnyThread(const FAnimationInitializeContext& Context) override;

ノードの初期化処理。ボーンチェーンの構築やパラメータの初期化を行います。

CacheBones_AnyThread

virtual void CacheBones_AnyThread(const FAnimationCacheBonesContext& Context) override;

ボーン参照のキャッシュ処理。

UpdateInternal

virtual void UpdateInternal(const FAnimationUpdateContext& Context) override;

フレームごとの更新処理。

EvaluateSkeletalControl_AnyThread

virtual void EvaluateSkeletalControl_AnyThread(
FComponentSpacePoseContext& Output,
TArray<FBoneTransform>& OutBoneTransforms
) override;

物理シミュレーションの評価とボーン変換の出力。

ResetDynamics

virtual void ResetDynamics(ETeleportType InTeleportType) override;

物理状態のリセット。テレポート時などに使用します。

PreUpdate

virtual void PreUpdate(const UAnimInstance* InAnimInstance) override;

更新前の処理。シーン情報の取得などを行います。

座標変換ヘルパー

GetBoneTransformInSimSpace

FTransform GetBoneTransformInSimSpace(
FComponentSpacePoseContext& Output,
const FCompactPoseBoneIndex& BoneIndex
) const;

ボーンのTransformをシミュレーション空間で取得します。

ConvertSimulationSpaceTransform

FTransform ConvertSimulationSpaceTransform(
FComponentSpacePoseContext& Output,
EKawaiiPhysicsSimulationSpace From,
EKawaiiPhysicsSimulationSpace To,
const FTransform& InTransform
) const;

シミュレーション空間間でTransformを変換します。

使用例

Animation Blueprintでの基本的な使用方法:

  1. AnimGraphにKawaiiPhysicsノードを追加
  2. RootBoneを設定
  3. PhysicsSettingsでDamping/Stiffnessを調整
  4. 必要に応じてコリジョンを追加
// C++からのアクセス例
FAnimNode_KawaiiPhysics* Node = ...;
Node->PhysicsSettings.Damping = 0.2f;
Node->PhysicsSettings.Stiffness = 0.1f;
Node->Gravity = FVector(0, 0, -980.0f);

関連