【UE×Python】コンテンツ内の選択されているアセットを全て取得する方法について徹底解説

Python

「unreal」(Unreal Engine Python API)は、Unreal EngineのPythonライブラリです。このAPIを使用することで、Unreal Engineをより簡単にカスタマイズすることができます。Pythonは、様々なプログラミング言語で使用される汎用的なスクリプト言語であり、「unreal」はPythonを使用して構築されています。本記事では、「unreal」を用いたコンテンツ内の選択されているアセットを全て取得する方法を紹介します。

# get_selected_assets関数によるコンテンツ内の選択されているアセットを全て取得
unreal.EditorUtilityLibrary.get_selected_assets()
# get_selected_asset_data関数によるコンテンツ内の選択されているアセットを全て取得
unreal.EditorUtilityLibrary.get_selected_asset_data()

下記の様な内容で悩んでいる/困っている場合に使える方法を参考までにご共有させて頂きます。

・Unreal Engine上で、どの様にPythonを使うの?
・Unreal Engine上のPythonで、どの様にコンテンツ内の選択されているアセットを全て取得するの?

また、「unreal」を使用する上で基礎的な情報は下記の記事で紹介しております。
他の「unreal」のクラスや関数について気になる方はこちらの記事をご覧ください。

get_selected_assets関数によるコンテンツ内の選択されているアセットを全て取得

unreal.EditorUtilityLibrary.get_selected_assets関数の基本構文

unreal.EditorUtilityLibrary.get_selected_assets() 
→ Array[Object]

unreal.EditorUtilityLibrary.get_selected_assets関数の使い方

import unreal

slectedAssets = unreal.EditorUtilityLibrary.get_selected_assets()
for assetObject in slectedAssets: print(assetObject)
LogPython: <Object '/Game/StarterContent/Architecture/Floor_400x400.Floor_400x400' (0x000009ACEDE7E000) Class 'StaticMesh'>
LogPython: <Object '/Game/StarterContent/Props/MaterialSphere.MaterialSphere' (0x000009ACEDE70700) Class 'StaticMesh'>
LogPython: <Object '/Game/StarterContent/Architecture/Pillar_50x500.Pillar_50x500' (0x000009AD154B3800) Class 'StaticMesh'>
...
LogPython: <Object '/Game/StarterContent/Architecture/Wall_Door_400x400.Wall_Door_400x400' (0x000009AD152A7000) Class 'StaticMesh'>
LogPython: <Object '/Game/StarterContent/Architecture/Wall_Window_400x300.Wall_Window_400x300' (0x000009AD152A7E00) Class 'StaticMesh'>
LogPython: <Object '/Game/StarterContent/Architecture/Wall_Window_400x400.Wall_Window_400x400' (0x000009AD152A8C00) Class 'StaticMesh'>

unreal.EditorUtilityLibrary.get_selected_asset_data関数の基本構文

unreal.EditorUtilityLibrary.get_selected_asset_data() 
→ Array[AssetData]

unreal.EditorUtilityLibrary.get_selected_asset_data関数の使い方

import unreal

slectedAssets = unreal.EditorUtilityLibrary.get_selected_asset_data()
for assetData in slectedAssets: print(assetData)
LogPython: <Struct 'AssetData' (0x000009ACBDD747E0) {package_name: "/Game/StarterContent/Architecture/Floor_400x400", package_path: "/Game/StarterContent/Architecture", asset_name: "Floor_400x400", asset_class_path: {package_name: "/Script/Engine", asset_name: "StaticMesh"}}>
LogPython: <Struct 'AssetData' (0x000009ACBDD73020) {package_name: "/Game/StarterContent/Props/MaterialSphere", package_path: "/Game/StarterContent/Props", asset_name: "MaterialSphere", asset_class_path: {package_name: "/Script/Engine", asset_name: "StaticMesh"}}>
LogPython: <Struct 'AssetData' (0x000009ACBDD75780) {package_name: "/Game/StarterContent/Architecture/Pillar_50x500", package_path: "/Game/StarterContent/Architecture", asset_name: "Pillar_50x500", asset_class_path: {package_name: "/Script/Engine", asset_name: "StaticMesh"}}>
...
LogPython: <Struct 'AssetData' (0x000009ACBDD74380) {package_name: "/Game/StarterContent/Architecture/Wall_Door_400x400", package_path: "/Game/StarterContent/Architecture", asset_name: "Wall_Door_400x400", asset_class_path: {package_name: "/Script/Engine", asset_name: "StaticMesh"}}>
LogPython: <Struct 'AssetData' (0x000009ACBDD75280) {package_name: "/Game/StarterContent/Architecture/Wall_Window_400x300", package_path: "/Game/StarterContent/Architecture", asset_name: "Wall_Window_400x300", asset_class_path: {package_name: "/Script/Engine", asset_name: "StaticMesh"}}>
LogPython: <Struct 'AssetData' (0x000009ACBDD72760) {package_name: "/Game/StarterContent/Architecture/Wall_Window_400x400", package_path: "/Game/StarterContent/Architecture", asset_name: "Wall_Window_400x400", asset_class_path: {package_name: "/Script/Engine", asset_name: "StaticMesh"}}>

まとめ

「unreal」(Unreal Engine Python API)は、Pythonを使ったUnreal Engineの開発に非常に役立ちます。この記事では、コンテンツ内の選択されているアセットを全て取得する方法を紹介しました。ぜひ活用してみてください。

関連検索ワード

How to get selected assets in content browser?

関連キーワード

unreal, python, get, asset, 読み込み, 取得