[UE5]EUW作っていて困る事あるんですが、コンテンツブラウザでなくExplorerのファイルブラウザーとかディレクトリブラウザーパスをユーザーに選ばせたい場合ってどのように実装してますか?

Pythonを使うパターンであれば、tkinterモジュールを使います。

from tkinter import filedialog
"""
# ファイルーダイアログでファイルを選択する
typ = [('テキストファイル','*.txt')] 
dir = 'C:\\pg'
fle = filedialog.askopenfilename(filetypes = typ, initialdir = dir) 
print("WorkData="+fle)
"""
# フォルダーダイアログでフォルダーを選択する
dir = 'D:/Design/WorkData'
fld = filedialog.askdirectory(initialdir = dir) 
print("WorkData="+fld)

参考URL

https://pg-chain.com/python-filedialog-dir
https://pg-chain.com/python-filedialog

[UE5]Pythonからダイアログメッセージを表示 unreal.EditorDialog.show_message

import unreal
class hoge:
    def show_messageDialog(self):
        title="タイトル"
        message="メッセージ"
        message_type=unreal.AppMsgType.OK_CANCEL
        
        unreal.EditorDialog.show_message(title,message,message_type, default_value=unreal.AppReturnType.NO, message_category=unreal.AppMsgCategory.WARNING)

class_Ins=hoge()
hoge.show_messageDialog()

参考URL

https://docs.unrealengine.com/5.3/en-US/PythonAPI/class/EditorDialog.html#unreal.EditorDialog

[UE5.3]第21回UE5ぷちコン テーマ「おす」題名「下痢ゲー2」で使った技術とexeダウンロード

Technology used in the 21st UE5 Petit Con theme “Osu” title “Diarrea Game 2”

windowsBuildをアップしました。ぜひプレイしてみてください。
▼furcraeaTokyo_GeliGa2_Windows2.zip

https://drive.google.com/file/d/18n38Hj44_s3AVEObuP43kYCyn5T4Gb_k/view?usp=sharing

MetaHumanでサードパーソンテンプレートBPを乗っ取り。

【UE5】サードパーソンテンプレートのBPを乗っ取るまで【備忘録】

テーマ「おす」のために腕をIKで構えさせる

【第6.5回】武器を持たせる・IKで構えさせる

Idle時にお腹が痛いアイドル、Run時に上半身:お腹が痛い+下半身:走り

Blend Poses by boolを使用してIdle時とRun時で分岐させる

押すBoxを見つける

[UE4] プレイヤーを検知する敵キャラクターを作る

https://historia.co.jp/archives/25062/

[UE5.3]の中で[無印良品風][公園の時計]をTransform(Modify)Boneで動かしてみたよ!公園の時計風なモデルもDL可

まずは、公園の時計風なモデルをダウンロード。

https://drive.google.com/file/d/1kOSN-d3FBGz1r7yMNBbxN1Q8yAvClOo6/view?usp=sharing

でこう。

1

2

参考URL

https://qiita.com/unknown_ds/items/11baa179e7712b2ceea5

https://docs.unrealengine.com/5.3/ja/animation-blueprint-transform-bone-in-unreal-engine/

LOD Threshold が-1ってどういう意味?

エンジンのソース

エンジンのFAnimNode_SkeletalControlBase クラスを見てもわかりませんでした。

各スケルタル制御ノードの [Details (詳細)] パネルでは、ノードに適用される LOD しきい値 を設定できます。[LOD Threshold] で定義した値が、当該のスケルタル制御ノードで使用される最大の LOD レベルとなります。それより上の LOD レベル (より低品質のモデル) では、当該のスケルタル制御ノードが無視されます。

ボーン トランスフォームを計算するよう、LOD レベルのスケルタル制御ノードを制限することで、アニメーション システムのパフォーマンス コストを削減することができます。

カメラから何m離れたらどういう動作になるみたいなところが。
については画像を参考にしてください。画像はControlRigにLOD Thresholdを設定してオンかオフかを見ています。


LOD Thresholdは整数のみです。
-1:LOD Thresholdを-1と設定しておくのがデフォルトなので=ControlRigノードをずっと計算する。って意味です。


0:LOD Thresholdを0に設定すると(LODの現在値が0以下つまり0のときオン)4mまでオン カメラから4m離れたらオフになります。


1:LOD Thresholdを1に設定すると(LODの現在値が1以下つまり0と1のときオン)10mまでオン カメラから10m離れたらオフになります。


2:LOD Thresholdを2に設定すると(LODの現在値が2以下つまり0と1と2のときオン)135m?計測不能な遠さまでずっとオン
でした。

参考URL
https://dev.epicgames.com/documentation/ja-jp/unreal-engine/animation-blueprint-skeletal-controls-in-unreal-engine?application_version=5.0
https://dev.epicgames.com/documentation/ja-jp/unreal-engine/skeletal-mesh-lods-in-unreal-engine?application_version=5.0

[UE5.3][Retarget]mixamo animation Retarget to UE5.3 Tips Edit Retarget Poseそんなとこにあったのかいって記事です。

Edit Retarget Poseそんなとこにあったのかいって記事です。

Mixiamoからデフォルトのまま(root移動しないIn Placeオプション付けて)アニメーションダウンロード

idleポーズなど何でもいいのでmixamo.fbxとファイル名を書き換えてインポートするとskeltonもその名前になるので見やすいです。
その1つを読み込みSkelton Noneで Importします。

他のファイルを上記のスケルトンでインポートします。

IKRig_mixamoをIKゴールとかソルバとかなしでチェーンだけで作ります

それに合わせて合わせて

IKRig_mannyをIKゴールとかソルバとかなしでチェーンだけで作ります

IKRetargeterでソースにmixamo ターゲットに作ったUE5_Manny

:からEdit Retarget Poseを選びます。(またはTposeを読み込みます)

斜めから見ても合うように+基本はTなので肘とかは棒になるようにします。

でできたああ!あとは書き出して使うだけ。

ここまで作業した 自分用リンク

https://drive.google.com/file/d/1KbIDgPs8oSwBlVK_DV_1adJUNfFhl4iP/view?usp=sharing

参考URL この動画だけどこのままやるとモーションがガタガタになったのでアレンジした↑

[UE5.3.2][Cloth][Python]UE5.3でClothがPythonでどこまでさわれるかの調査

https://docs.unrealengine.com/5.3/en-US/PythonAPI/search.html?q=Cloth

より抜粋して調査。


★★★unreal.SkeletalMesh★★★

  • cloth_lod_bias_mode(クロスLODBiasMode): [読み取り/書き込み]
  • mesh_clothing_assets(配列[ Cloth ingAssetBase]): [読み取り/書き込み]

is_section_using_cloth ( Section_index , check_corresponding_sections = True ) → bool_

提供されたセクションが APEXクロスを使用しているかどうかを確認します。 bCheckCorrespondingSections が true の場合、無効なセクションは、クロスが使用されているかどうかを確認するために対応するセクションを延期します (クロス以外のセクションは無効になり、クロスが有効な場合は別のセクションが追加されます。このフラグを使用すると、元のセクションのチェックが成功します)。

プロパティ Mesh_clothing_assets :なし _

[読み書き]タイプ:(配列ClothingAssetBase ])

★★★unreal.SkeletalMeshComponent★★★


allow_cloth_actors(bool): [読み取り/書き込み] クロス シミュレーションの作成を切り替えます。オフの場合、シミュレーション ステップをスキップするだけでなく、アクターの割り当てを完全に回避する点で、以下のシミュレーション トグルとは異なります。


cloth_blend_weight(浮動小数点): [読み取り/書き込み] シミュレーション結果とキーフレーム位置の間でブレンドするウェイト。ウェイトが 1.0 の場合、クロス シミュレーション結果のみが表示され、0.0 の場合はスキンされた結果のみが表示されます。

cloth_max_distance_scale(浮動小数点): [読み取り/書き込み]

clothing_simulation_factory(type(Class)): [読み取り-書き込み] を担当するオブジェクトのクラス


disable_cloth_simulation(bool): [読み取り/書き込み] クロス シミュレーションを無効にし、シミュレーションなしでオリジナルのアニメーションを再生します。


update_cloth_in_editor(bool): [読み取り/書き込み] true の場合、エディターでクロスを再生します


wait_for_parallel_cloth_task(bool): [読み取り/書き込み] クロス シミュレーションが完了するまで、クロス ティック タスクを停止するかどうか。これは、ゲーム スレッド上で最新のクロス データが必要な場合、たとえばクロスの頂点でパーティクルを生成したい場合に必要です。


▶プロパティ allow_cloth_actors : bool
[読み取り/書き込み] クロスシミュレーションの作成を切り替えます。オフの場合、シミュレーション ステップをスキップするだけでなく、アクターの割り当てを完全に回避する点で、以下のシミュレーション トグルとは異なります。


binding_cloth_to_leader_pose_component ( ) → なし
このコンポーネントに有効な LeaderPoseComponent がある場合、この関数は、個別にシミュレーションするのではなく、フォロワー コンポーネントのクロス アイテムにリーダー コンポーネントのクロス アイテムの変換を適用させます。注: これにより、リーダー コンポーネント上のすべてのクロス アクタがローカル スペースでシミュレートされます。また、クロスを正しくバインドするには、コンポーネントで使用されるメッシュが同一である必要があります。


binding_cloth_to_master_pose_component ( ) → なし
非推奨: 「bind_cloth_to_master_pose_component」は「bind_cloth_to_leader_pose_component」に名前変更されました。


▶プロパティ cloth_blend_weight : float
[読み取り/書き込み] シミュレーション結果とキーフレーム位置をブレンドするウェイト。ウェイトが 1.0 の場合、クロス シミュレーション結果のみが表示され、0.0 の場合はスキンされた結果のみが表示されます。


