【UE5】バーチャルテクスチャとは

【UE5】バーチャルテクスチャとは

■まずはじめに

いまさらながら話になりますが、テクスチャのサムネイルの右下に下図のような【VT】という記号を見たことはないだろうか?(※UE5.4.2を使用しています)

もし見たことがない人は【プロジェクト設定】でバーチャルテクスチャを有効化していないので有効にしましょう。(※右下に再起動を促すダイアログが出てくるので迷わず再起動しましょう)

【編集】→【プロジェクト設定】の
【バーチャルテクスチャのサポートを有効化】にチェックを入れます。

上記の設定を行うと、今後テクスチャをインポートする際に高解像度のテクスチャは自動で有効にされます。(※二行目の【テクスチャインポートの仮想テクスチャを有効化】がONになっている場合自動化されます)
つまり低解像度の場合(2K以上で変換されます)はバーチャルテクスチャに自動で変換しないということなので注意しましょう。

バーチャルテクスチャに変換したい場合はテクスチャをダブルクリックして検索欄に【Virtual】と入力すると容易に探し出せます。

それと、バーチャルテクスチャを使用した際の注意点としてよくある事例は
「用意されたマスターマテリアル1をマテリアルインスタンス2で使用する際にテクスチャが割り当てられない?」ということがよくあります。

マスターマテリアルでノードを構成した際にテクスチャのタイプをバーチャルテクスチャにしていないのが原因となります。(※マスターマテリアルを用意する人と使用する人が違うとよく起きます)

バーチャルテクスチャの場合は左図のように、「Virtual~」と頭にVirtualが付きます。

「あれ?」となることが一番多い事例になるので注意しましょう。

■バーチャルテクスチャって何?

UEで使用可能な技術の一つになり、” Streaming Virtual Texturing ” と” Runtime Virtual Texturing3 ” の二つのタイプがあり、” Streaming Virtual Texturing ”が一番使用するタイプなので、今回はこちらの説明をしていきます。

Streaming Virtual Texturing
 大量の大きなサイズのテクスチャを使用しているときに有効な技術になります。

なぜ有効なのかというと、仕組はこうである。
「テクスチャをピクセル単位で賽の目に分割して使用し、カメラから見えている箇所のみを読み込んで使用する」
「これはミップマップ4でも同様の処理を行っており、CPUだけでなくGPUも使用していっるためメモリの節約ができるようになります!」ということです。

「ん?」てなりましたか?

そりゃそうです。従来と比べての説明が抜けているのだから…。

では、従来はどうだったのか?を説明します。

従来はカメラに映っていようがいまいがテクスチャ一枚を丸ごと読み込んで描画していました。
そのため無駄なメモリを使用することになりメモリ不足という背景表現に多大な影響を与えていました。

ところがこのVTを使用すると、メモリ節約ができるため、いままで二枚までしか使用できなかった表現が四枚・五枚と使用できるようになったということです。

表現できる量が増えるとどうなるでしょうか?

そう!背景のクオリティーがアップするんです!

ですので、バーチャルテクスチャを使用できるということはよいことなんだということを理解いただけたと思います。

では、従来のテクスチャストリーミングと併用して使用できないのでしょうか?

答えは「否」です。ただ、複合することのメリット・デメリットをよく理解しプロジェクトで話し合って決めましょう。ただ昨今の開発では品質の向上が求められており、特に背景は画面を占める割合が高いため従来の方法では限界があるということを念頭に入れておいたほうが良いです。

「勝手に使用する開発は三流」
「使用する理由もなく従来のままで行う開発は二流」
「新し技術を検証し、ルールを決めて取り入れる開発は一流」

ですので、皆さんの開発に知見を蓄積していきましょう。

  1. 親となるマテリアルで開くとノードで構成されたマテリアルです。 ↩︎
  2. サムネイルのマスターマテリアルを右クリックすると【マテリアルインスタンスを作成】という項目があるので、選択すると同階層に生成されます。これはマスターマテリアルで構築されたマテリアルをベースにして変更可能なところのみを調整することが可能なものになります。 ↩︎
  3. リアルタイム処理の一つとして、別々のアセットの設置部分をなじませることができます。 ↩︎
  4. ミップマップとは、カメラから遠くの部分で使用されているテクスチャの解像度を低解像度で使用するためのマップ ↩︎
コメントは受け付けていません。