日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Unreal Python API 从零到入门

發布時間:2024/1/1 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Unreal Python API 从零到入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

    • 前言
    • Unreal Python API的使用 - 運行環境
    • UE4 Python插件
      • 安裝UE4 Python腳本插件
    • 運行腳本
      • 打開output log
      • 輸入運行路徑
    • 編寫腳本
      • 在編寫Python腳本中你應當謹慎注意的事情
      • 授人與漁
      • 再次跳入坑坑的API文檔
      • Google yyds
    • 常用接口整理
      • unreal.AssetData
      • unreal.\_ObjectBase
      • unreal.EditorAssetLibrary
      • unreal.AssetRegistry
      • unreal.GameplayStatics

前言

跨過山和大海。。。
好像也沒有看到有人寫這個文檔

Unreal Python API的使用 - 運行環境

Winodws 10
Unreal Engine 4.23.1

UE4 Python插件

安裝UE4 Python腳本插件


搜索script,安裝圖中標注好的兩個插件

運行腳本

打開output log

輸入運行路徑


將cmd切換為Python,之后再輸入你腳本的路徑
這里我們創建一個test.py文件(如下代碼)放在桌面

import unrealstr1 = unreal.AssetRegistryDependencyOptions(include_soft_package_references=True, include_hard_package_references=True,include_searchable_names=False, include_soft_management_references=False,include_hard_management_references=False) asset_reg = unreal.AssetRegistryHelpers.get_asset_registry()arr = unreal.AssetRegistry.get_referencers('/Game/Assets/XX/XX', str1)print arr

路徑為: C:\Users{你的用戶名}\Desktop\test.py
在這里我的用戶名為Bedivere, 所以我們輸入
C:\Users\Bedivere\Desktop\test.py

編寫腳本