▶プロパティ cloth_max_distance_scale : float


▶プロパティ disable_cloth_simulation : bool
[読み取り/書き込み] クロスシミュレーションを無効にし、シミュレーションなしでオリジナルのアニメーションを再生します


Force_cloth_next_update_teleport ( ) → なし


UpdateClothState への次の呼び出し中に強制的に「テレポート」する必要があることを示すために使用されます。これにより位置と速度が変換され、シミュレーション状態が維持され、新しいポーズに変換されるだけです。


force_cloth_next_update_teleport_and_reset ( ) → なし


UpdateClothState への次回の呼び出し中に「テレポートとリセット」を強制する必要があることを示すために使用されます。これは、悪い状態からリセットしたり、古い状態が重要でなくなった場合にテレポートによってリセットしたりするために使用できます。


get_allow_cloth_actors ( ) → bool
許可されたクロス アクターを取得する

get_cloth_max_distance_scale ( ) → float
衣服メッシュの頂点の最大距離スケールを取得/設定します


get_clothing_simulation_interactor ( ) → ClothingSimulationInteractor
現在のシミュレーションがランタイム インタラクションをサポートしている場合は、衣服シミュレーションの現在のインタラクターを取得します。


is_clothing_simulation_suspended ( ) → bool
服装シミュレーションが現在一時停止されているかどうかを取得します。


unbind_cloth_from_master_pose_component ( restore_simulation_space : bool = True ) → なし
非推奨: 「unbind_cloth_from_master_pose_component」は「unbind_cloth_from_leader_pose_component」に名前変更されました。

▶プロパティ wait_for_Parallel_cloth_task : bool

[読み取り/書き込み] クロス シミュレーションが完了するまで、クロス ティック タスクを停止するかどうか。これは、ゲーム スレッド上で最新のクロス データが必要な場合、たとえばクロスの頂点でパーティクルを生成したい場合に必要です。

★★★unreal.ChaosClothComponent★★★ 

  
▶プロパティ cloth_asset : ChaosClothAsset


get_cloth_asset ( ) → ChaosClothAsset
このコンポーネントで使用されるクロス アセットを取得します。


set_cloth_asset ( clothes_asset ) → なし

このコンポーネントで使用されるクロス アセットを設定します。

★★★unreal.ClothingSimulationInteractor★★★


clothes_config_updated ( ) → なし

シミュレーションを再起動せずにクロス構成を更新するために呼び出されます。


★★★unreal.ClothingAssetCommon★★★


ソルバー固有の実装では、このクラスをオーバーライドして、c Cloth SimConfig や c CustomData などの子クラスの独自のデフォルト インスタンスを構築したり、c AddNewLod() ファクトリをオーバーライドして c UClothLODDataBase の独自の実装を構築したりすることができます。


▶プロパティ cloth_configs :なし
[読み取り専用] シミュレーション固有の布パラメータ。 GetClothConfig() を使用して、目的の布地シミュレーション システムの正しいパラメータ/構成タイプを取得します。

タイプ:
(マップ[名前,クロスConfigBase ])
エディターのプロパティ: (get_editor_property/set_editor_property を参照)

cloth_configs(Map[Name, Cloth ConfigBase]): [読み取り専用] シミュレーション固有のクロス パラメータ。 GetClothConfig() を使用して、目的の布地シミュレーション システムの正しいパラメータ/構成タイプを取得します。

imported_file_path(str): [読み取り専用] このアセットがファイルからインポートされた場合、これが元のパスになります

physics_asset(PhysicsAsset): [読み取り/書き込み] シミュレーションを構築するときに衝突を抽出する物理アセット。

★★★例えばSampleコードを書いてみる★★★

unreal.SkeletalMesh.disable_cloth_simulation=True#クロス シミュレーション計算を有効に
unreal.SkeletalMesh.allow_cloth_actors=True#クロスシミュレーション作成Createへ切替え
mesh_clothing_list = unreal.SkeletalMesh.mesh_clothing_assets

・「Add Clothing」ボタンでも基本的に別のメッシュのClothingDataをApplayすると、Apply時に、Failed Bind Cloth Assetでエラーがでます。
E:/SandBox/jennie9UE532/jennie9UE532/Content/Developers/notsuka/EUB_ClothTool_AssetAction.uasset
・Mesh Clothing Assetsの配列のコピーというより参照変えはできましたが、そのあとApplyすると

Failed to bind clothing asset
Plane_Clothing_O_myCloth as the provided mesh is not the owner of this asset.
衣類アセットのバインドに失敗しました
Plane_Clothing_O_myCloth は、提供されたメッシュとしてこのアセットの所有者ではありません。


となりました。

・現存の「Add Clothing」ボタンと変わらないかそれ以下な結果となりました。
・また配列を参照変えでなくコピーにできないかも研究しましたが今回の「Mesh Clothing Assets」の型が「Add To Variable(変数化)」できない部分が問題でコピーできませんでした。