前回の記事ではBlueprintを利用してのInterchange Frameworkを解説しました。
今回はBlueprintではなく、Pythonを利用する場合の方法を解説しました。
※ 本デモではUnreal Engine 5.5を利用しています。
管理人がYouTubeで解説!
サンプルコード
import unreal
@unreal.uclass()
class DemoInterchangeTexturePipeline(unreal.InterchangePythonPipelineBase):
@unreal.ufunction(override=True)
def scripted_execute_pipeline(self, base_node_container, in_source_datas, content_base_path):
# StringLibrarydのends_withを使いたいので宣言
ustringlib = unreal.StringLibrary()
# InterchangeTexture2DFactoryNodeだけを取得する
node_unique_ids = base_node_container.get_nodes(unreal.InterchangeTexture2DFactoryNode)
# forで全てのInterchangeTexture2DFactoryNodeを確認!
for node_unique_id in node_unique_ids:
node = base_node_container.get_node(node_unique_id)
display_label = node.get_display_label()
texture_node = unreal.InterchangeTexture2DFactoryNode.cast(node)
texture_node.set_custom_sub_path("Textures") # サブフォルダを作る。
# "_ORM"を含むアセットの場合はCompression SettingsをMasksに設定する
has_ORM = ustringlib.ends_with(display_label, "_ORM", unreal.SearchCase.CASE_SENSITIVE)
if has_ORM:
texture_node.set_custom_compression_settings(2)
return True
Blueprint編はコチラ
おすすめ書籍
結局はゲーム開発における効率化を行っていきたい場合は、Python習得が必須になります。
オススメのPython書籍を取り上げてみました。
はじめの一歩にオススメ
「Python1年生 第2版 体験してわかる!会話でまなべる!プログラミングのしくみ」は、
Pythonを初めて学ぶ人向けに、わかりやすさと楽しさを追求した入門書なのでプログラミング苦手な方に入りやすいかも?
効率化をテーマとした書籍
Unreal Engineに限らず、仕事において効率的にできることは多々あります。
そこをPythonで自動化しちゃいましょう!
コメント