UnrealEngine4-PiXYZプラグイン②

UnrealEngine4-PiXYZプラグインの2回目です。

ちょっと追加情報で、UnityのアセットストアでPixyz-UE4プラグインが売っているみたいです。

さて、前回はインストールと基本設定でした。今回は実験でCATIAのフリー素材のカーデザインをインポートしてみます。
通常のFBXのようにコンテンツブラウザでImportします。


こちらがCATIAファイル


インポートのオプションです。豪華な設定項目です。上から解説していきます。

(1)インポートした後の処理の設定です。Pixyzの凄いのはブループリントに直接できる、という点です。コンポーネントActorもOK。

(2)複数オブジェクトをまとめる、だけでなく「マテリアルごとにまとめる」があります。これは凄く便利です。今までMayaで事前にやっていました。

(3)インスタンスマテリアルとしてインポートも可能です。これも便利です。Mayaでダブったマテリアルがあっても解消です。

(4)コリジョンの種類を選べます。K-DOPがあるのが嬉しいですね。

(5)インポート時に自動で5種類のリダクションのクオリティを選べます。細かいこと無しでシンプルでいいです。

(6)いや、リダクションはこだわりたい、という場合は「Customize」で3つのパラメータが選べます。UnrealStudioのリダクション3項目と同じと思われます。


(7)さらにその設定をSaveできる。これはUnrealStudioでもぜひ付けて欲しい機能です。意外とメモし忘れて同じ設定が判らなくなります。

(8)LODを自動で作成します。Addボタンで追加します

それぞれ先ほどの5種類から選択します。


(9)「UV3D Size」の設定ができます。単位も変更可能です。
その他、チェック項目で、Z-UP、左手系(通常ON)などチェック項目あります。

変換できました。Pixyz-PluginだとActor-BluePrintに自動で設定できるという特徴があります。これは制作での効率を結構上げてくれると思います。
さらにフォルダ分けを自動でやってくれます。

次回はインポート後の設定と、UnrealStudioとの違いを説明します。

UnrealEngine4-PiXYZプラグイン①

2月に入ったのでちょっとPythonを休憩して、PixyzのUE4プラグインについてお話します。


Pixyzは3DCADのポリゴン変換と修復・最適化・UV展開をするツールです。
早速使ってみたいと思います。が、なんとトライアル版は7日間?!という短さです。

こちらがプラグイン版Pixyzのデモ動画です。
PixyzはUnityとの提携も昨年話題になりました。Pixyzは基本PixyzStudioというスタンドアロンツールを使うのですが、新しいツールを覚えるのは面倒、という方にプラグイン版があります。

Pixyzのアカウントを作成して、ログインからツールをダウンロードから、インストールします。複数バージョンのUE4がインストールされている場合、勝手に探してEngine本体にインストールします。
例えば、UE4.20ならば、UE_4.20\Engine\Plugins\PiXYZPluginに入ります。プラグインを削除したい場合には、このフォルダを消してください。
ちなみにこのブログを書いている時点では4.21には未対応ですが、勝手にインストールされるので手動で消してください。


インストールが完了すると、プラグインマネージャーで確認できます。
https://www.solidworks.com/ja
コンテンツブラウザの「インポート」をクリックすると、インポート可能なファイル形式が増えているのが判ります。
AutoCAD、CATIACreo、DeltaGen、Parasolid、SkecthUp、Rhino、SolidEdige、Solidworksなど主要CADファイルはすべて対応しています。なぜかAutodeskのInventorがありません。

PixyzStuioではできるのですが何故でしょう・・・
こちらがPixyzsのインポートできるファイル形式リストです。

あとVREDとAliasも見当たりません。
もちろん、IGES、STEP、STLとか汎用CADファイルは対応しています。

さてインポートしようとすると、以下のダイアログが出ます。

PixyzのMy Account でトライアルライセンスの設定をして、登録したIDとパスワードを入れて「Connect」します。

承認されると、「Install」ボタンをクリックします。

そのPCにライセンスがインストールされます。
おそらく正規ライセンスでも同じ手順であると思われます。

ちなみにいつもこの連載で使っているUnrealStudioプラグインの場合、読み込める形式は以下になります。

プラス、VRED、DeltaGenの読み込みができます。

次回から変換をPixyzプラグインとUnrealStuioで比較して試してみましょう。

UnrealEngine4でPython リターンズ その6

今週はテクスチャーをインポートの2回目です。
前回はカラーテクスチャーでしたが、ノーマルマップやラフネス、メタリックなどのテクスチャーの場合です。

いつもの車は使ってないので、UE4マーケットプレイスでおなじみ『Infiltrator』の建物のテクスチャを使います。


Mayaシーンだとこんな感じです。

テクスチャーはこの2枚です。左がORMテクスチャーで右がノーマルマップです。
ORM とは複数のチャンネルを単一のテクスチャーにまとめたもので例えば赤チャンネルはオクルージョン、緑チャンネルはラフネス、青チャンネルはメタリック、アルファに透明度など当てはめます。
これによりテクスチャーの枚数を減らして処理速度をアップできます。
Substanceツール類なら簡単にできます。

さてスクリプトです。

import os.path
# テクスチャ関連のライブラリ設定
from unreal_engine.classes import TextureFactory
texture_factory = TextureFactory()

# パスとファイル名の設定(Mayaプロジェクトsourceimages)
car_assets_dir = os.path.join(os.path.expanduser('~/Desktop'), 'Building_Alpha')


# テクスチャが上書きされることを保証
texture_factory.OverwriteYesOrNoToAllState = 2

# ノーマルマップ ファイル名の設定
Building_Alpha_n_tga = os.path.join(car_assets_dir, 'Infil1_Building_Alpha_LOD_N.TGA')
# 保存先のフォルダ指定(なければ作成〉
Building_Alpha_n = texture_factory.factory_import_object(Building_Alpha_n_tga, '/Game/Building_Alpha')

# ORMテクスチャ ファイル名の設定
Building_Alpha_orm_tga = os.path.join(car_assets_dir, 'Infil1_Building_Alpha_LOD_M.TGA')
Building_Alpha_orm = texture_factory.factory_import_object(Building_Alpha_orm_tga, '/Game/Building_Alpha')

# SRGBをOff
Building_Alpha_n.SRGB = False
Building_Alpha_orm.SRGB = False

実は最後の2行だけが新命令で、ノーマルやラフネスをSRGBをオフにする命令です。

実行すると、読み込まれた後にSRGBをオフにします。