UE4オンラインラーニング
よりよいパイプラインの構築
を受講した際のおぼえ書きです。
https://learn.unrealengine.com/course/2503775
オススメの命名規則があります
一例です
SM_:スタティックメッシュ
T_:テクスチャ
SKM_:スケルタルメッシュ
_N:ノーマルマップ
テクスチャの詳細
リソースサイズ、ミップ数などを確認できます。
UIテクスチャの設定方法
最高画質で表示する必要があるため
圧縮設定をUserInterfae2Dにする必要があります。(VectorDisplacementでも○)
最高画質で表示するためリソースサイズがはね上がります。
(ひょっとしたらテクスチャグループもUIにする必要があるかも)
DCCツールでの作成のコツ
MayaやMaxで作成する際はポリゴン数を気にしながら作るべき
なお単位は1cm=1unreal単位です。
マテリアルID数
マテリアルID数が2つある場合2回描画されます。
あらかじめマテリアルID数を決めておくことをオススメします。
例)
・小道具(マテリアルID数は1つ)
・キャラ(マテリアルID数は2つ3つ)
・マップ(壁や天井ごとに1つずつ)
エディタでの起動ショートカット
・レベルで対象のアクターを選択
・Ctrl+Eでエディタを起動できます。
UVの確認方法
スタティックメッシュエディタのUVの確認方法
置く前のデフォルトライトマップ解像度の指定方法 と
置いた後の上書きするライトマップ解像度の指定方法
リソースからコリジョンの追加方法
DCCツール上でUCX_○○という名称でポリゴンを作っておいて
インポートしたときにコリジョンを追加する方法があります。
エディタ上でボックスコリジョンの追加方法
コリジョン>ボックス単純化コリジョンを追加を選択
そこから移動や回転などを行い設定することができます。
エディタ上でオートコンベックスコリジョンの追加方法
細かくコリジョンをつけることも可能です。
コリジョン>オートコンベックスコリジョンを選択、
適応ボタンをクリック、
で自動で細かくポリゴンを作成することができます。
LODメッシュを作成する手法についても学べます。
スタティックメッシュFBXインポート時のオススメ設定
(あくまでもepicの方のオススメ設定です。)
・GenerateMisingCollisionでコリジョン有効化
・GenerateLitemapUVsをON
・TransformVertextoAbsoluteで原点にあわせる
・ImportTexturesでテクスチャインポート
スケルタルメッシュFBXインポート時のオススメ設定
(あくまでもepicの方のオススメ設定です。)
・SkletalMeshでスケルタルメッシュ指定
・ImportAnimationsでアニメーションインポート
・ImportTexturesはOFF
再インポート手順
コンテンツブラウザのドロップしなおすというのが一つのやり方。
右クリック>再インポートでも可能
ファイルパスはアセット自体に保存されている
スイッチ系ノード
マテリアルBPではスイッチ系のノードを利用することで
描画パイプラインの流れを分岐することができます。
例)
・StaticSwitchParameter
・StaticSwitch
マテリアル製作のコツ
マスターマテリアルを作成し
アーティストが最もよく変更したいパラメータを特定し
マテリアルインスタンスをつくるのがコツです。
そうすれば、シェーダーの肥大化を防ぎメンテナンスコストを下げることができます。
マテリアル関数
マテリアル関数とはマテリアルBPから呼ぶことができる関数です。
コンテンツブラウザを右クリック>マテリアル・テクスチャ>マテリアル関数
でつくることができます。
FunctionInputノード
マテリアル関数ではFunctionInputノードを利用し入力を取得します。
・FunctionInputノードを作成
・InputTypeをFunctionInputScalarに変更
・例としてPrevieValueを1 0 0 1にする。
マテリアル関数の呼び出し
マテリアルBPではこんな感じに呼び出すことができます。
入力はFunctionInputノードで指定した値
コース通りの製作すると2つのマテリアルが出来上がりました。
マスターマテリアル)
グラスマテリアル)
マテリアルインスタンスでパラメータのみ変更することができます。
一般>マテリアルプロパティのオーバーライド>TwoSided
をチェックすれば両面表示も実現できます。
※注意点
BlendMode ShadingModel なども変更できるがこちらは注意が必要です。
親マテリアルの本来の目的にそぐわないためです。
基本的にはここはアイディアを試すとき用であって、最終的には使うべきではないです。
SimpleGrassWindノード
SimpleGrassWindノードで風をシミュレートすることができます。
コース通りに進めるとこのような風になびく木のマテリアルが作れます。
・BlendModeをMasked
・TwoSidedにチェック
・SimpleGrassWindノードで風をシミュレート
コンソールコマンドの実行
日本語キーボードは@を押すことでコンソールコマンドを実行できます。
※いろいろなレクチャーではバッククォートとかチルダとかいろいろ所説ありますが、
日本語キーボードの方は@だったらしい
テクスチャストリーミングサイズの指定コマンド
r.Streaming.PllsSize=5000
UI用最高解像度テクスチャの指定方法
・圧縮設定をUserInterface2D
・NeverStreamにチェックを入れる
以上により常に最高解像度のテクスチャが利用できます。
これはUIなどに利用するべきものでパフォーマンスに影響があるので注意が必要です。
スタティックメッシュのLOD
スタティックメッシュを開きこの辺の指定でやるとのこと
アクターのマージツール
アクター同時をマージしてメッシュもマテリアルも1つにする機能があります。
ウィンドウ>デベロッパーツール>アクタをマージをクリックし
アクタをマージツールを起動
アウトライナからマージしたいスタティックメッシュを選択
マージしたいメッシュがリストアップされているので
・0のピボットポイントにチェック
・LOD選択タイプをUse specific LOD levelを選択
・ソースアクタを置換にチェックを入れない
マテリアルもマージしたい場合は
・マテリアルのマージにチェック
・テクスチャサイズを指定(例:256x256)
アクタをマージボタンをクリックし
出力先フォルダと出力先ファイルを選択し保存
長い出力処理ののち
メッシュ、マテリアルともに1つにすることができる。
レベルに配置し、0 0 0に移動させればこのとおり(ボケボケですが)
階層LODアウトライナー
ウィンドウ>階層LODアウトライナー
でLODの調整ができます。
ライティング品質
ビルド横の▽からライティング品質
で変更できます。
距離に応じたシャドウの動的更新
・LightSourceを選択
・DynamicShadowDistanceStationaryの値を調整
で距離に応じた動的なシャドウの更新の有無を変更することができる
近い時:動的更新
遠い時:更新しない
ポストプロセスボリューム
InfiniteExtendにチェックをいれることで
レベルのどこにいても有効なボリュームにできる
アンチエイリアス指定
プロジェクト設定のレンダリング>アンチエイリアス手法
から変更できる
ボリュームライティングサンプル
ビューポートの
表示>視覚化>ボリュームライティングサンプル
にチェックをいれることでどの位置で何色が適応されるかを視覚化することができます。
カリング距離ボリューム
指定したしきい値によりカメラが多く離れたらボリューム内の
アクタをしきい値に応じて非表示にする機能です。
反射について
ビューポートのから反射に切り替えることで視覚化できます。
ボックス反射キャプチャ、スフィア反射キャプチャを配置し
反射を表現することができます。
※10回中9回はスフィアキャプチャを使うことになります。
ボックスは主に廊下などでのみ利用できます。
平面反射は一番高負荷な反射です。
事前にプロジェクト設定の
レンダリング>平面反射のグローバルクリッププレーンをサポートに
チェックを入れて再起動しておく必要があります。
御覧のように非常に精度の高い反射を実現できます。
※平面反射はメッシュが一つ多いとその分多くなってしまいます。
非常に高負荷なしくみです。
非常に学びの多いコースだった。長かった
マテリアルBP、マテリアルインスタンス、マテリアル関数について解説があります。
パフォーマンス改善のための
LOD、ミップマップ、アクタのマージ、シャドウ、カリング距離ボリュームなど
あらゆる角度からの改善策や製作していく上での注意点に関して解説があります。