超初心者のUE5学習メモ-9-:アクタの種類を知ろう(後の後)
ポケモン可愛いですね、恒石涼平です。最初の相棒はニャオハです。立つなー! ニャオハ立つなー!!
えー、今回は『Unreal Engine 5』の勉強記事。ようやく基本的なアクタの種類を知ろう編のラストになります。
残ってるボリュームのアクタを見ていきましょう!
《今日学ぶところ》
現在は「アクタを配置」の項目にあるアクタを1つずつ目を通していってます。
基本
ライト
形状
シネマティック
ビジュアルエフェクト
ボリューム
そして今回は「ボリューム」のカテゴリに入っている22種のアクタ、後半の11種を勉強していきます。頑張っていきましょう!
《ボリュームのアクタおさらい》
まず前回定義を考えた「ボリュームアクタとは何なのか」を忘れずおさらい。
範囲を決めて何かしらやる……というのがボリュームだね。それを前提に置きつつ、早速1つずつ見ていきましょう。
◆Lightmass Importance Volume
まずは前回最後にやった「LightmassCharacterIndirectDetailVolume」と何か似ているやつ。しかし今回学ぶ方はドキュメントにちゃんと説明が載っているのでありがたい……いや全部載せてくれよ。
さてこのライトマスのインポータンス(重要性)のボリュームとは何なのか。まずライトマスとは何なのかを、前回の記事より詳しくまとめると……
大体こんな感じだと思われる。相変わらず初心者なので絶対合ってるとは言えませんが。
んで、このボリュームの内容をドキュメントから一言でまとめると……
ということらしい。全部を綺麗に描いてたらとんでもなく重くなるから、高品質なところと低品質なところをボリューム(範囲)で分けて軽くしましょうねーって感じ。
このボリュームの内側は高品質、外側は低品質になるらしい……いまいち理解はしきれてないが、また実践で使って理解していこう。
◆Mesh Merge Culling Volume
※前回と同様、見た目が同じなので画像は省略します。
お次は「メッシュのマージをカリングする」やつです。これだけ並べると意味が分かりませんが、簡単にまとめると……
……まとめた結果、また新しい用語が出てきました。この三角ポリゴンってのは3Dモデル制作の用語で、不具合の原因になりやすいものだそうです。
ちなみに前回も出てきた「HLOD」は複数のオブジェクトをまとめたものです。1個ずつ読み込むんじゃなくて、セットにして1回で読み込めるようにする感じのあれです。どれやねん。
ともあれ「3Dモデルの不具合が起きないようにするためのボリューム」と考えればよさそうですね。最初から不具合が起きなければいいんだけども……
◆Pain Causing Volume
次は直訳で「痛みを、引き起こす」ボリューム。
どうやらそのままの通り、プレイヤーとかにダメージを与えるものらしい。範囲(ボリューム)に入ったらダメージを受ける……例えば毒沼とかに使えそうな感じ。
継続してダメージを与えたり、ダメージ間隔を調整できたりと自由度は高そうです。
◆Post Process Volume
ポストプロセス、簡単に言うと「オブジェクト生成とかを終えた『後に』行われる処理」のこと。たこ焼きで言うと最後に掛けるソースとか青のりみたいなもんです。
後から遠いオブジェクトをぼかしたり、色味を調整したりできるのがUE5における「ポストプロセス」みたいなんだけど、そのポストプロセスを範囲を決めて行うのがこのボリュームになります。
◆Precomputed Visibility Override Volume
また長い名前が出てきましたね……一つずつ噛み砕いていきましょう。
まず前提として「Precomputed Visibility」という機能があるそうです。これはドキュメントによると「範囲内のマップを事前計算して、重さを減らす機能」という感じっぽい。
さっき述べた「ライトマス」とかと似てる感じかな、それの大規模版みたいなイメージかと思います。
んでその「範囲内を事前計算する機能」が上手く働かない時に、手動で直して「オーバーライド(上書き)」するのがこのボリュームだそうです。
意味分からない? うん、私も分かってないから大丈夫。何も大丈夫じゃねえや。
◆Precomputed Visibility Volume
さっきのやつの、オーバーライドじゃない方ですね。こっちは「範囲内の事前計算」を自動でやってくれるみたいです。
これを使って、上手く行かない部分はさっきのオーバーライドの方で調整する……って感じかな。メイビー。
◆Trigger Volume
いやはやシンプルな名前でいいですね。気に入ったよ君。
こちらは「トリガー」を設定するボリューム。そもそもトリガーとは何なのかまとめよう。
トリガーとして設定したものが起きたら、それに応じてイベントを起こすという感じ。今回はボリュームだから「『範囲内に入ったら』回復する」とか「『範囲内でジャンプしたら』何倍も高く跳べる」とかを作れるみたい。
まとめると「~~したら、何かが起きる」という部分を設定するのがこのボリュームです。
◆Visual Logger Filter Volume
まず前提として「ビジュアル ロガー」という機能があるようです。
それは「プレイした時に見えているもの」をログとして記録するというもの。うん、ややこしい。もっと簡単に言うと「見えているものにバグがあった時に、後から何が起きているのか確認できる機能」です。
つまりデバッグ用の機能ということ。そしてその「ビジュアル ロガー」のフィルターということで……よく分からんが恐らく「デバッグ用にログを出す範囲を決める」というものだと思う。
ほら、マップ全体のログが出たら情報量いっぱいで訳分からんから。必要な部分だけに絞ることで情報を分かりやすくするんだと思う。ドキュメントにも載ってないから推察だけどね。
◆Volumetric Lightmap Density Volume
遂に名称の中でボリュームが2回出てくるようになりましたね。世も末です。
まずこちらも前提として「ボリュメトリック ライトマップ」というものが存在するようです。これはドキュメントに載ってたので、何とか噛み砕いてみると……
前述した「ライトマス」に似た機能だそうです。
ライトマスが「動かないオブジェクト」に使うもので、ボリュメトリック ライトマップが「動くオブジェクト」に使うもの……と捉えておけばよさそう。理解しきれないので次行きましょう。
◆World Partition Volume
こちらもまた前提があります。もはやアクタを知ろうとするのは早かったのではないかと疑うレベルで前提知識が多い。
まず「ワールド パーティション」という機能が存在します。こちらは「大きなワールドを管理するために、グリッドセル(一定の長さごとに区切られた範囲)ごとに分割して保存、読込を行う」というもの。うんこれも分からん。
大きなマップを作るときに楽ができる機能、という捉え方で今は置いておこう。しかしまた分からんのが、それがボリュームとして用意されてるという点なんだよね。(ワールド パーティションはアクタではなくレベル(ワールド全体)としての機能っぽいので)
……はい、お手上げです。分からんのでパスします。ごめんなさい。
◆Runtime Virtual Texture Volume
また知らん要素が出てきましたが、ドキュメントに載ってるのでまた頑張って理解してみます。えっとなになに……
まずランタイムとは一般的に「ゲームを実行するときに必要なもの」を指します。んでバーチャル テクスチャは……UE5の機能みたいだね。
バーチャル テクスチャとは「大きなテクスチャを作成して使用する機能」だそうで。オブジェクトにはマテリアルっていう「見た目」を作ったり調整したりする機能があるんだけど、複雑なマテリアルが増えるとゲームが重くなってしまう。なので軽くするために大きなテクスチャとしてまとめる……みたいな感じっぽい。
んで「ランタイム バーチャル テクスチャ」って何なのかというと……そのバーチャルテクスチャを作る手法の1つだそうで。
まとめると「範囲を決めて、バーチャルテクスチャを作る手法の1つを行う」というのがこのボリュームっぽい。うーむ分からん。
《今日の勉強まとめ》
・Lightmass Importanceは、ライトマップ(光や影のテクスチャ)を綺麗に作る範囲を設定できる
・Mesh Merge Cullingは、不具合の原因になりやすい三角ポリゴンを潰せる
・Pain Causingは、範囲内でダメージを与えることができる
・Post Processは、後付けでぼかしなどの演出を行える
・Precomputed Visibilityは、範囲内を事前計算することで重さを減らせる
・Precomputed Visibility Overrideは、上記で上手くいかなかった部分を手動で調整、上書きできる
・Triggerは、イベント実行のキッカケを作れる
・Visual Logger Filterは、デバッグの時に見たい情報の範囲を定められる(多分)
・Volumetric Lightmap Densityは、ライトマスと違って動くオブジェクトのライトマップを設定する
・World Partitionは、大きなワールドを分割する際に使う(?)
・Runtime Virtual Textureは、オブジェクトの見た目を大きいテクスチャでまとめることで重さを減らせる
という訳で今回も長くなりましたが、これで主なアクタの種類を知ろう編は完了になります。いやはや半分くらい分からんかったね。理解できる日が来ることを祈って勉強を続けていきましょう。
さて次回からはアクタに関する詳細設定を行う部分、「プロパティ」をまた軽く見ていきたいと思ってます。
プロパティの中もまた専門用語だらけなので気が滅入るし、何だったらアクタごとに内容が違うのでどう学んでいけばいいか迷ってるんだけど……まあ何とかなるやろの精神で頑張っていきます。
んじゃ今日はここまで。4500文字も読んでくれてありがとうございました、また次回お会いしましょう!