Unreal Engine 4 UE4学習 14日目 Kickstart ワールドビルディング

UE4

はじめに

  • なにか目的を持って作りたい為UE4を始める
  • UE4一ヶ月でどれくらいのレベルになるのか検証

今回はこちらを見ていきます

コース全体の紹介

  • 詳しい説明はなしで全体像や歴史的背景の話
  • 8つのテーマに関連して説明する事を目指す
    • 1 エンジン構造
    • 2 レンダリング
    • 3 ワールドビルディング
    • 4 マテリアル
    • 5 ブループリント
    • 6 プログラミング
    • 7 キャラクター
    • 8 アニメーション
  • 上記のそれぞれは3つのセクションに分かれている
    • 理念と概念
    • 図を元にした全体像
    • アドバイス
      • 全体像で説明しなかった部分。
  • 内容の概要
    • エンジンで利用できるのはなにか?
    • なぜそこにあるのか?
    • 歴史や背景やパースペクティブ
    • 最終的にどうなったか、なぜ作ったか
    • 用語についての解説
    • 呼び出される多様な機能はなにか?
      • それらがどのように連動しているか
    • アドバイス、ベストプラクティスについて解説
    • 目的はエンジンの構成内容を紹介する事
      • 最初に確認すべきものが理解できる
      • 追加情報を探す場所
    • UEを使い始めたときに教えてほしかった事を伝える

1 ワールドビルディング

理念と概念

  • UEはビジュアル操作を主体とした完結したツールセット
  • UEは歴史的にレベルを中心としたワークフローを持っていて焦点を当てている
  • UEはレベルエディタとして90年代後半に生まれる
  • レベリエディタがパワーアップして現在の姿に

UE1

UE2

  • 2002年~
  • メッシュが追加された。それまではすべてBSPブラシを用いていた。ハイブリッドBSPメッシュワークフローを取り入れ始める
  • スクリプトはBPクラスにあるイベントとタグのみ
  • アウトドアワールドが追加される。減算ワールドなどがあった
    • UE1,UE2でゲームを作るイメージは大きな箱から小さな箱を引いていく作業だった。

UE3

  • 2006年~
  • Kismetを備えたビジュアルスクリプティングが生まれる
    • 現在多くあるエディタ: マテリアル、カスケースシーケンサの前進であるマチネ等が取り入れられる
  • 加算ワールドとなり。減算ワールドではなくなった

UE4

  • 2014年~
  • 性能強化を除いたすべてのツールの原型できた

  • エディタープレイ可能な体験が丸い円で配置されている
  • Sub-Editors & Tools には非常に多くのサブエディタとツールが付属する
    • 配置可能なアセット、コンテンツやクラスを作成できる
    • 他のプログラムで作成されたものでもエンジンに取り込みレベルに配置する
  • The Editorは種々のツールとアセットによってLevelを生成する
  • Rebuildingすることもある
    • 事前計算のようなもの
      • ライトのベイクのように実行しない場合もある
      • 判断はダイナミックであるかどうかで決まる
  • Sub-Levels
    • レベルストリーミングなどがある

スキマティック

全体図

  • ズームインしてそれぞれのセクションを解説
  • 先程の図の詳細版のよう
  • 中央左側には The Editorがある
  • 図に挿入したアルファベット

    • A はアクター以外でワールドに配置できるもの
      • Playerスタートやライトのようなもの
    • B は3Dに配置できるもの。キャラクター等がある
    • C は3Dツール
    • D はレベルをコントロールするもの。
      • 配置したコンテンツをコントロールできる追加のツール
    • E はリビルディング
    • F はレベルストリーミング
    • G はパフォーマンスツール

A. Placeale Actors executing 3D (Actors)

  • Audio
  • Emitter
  • 反射キャプチャ
    • 球キャプチャ、Boxキャプチャ、平面キャプチャがある
  • Light
    • Static ベイクされる
    • Stationary
      • Static と Movable のハイブリッド
    • Movable ダイナミック
  • Volume
    • いろいろな用途で使われる
      • 例: Kill Z Volume
        • 一定の高さよりも下に行くとプレイヤーをキルする
    • 至るところに配置されているみたい
    • Geometry Editing が一部としてある
  • BluePrint
    • ゲームのためのものだけではなく環境アーティストなどBPに関心がなくとも覚えたほうが良い
    • 曲線を使って配置を調整する方法が簡単に紹介される
      – ワールドの構築とコンテンツの管理にも役立つ
  • Workflow
  • Game play, Player start, スポーン位置

B. Placeale 3D Mesh Actors

  • Static Meshes
    • デフォルトの3dメッシュ
    • 変形せず動かない
    • ボーンの変形がない
    • LOD (Level of detail)
    • HLOD
      • static mesh のクラスターを生成、距離に応じてそのクラスターに置き換える
      • 遠くにいると雑なメッシュにして近づくと詳細なメッシュにするやつです
      • HLODツールを使いBOXで複数のLODを囲めば、複数のLODは1つに統合される
        • これによってオブジェクト数を少なくし処理を軽くしている??
        • Draw call は複数ではなく一度になる
      • Fortnightで広く使われている
    • Instanced Static Meshes (インスタンス化されたスタティックメッシュ)
    • Splines
      • 曲線にそってメッシュを回転
      • パイプレールなどを作る
  • Skeltal Meshes
  • Geometry
    • 少し時代遅れなので注意して使用してくださいとのこと
    • プロトタイプやホワイトボックスの生成に使われる
    • 交差部分は非常に多くのメッシュが生成されバグを発生させる
    • メリット・デメリットがあるが、デメリットは多い
  • Procedural Mesh
    • ランタイムに生成できるメッシュ
  • Foliage
    • インスタンス化されレンダリングされたメッシュ
    • 枝葉によく使われるが、広域に分布しているものなら何でも使える
    • Foliageを作る手段
      • Foliage tool
        • Foliageを配置するのに使う
        • 1つのオブジェクトのように扱われる
    • Grass
      • 草や岩など細かいものを配置するのにうまく動作する
    • Procedural Foliage(実験的機能)
      • ルールに沿ってFoliageを配置する。
  • Geometry Collections
    • 幾何的メッシュ。カオス破壊システムのいち部分
  • Landscapes
    • スカルプと可能な地形メッシュ。スケールに最適化されている
    • 用途やツール
      • Landscape Layers
      • Landscape Components
      • Landscape Gizmos
      • Landscape Visibility
      • Landscape Painting
      • Landscape Splines
      • Landmass Plugin
        • ランドスケープブラシを含む、参照写真を重ねるツールのようなもの
        • Landscape Brushes
  • Skies
    • スカルプと可能な地形メッシュ
    • レベルを取り囲む巨大なSphereでマテリアルが設定されている
      • Static Meshes
        • Materials
    • Physically Based Sky Atmosphere

C. 3D Tools

  • 開発が進行中
  • Sculpting、Modeling、UV toolsが最近追加された
  • UV Tools
    • UVを再設定
    • エンジンでUVを変更可能
  • Mesh Simplification
    • エンジンの標準機能の一つ
    • メッシュを単純化する
      • LODが生成できる

D. Controls the level

  • レベルで何が発生するかを制御する
  • Level Blueprint
    • Blueprintの一種。レベル毎に存在している
    • Timeline
      • Blueprintエディタの一種
      • ドア、エレベーターなどは骨を組むよりもシンプルに留めるためにTimelineを使ったほうが良い
  • World Properties
    • すべてのレベルにあるプロパティのリスト
      • Global変数みたいなもの?
    • デフォルトのゲームモード設定
    • Lightmass に関する設定
  • Sequencer
    • シネマティックエディタとして使用できる
    • シンプルなものにこれを使うのは行き過ぎとのこと
      • 大掛かりにしすぎているという事か
  • Variants Manager (新しい機能)
    • レベルバリアントアセットというアセット

E. Rebuilding

  • レベルのコンパイルステージすべての事前計算を扱う
  • Lightmassで部分的に実行
  • 必須なステップではない
  • 場合によってワールドやレベルを事前計算せずにビルドしたい事がある
  • Lightning
    • すべての静的で事前計算されたライティングは計算処理される
    • Lightmass importance volume
      • Lightmaps
        • Lightmassで標準ライトマップを生成する
      • Volumetric Lightmaps
        • ダイナミックアクターやボリュメトリックライトニングのためのベイクされた間接静的ライティング
    • Precomputed Visibility
      • PVが有効なときのみ。可視セルをベイクするためにライトニングプロセスを使用する
  • HLOD
    • 階層LODは必ず生成されなければならない。
    • これが要求されるのはレベルにHLODが使用されている場合のみ
  • Reflections Captures
    • すべての反射が配置される
    • 反射キャプチャは更新される。
    • レベルロード時に発生し強制される
    • 完成品のゲームが有る場合、反射キャプチャはベイクされる
  • Navmesh
    • ランタイムバージョンを使用していないとき、処理されなければならない

G. Performance

  • スケーラビリティとパフォーマンスを評価および制御するためのさまざまなツールまたはプロパティ。
  • stats
    • UE2からあるツールで、読み取れる数値を画面上に表示する
    • コマンド例: stat scenerendering
    • コマンド例: stat FPS
    • コマンド例: stat unit
    • コマンド例: stat none
  • GPU profiler
    • コマンド: profile GUP
    • ショートカット: ctrl + shift + ,
  • Statistic Panels
    • ウィンドウ→統計 で表示
  • View Modese
    • Shader Complexity
    • Quad Overdraw
    • Lightmap Density
  • Call/Max Draw Distance
  • Scalability
    • Render Quality
    • Force LODs
    • Distance Multipliers
  • World Detail
    • UE1 で挿入された
    • 存在を忘れられている感がある

アドバイス

  • 初級レベルのときに知りたかった内容の紹介

Level organization レベル構成

20年の経験でよく行ってきたこと

重要なアクタ標準

  • 重要なアクタはレベルの中央に配置する
  • Editor Billboard Scaleでアイコンのサイズが変えられる

アウトライナー

グループ
  • ctrl + G でグループ化ができる
  • ctrl + shift + g でグループ化が解除できる
  • グループ化はレンダリングに影響は与えず、アウトライナー上にも反映しない
レイヤー
  • 選択セットを保存しておける
  • ウィンドウ→レイヤーから表示可能
  • レイヤー本来の意味はない

セレクションツール

  • この選択によっていろいろな手段で選択が可能となる
    • アウトライナよりも簡単に目的のものが選択できるみたい
  • コンテンツブラウザからでも開くことが可能
  • ウィンドウ→統計で表示されたウィンドウのアクタ列をダブルクリックでも選択可能
  • 講師の方は2名いて、このセレクションツールで管理する方とアウトライナで管理する方で意見が別れていたがユーザーのやりやすい方ということですね

Level cleanliness レベル整理

  • スナップツールは見落としているユーザーが多いですが非常に役立つので使いましょう
    • グリッドスナップ
    • 回転スナップ
    • スケールスナップ
    • 他の人からプロジェクトを引き継いだとき、メッシュがグリッドから外れていると面倒なため
      • 必ずしもグリッドに合わせる必要はないが一般に対象を動き回らせるのが容易になる
  • Shadows/Collision
    • 必要のないときはオフにすると少しパフォーマンスが上がります

Landscapes

  • LOD作成とCollision
    • LODの距離を調整するとパフォーマンスが少し節約される
    • LODはある距離まで近づいたら詳細を描画するなどの機能
    • ミップレベル 1 は低い精度のコリジョン
    • 高くするとメモリがかなり節約できる
    • コンポーネントごとに設定可能
  • Per component settings
  • Material Complexity and shared samplers
    • Landscapeは共有サンプラーにより最大128個のテクスチャをサポート可能
  • Distance Fading scale/Textures
  • Hard blends

Foliage

  • Foliage Assets
  • Range and Shadow
    • 特に影があると重くなることがある、必要な場合を除き影はオフにしましょう。草や小さな石などの影は必要ありません
    • 範囲もレンダリングをどこでやめるか定義できます。
      • デフォルトでは範囲は設定されていないためすべてレンダリングします
        -Lower position material trick
    • 草など低い場所にあるものに有効
    • 草から離れていくと草のレンダリングを中止した時点で草は画面から消える
      • あまり美しくない為、遠く離れていくに従い草を地面に落としていくと徐々に消えていくような演出ができる
      • オブジェクトポジションとカメラポジションの距離って調整する
  • Slope material trick
    • 斜辺に配置した草などは角度に限らず平行に配置されている事がある
    • 草を面の角度に合わせる事は可能だが、今度は面に直角に草が生える
    • 面の角度に合わせて草を上に向かせるには、マテリアルのz軸を0にスケールして配置したあとに戻すというトリック
      • 頭いい方法ですね

Painting Tools

  • 何を言っているかまだ理解できるレベルになっていなかったためスキップ

最後に

全体像が少し見えた気がしました。

すごい長いシリーズなのでまだ終りが見えません。

タイトルとURLをコピーしました