Software:
Unreal Engine 4.20
Importing assets into a project is done using the import_asset_tasks() function which is a member of the unreal.AssetTools class.
A reference to the AssetTools class is created by calling the get_asset_tools() function which is a member of the unreal.AssetToolHelpers class.
The import_asset_tasks() function requires a list of unreal.AssetImportTask objects as an argument, each unreal.AssetImportTask object in the supplied list represents the import action of a single asset, and contains properties needed for the import operation.
Asset import properties are set using the set_editor_property() function which is called through the AssetImportTask object.
Available asset import properties are listed here:
https://api.unrealengine.com/INT/PythonAPI/class/AssetImportTask.html
In the following example a specified texture file is imported into the project and stored in the Content(Game) > Textures folder.
* If the folder doesn’t exist it will be created.
import unreal AssetTools = unreal.AssetToolsHelpers.get_asset_tools() AssetImportTask = unreal.AssetImportTask() AssetImportTask.set_editor_property('filename', "D:\Wood_Red_A.jpg") AssetImportTask.set_editor_property('destination_path', '/Game/Textures') AssetTools.import_asset_tasks([AssetImportTask])
The following example imports all the JPG files from folder: D:\ into the project, stores the new assets in Content(Game)\Textures folder and saves them:
from os import listdir from os.path import isfile, join import unreal dir = "D:\\" files = [f for f in listdir(dir) if isfile(join(dir, f)) and f[-3:]=='jpg'] AssetTools = unreal.AssetToolsHelpers.get_asset_tools() import_tasks = [] for f in files: print join(dir, f) AssetImportTask = unreal.AssetImportTask() AssetImportTask.set_editor_property('filename', join(dir, f)) AssetImportTask.set_editor_property('destination_path', '/Game/Textures') AssetImportTask.set_editor_property('save', True) import_tasks.append(AssetImportTask) AssetTools.import_asset_tasks(import_tasks)
* note that when copying and pasting a script from this example, the indentation may not be pasted correctly.
Related: