UKawaiiPhysicsEditorLibrary
この機能はまだ正式リリースされていません。KawaiiPhysics v1.22でリリース予定です。開発中のため仕様が変更される場合があります。
概要
衣装ごとにノードを配置し、対象ボーンやプリセットを設定する作業を、Blueprint/Pythonから繰り返し実行できます。UKawaiiPhysicsEditorLibraryはAnimBlueprintのグラフノードを収集・配置・編集するライブラリです。
実行中のノードはUKawaiiPhysicsLibrary、画面からの設定適用・比較はUKawaiiPhysicsPresetDataAssetとKawaii Node Auditを参照してください。
収集とノードハンドル
CollectKawaiiPhysicsGraphNodes(AnimBlueprint, FilterTags, bFilterExactMatch = false)はFKawaiiPhysicsGraphNodeHandleの配列を返します。空タグは全件です。使用前にIsGraphNodeHandleValidを確認してください。Shared PublisherはCollectKawaiiPhysicsSharedPublisherGraphNodesと別のハンドル型を使います。
FindAnimBlueprintAssets(ContentPaths)はアセットパスを返し、空パスは/Gameです。FindAnimBlueprintAssetsReferencingTagsはタグで候補を事前に絞ります。返ったアセットパスはロード・ノード確認につなげます。C++専用のFindGraphNodeByGuidやFAssetDataを返す関数を、Blueprint公開ノードと混同しないでください。
ノード配置と接続
FKawaiiPhysicsNodePlacementRequestへRootBone、除外ボーン、追加RootBone、タグ、必要ならプリセットを指定します。プリセット未指定はノード既定値、タグ未指定はプリセット側タグを使用します。ValidatePlacementRequestsでエラー・警告を確認します。Warning:で始まる項目は警告で、空配列なら検出項目なしです。AddKawaiiPhysicsNodesを呼びます。MatchKeyは既定None、既存ノード照合はTag/RootBone/TagAndRootBoneから選べます。- 入力ポーズ・配置を確認し、
CompileAnimBlueprintWithMessagesでコンパイルします。戻り値0はコンパイルエラーなし、正数はエラー数、nullのABPは-1です。OutMessagesにはError/Warning/Note付きの文字列を返します。
配置リクエストのbAutoPositionは既定true、**bAutoConnectは既定false**です。自動接続を有効にするとResultの直前へ直列接続します。両方有効なリクエストがあれば、Result上流のチェーンを同じ行へ整列します。すべての既存グラフ構造に期待どおり接続できることを保証するものではありません。
AddKawaiiPhysicsSharedPublisherNodeはbReuseExisting = true、bAutoConnect = trueが既定で、同Tagの既存Publisherを再利用できます。通常ノード配置の既定値とは異なります。
入力ポーズ・レイアウト・関数バインド
| API | 操作と戻り値の要点 |
|---|---|
SetAnimGraphInputAnimation | Resultから上流をたどり、既存SequencePlayerの差替え、または未接続入力へ追加・接続。必要なら空間変換ノードを挿入 |
SetAnimGraphInputPose | InPose入力を追加。SequencePlayerを置換し、接続済みInput Poseは変更しない。新規数0/1、失敗-1とOutError |
IsAnimGraphInputPoseConnected | 上記Input Poseの接続を変更せず確認 |
LayoutKawaiiPhysicsAnimGraph | Result上流の先頭の接続済みポーズチェーンを整列。チェーン外ノードは動かさない |
BindGraphNodeAnimNodeFunction | AnimNode Functionを作成/バインド。Noneはバインド解除だけで関数グラフを残す。新規数0/1、失敗-1 |
これらは自動コンパイルしません。GetAnimGraphCommentsはコメントを読み、FindBonesByPatternは参照ボーン名を正規表現で検索します。
属性・外力・プリセット
SetGraphNodePropertyFromString/GetGraphNodePropertyAsStringはUEのプロパティ文字列形式を扱います。表示名ではなく内部名を渡し、成否を確認します。BlueprintのWildcardペアはEKawaiiPhysicsEditorAccessResultを使います。SetGraphNodeRootBoneName/SetGraphNodeTagは専用Setterです。Shared Publisherやプリセットにもそれぞれ文字列Setter/Getterがあります。GetGraphNodeExternalForcesAsJsonは_structTypeと編集可能フィールドを持つ配列、空スロットをnullで返します。SetGraphNodeExternalForcesFromJsonは配列全体を置換します。省略フィールドは既定値、失敗は-1とOutErrorでノードを変更しません。ApplyPresetToGraphNode、GetGraphNodePresetDiffProperties/Values、ExportGraphNodeToPresetで設定の適用・比較・既存プリセットへの書出しができます。ExportGraphNodeToPresetは新規アセット作成関数ではありません。SetPresetTargetTagsは未登録タグを警告してスキップします。非空入力がすべて無効なら変更せずfalseです。対象タグが空のプロジェクト適用は対象なしです。
ApplyPresetToProject(Preset, bDryRun, bCheckOutFiles, OutReport)はプロジェクト内の一致ノードへ適用します。bDryRun = trueは変更せず監査報告を収集し、適用数の戻り値は0です。一括APIは自動保存を行いません。対象条件はUKawaiiPhysicsPresetDataAssetとKawaii Node Auditを参照してください。
関連するUE公式ドキュメント
- Pythonを使用したエディタのスクリプティング — Pythonのエディタでの実行方法と、ゲーム実行時には使えない範囲を確認できます。 (UE 5.8)