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

リミットパラメータ

ボーンの移動・回転を制限するパラメータです(Bone Constraint / Sync Bone / 角度制限)。

ソースを見る

このページについて

ここはリミット系パラメータの網羅的なリファレンスです。使い方は Sync Bone(同期による貫通対策)、ボーン細分化(BoneConstraint Subdivision)を参照してください。

Bone Constraint

ボーン間の距離を維持するための制約設定です。スカートのように、ボーン間の距離を一定に保ちたい場合に使用します。

Bone Constraintの仕組み

Bone Constraintによるボーン間距離の維持

BoneConstraintGlobalComplianceType

剛性タイプ - Bone Constraintで用いる剛性タイプを指定します。

プロパティ
EXPBDComplianceType
デフォルトLeather
カテゴリLimits|Bone Constraint

XPBD Stiffnessについて

EXPBDComplianceType

説明
Concreteコンクリート(最も硬い)
Wood木材
Leather
Tendon
Rubberゴム
Muscle筋肉
Fat脂肪(最も柔らかい)

剛性タイプの比較

各剛性タイプの硬さの違いと使用イメージ

BoneConstraintIterationCountBeforeCollision

コリジョン前処理回数 - Bone Constraintの処理回数(コリジョン処理前)。

プロパティ
int32
デフォルト1
カテゴリLimits|Bone Constraint

BoneConstraintIterationCountAfterCollision

コリジョン後処理回数 - Bone Constraintの処理回数(コリジョン処理後)。

プロパティ
int32
デフォルト1
カテゴリLimits|Bone Constraint

反復処理の効果

反復回数による収束の違い。回数が多いほどボーン間距離が均等になる

bAutoAddChildDummyBoneConstraint

ダミーボーン自動追加 - 末端ボーンをBoneConstraint処理の対象にした場合、自動的にダミーボーンも処理対象にするフラグ。

プロパティ
bool
デフォルトtrue
カテゴリLimits|Bone Constraint

BoneConstraints

ボーン制約リスト - BoneConstraint処理の対象となるボーンのペアを設定します。

UPROPERTY(EditAnywhere, Category = "Limits|Bone Constraint")
TArray<FModifyBoneConstraint> BoneConstraints;

FModifyBoneConstraint

プロパティ説明
Bone1FBoneReference制約の1つ目のボーン
Bone2FBoneReference制約の2つ目のボーン
bOverrideCompliancebool剛性タイプをオーバーライドするか
ComplianceTypeEXPBDComplianceTypeオーバーライド時の剛性タイプ
bExcludeFromSubdivisionboolこの制約を BoneConstraint Subdivision(bridge dummy)の対象から除外するか

BoneConstraintsDataAsset

ボーン制約Data Asset - BoneConstraint処理の対象となるボーンのペアをData Assetから設定します。別のAnimNodeやAnimation Blueprintで設定を流用したい場合に推奨されます。

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Limits|Bone Constraint")
TObjectPtr<UKawaiiPhysicsBoneConstraintsDataAsset> BoneConstraintsDataAsset;

Sync Bone

同期元のボーンの移動・回転を物理制御下のボーンに適用します。スカートが足などを貫通するのを防ぐのに役立ちます。v1.21.0で適用方向・距離減衰・スケールカーブが追加されました。

SyncBones

同期ボーンリスト - 同期元のボーン(Bone)と同期先(TargetRoots)を設定します。

UPROPERTY(EditAnywhere, Category = "Force|Sync Bone")
TArray<FKawaiiPhysicsSyncBone> SyncBones;

FKawaiiPhysicsSyncBone の主なプロパティ

プロパティ説明
BoneFBoneReference同期元のボーン
TargetRootsTArray<FKawaiiPhysicsSyncTargetRoot>同期先のボーン/チェーン(bIncludeChildBones で子も対象化)
GlobalScaleFVector全体の適用度(0.0〜1.0、既定 (1,1,1))
ScaleCurveByDeltaDistanceFRuntimeFloatCurve同期元の移動距離に応じた補正スケール
ApplyDirectionX / Y / ZESyncBoneDirection各軸の適用方向(Both/Positive/Negative/None)
bEnableDistanceAttenuationbool距離に応じた適用量の減衰
AttenuationInnerRadius / OuterRadiusfloat減衰の内半径 / 外半径(cm)
MaxAttenuationRatefloat最大減衰量(0〜1)

詳しくは Sync Bone を参照してください。

角度制限

LimitAngle

物理挙動による回転制限です。適切に設定することで荒ぶりを抑制できます。

プロパティ
float
デフォルト0.0(制限なし)
範囲0.0 以上
カテゴリKawaiiPhysics
ヒント

LimitAngleは各ボーンの親ボーンからの角度を制限します。値を大きくすると自由度が下がり、小さくすると荒ぶりやすくなります。

Data Assetからの読み込み

制限パラメータは以下のData Assetから読み込むことができます:

UKawaiiPhysicsLimitsDataAsset

コリジョン設定を管理するData Assetです。

UCLASS(Blueprintable)
class KAWAIIPHYSICS_API UKawaiiPhysicsLimitsDataAsset : public UDataAsset

プロパティ

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

エディタでは、Skeletonを設定することでボーンプレビューが可能です。

詳しくは Data Assets を参照してください。