在編寫Python腳本中你應當謹慎注意的事情

  • UE4自帶的Python版本為2.7,你需要注意語法(比如print后面是不帶括號的
  • 直接復制UE4里的文件名可以獲得為文件路徑(但是文件名稱會重復兩次,有一些需要文件路徑的方法在這里需要進行更改)
    例如:
    你復制的路徑
    ‘/Game/AssetsXXXX/AAA.AAA’ (注意它打了兩遍!!!
    實際它需要
    ‘/Game/AssetsXXXX/AAA’
    但有時他又只需要前者,所以巨**坑
  • UE4 outputlog里cmd是只能使用UE4的cmd指令,執行外部的指令是沒有的,例如cd C:\xxxxx

授人與漁

當編寫Python腳本的時候會碰上各種各樣的問題,這里介紹可以去找結果的途徑
就拿我們這個腳本舉例
需求是:找到這個文件的reference
所以我們在官方API文檔里搜索get_reference



在這里我們就能看到api的用法,需要文件路徑,以及配一個查找選項(范圍)
路徑我們直接Ctrl + C就可以解決,但對于后者我們需要再點進去查看如何配置


看到這里我們知道需要配置四個參數,所以我們寫下了這行代碼

str1 = cunreal.AssetRegistryDependencyOptions(include_soft_package_references=True, include_hard_package_references=True,include_searchable_names=False, include_soft_management_references=False,include_hard_management_references=False)


但運行后會報錯

提示類型不對,應當為一個類
這里就是他很坑的地方,明明文檔例子給的就是路徑,但這里又說不行

這里我們就有兩種途徑去尋找解決方式

再次跳入坑坑的API文檔

去按你覺得可能的想法搜, 比如get AssetRegistry
或者 path to AssetRegistry。但是這樣挺靠緣分的(x)
英語水平和你對命名的了解程度(√)
我選擇的是return AssetRegistry,看看什么方法能返回給我這樣的一個對象

這里那個Helpers小幫手就很吸引我的眼球!

只需要點一下就可以轉換 Done!

Google yyds

別問,問就是Ctrl+C Ctrl + V

常用接口整理

此處列舉的類都是些基礎類與實用類,類中的方法可用于復現編輯器中的操作或信息的獲取,但由于數量較多無法一一列舉,因此使用前請務必查看該類的官方文檔,查找最適合需求的方法并使用。

unreal.AssetData

使用方式

# 路徑請遵循虛幻路徑格式,文件名需以.隔開后再寫一遍 unreal.AssetData('/Game/test/XXX.XXX')

常用方法

  • 獲取資源對象 - get_asset()
# 最常用,獲取對應資源的屬性一般都要先獲取對象 # 返回值類型為object,并包含了所屬類的信息,如路徑為Texture資源,則返回的object的類為Texture,可用于判斷資源種類 import unreal object = unreal.AssetData('/Game/test/XXX.XXX').get_asset() print object# 執行結果輸出 LogPython: <Object '/Game/test/XXX.XXX' (0x000001639781AC00) Class 'StaticMesh'>

unreal._ObjectBase

使用方式

# 所有對象類的基類,在獲取到對象后,可以隨意調用該類中的方法

常用方法

import unreal object = unreal.AssetData('/Game/test/XXX.XXX').get_asset()# 獲取對象的虛幻類 print object.get_class()# 執行結果輸出 LogPython: <Object '/Script/Engine.StaticMesh' (0x000001639B17C400) Class 'Class'> --------------------------------------------------------------------------------------------------------------- # 獲取對象名稱,即文件名 print object.get_fname()# 執行結果輸出 LogPython: SM_Env_Bridge_006A --------------------------------------------------------------------------------------------------------------- # 獲取對象的絕對路徑 print object.get_path_name()# 執行結果輸出 LogPython: /Game/test/XXX.XXX

unreal.EditorAssetLibrary

使用方式

# 實用方法類,類中方法可直接靜態調用,可執行ContentBrowser中的大部分功能,如創建、刪除、復制、保存、重命名、獲取tag信息等。 # 此處只列舉幾個基礎的方法,使用時請查閱此類的官方文檔,以獲取能夠滿足需求的方法。

常用方法

import unreal# 刪除asset,需傳入資源路徑作為參數,返回值為bool型,True則操作成功,False為失敗 result = unreal.EditorAssetLibrary.delete_asset('/Game/test/XXX')# 刪除目錄,需傳入目錄的路徑作為參數,返回值為bool型,True則操作成功,False為失敗 result = unreal.EditorAssetLibrary.delete_directory('/Game/test')# 判斷asset是否存在,需傳入資源路徑作為參數,返回值為bool型,True則操作成功,False為失敗 result = unreal.EditorAssetLibrary.does_asset_exist('/Game/test/XXX')# 判斷目錄是否存在,需傳入資源路徑作為參數,返回值為bool型,True則操作成功,False為失敗 result = unreal.EditorAssetLibrary.does_directory_exist('/Game/test')# 獲取資源tag信息,需傳入資源路徑作為參數,返回值為包含tag信息的字典 info = unreal.EditorAssetLibrary.get_tag_values('/Game/test/XXX')

unreal.AssetRegistry

使用方式

該類用于獲取asset相關數據,如asset間的關聯與引用、asset查找、asset狀態判定等。 使用此類需要從unreal.AssetRegistryHelpers類中獲取,用法為unreal.AssetRegistryHelpers.get_asset_registry(),返回值類型即為unreal.AssetRegistry。

常用方法

  • 獲取引用到的資源 - get_dependencies(asset_path, dependency_options)
  • 獲取被哪些資源引用 - get_referencers(asset_path, reference_options)
import unreal# 參數,用于決定哪種類型的引用會輸出到返回列表中 # 詳情參考:https://docs.unrealengine.com/en-US/PythonAPI/class/AssetRegistryDependencyOptions.html#unreal.AssetRegistryDependencyOptions options = unreal.AssetRegistryDependencyOptions(include_soft_package_references=True, include_hard_package_references=True, include_searchable_names=False, include_soft_management_references=False, include_hard_management_references=False)# 返回結果是該資源引用到的資源列表,需要注意的是參數中的路徑格式,并非文件名寫兩次的格式,若填錯則返回值為空 asset_list = unreal.AssetRegistryHelpers.get_asset_registry().get_dependencies('/Game/test/XXX', options)# 返回結果是應用該資源的資源列表 asset_list = unreal.AssetRegistryHelpers.get_asset_registry().get_referencers('/Game/test/XXX', options)

unreal.GameplayStatics

使用方式

gameplay實用方法類,直接靜態調用類中方法即可。

常用方法

  • 獲取場景中某類的所有actor - get_all_actors_of_class(world_context_object, actor_class)
import unreal# 本方法需要兩個參數,一個是場景資源的對象,一個是actor所屬的類object_map = unreal.AssetData('level的object_path').get_asset()# 本例是獲取場景中所有平行光actor,平行光class為unreal.DirectionalLight。actor_list = unreal.GameplayStatics.get_all_actors_of_class(object_map, unreal.DirectionalLight)

總結

以上是生活随笔為你收集整理的Unreal Python API 从零到入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 嫩草研究院在线观看 | 日韩电影网站 | 日本午夜三级 | 免费在线观看黄网 | 狠狠五月天 | 特大黑人娇小亚洲女mp4 | 国产美女被遭强高潮免费网站 | a视频在线观看免费 | 日韩精品在线电影 | 桥本有菜aⅴ一区二区三区 在线午夜电影 | 精品一区二区三区日韩 | 亚洲激情啪啪 | 美女久久| 红桃视频网站 | 黄色资源在线播放 | 亚洲高清视频免费观看 | 国产精品啪啪啪视频 | 波多野结衣av在线免费观看 | 天天爱天天干天天操 | 污污内射在线观看一区二区少妇 | 久久国产精品无码一级毛片 | 欧美激情3p | caoporn国产| 久久久中文字幕 | av在线收看 | 亚洲色成人一区二区三区小说 | 黄色a∨| 中文在线一区二区三区 | 95国产精品 | 青青草原在线免费观看视频 | 亚洲人一区二区三区 | 国产精品久久国产 | 欧美三级影院 | 国产精品99久久久久久一二区 | 99精品偷自拍 | 欧美日韩视频网站 | 亚洲综合在线观看视频 | 毛片黄色片| 中文字幕激情 | 一区国产在线 | 国产suv精品一区 | 蜜桃麻豆视频 | 色噜噜狠狠一区二区三区牛牛影视 | 超碰三级 | av在线免| 亚洲123区| 西野翔夫の目の前で犯在线 | 亚洲精品国产欧美在线观看 | 青青国产精品视频 | 日日操夜夜操狠狠操 | 久久草精品 | 国产精品久久久久三级 | 中文字幕在线观看国产 | 日韩伦理一区二区三区 | 国产亚洲精品久久久久四川人 | 三级av网站| 欧美综合在线视频 | 视频日韩| 日韩在线观看 | 成人在线视频免费播放 | 99re免费视频 | 成人性视频网 | 草草影院最新网址 | 深夜的私人秘书 | 麻豆av免费在线 | 风流少妇一区二区三区91 | 俄罗斯毛片基地 | 非洲黑人毛片 | 欧美在线一级视频 | 禁断介护av | 欧美男同又粗又长又大 | 欧美午夜精品一区二区蜜桃 | jzzjzz日本丰满少妇 | 九九色网站 | 欧美日韩国产精品一区二区三区 | 炕上如狼似虎的呻吟声 | 久久av网站 | 精品影片一区二区入口 | 亚洲精品中文无码AV在线播放 | 青青草狠狠干 | 久久成年视频 | 亚洲人成7777 | 五月综合色 | 高hhhhh| 精品黑人一区二区三区国语馆 | 婷婷毛片 | 精品人妻码一区二区三区红楼视频 | 欧美少妇性生活 | 成人久久影院 | 成人网在线 | 欧美在线免费看 | 黄色网址最新 | 少妇乱淫36部 | porn国产| 亚洲第一看片 | 国产综合欧美 | 亚洲精品在线免费看 | 日韩美女视频一区 | 色女人影院 |