Version: Unity 6.0 (6000.0)
言語 : 日本語
テクスチャの準備
テクスチャタイプ

テクスチャの概要

通常、メッシュジオメトリはオブジェクトの大雑把な形状を示しているのみで、細部の描写のほとんどは__テクスチャ__によって表されます。テクスチャとは一般的なビットマップ画像で、メッシュの表面に張られています。例えるならば、テクスチャ画像とはゴムのシート上に印刷された物で、メッシュの適切な位置に引き伸ばされ、ピン付けされた状態だと言えます。テクスチャの位置はメッシュの作成に使用した 3D モデリングソフトウェアで指定されます。

木の樹皮の円柱
木の樹皮の円柱

Unity は一般的な画像ファイルからテクスチャをインポートすることができます。

用語

このページでは、以下の用語を使用しています。

  • ビット毎ピクセル (bpp) は、1 つのテクスチャピクセルに必要なストレージの量です。bpp 値が低いテクスチャは、ディスク上およびメモリ上のサイズが小さくなります。また、bpp 値が低いほど、GPU はより多くのピクセルをキャッシュに保存することができ、結果としてテクスチャアクセスが速くなります。
  • LDR (ローダイナミックレンジ) とは、色が概念的に 0.0 (黒) と 1.0 (白) の間の値にある、ほとんどの一般的な画像を指します。多くの画像ファイル (PNG や JPG など) はローダイナミックレンジです。
  • HDR (ハイダイナミックレンジ) とは、色が 0 から 1 よりも高い範囲を持つ特殊な画像とテクスチャ形式を指します。.exr や .hdr といった画像ファイル形式は、しばしば HDR 画像データに使用されます。ランタイムや GPU 上では、いくつかの HDR 形式があり、それぞれ、精度、範囲、メモリ使用量などの長所短所があります。
  • RGB は、赤、緑、青の 3 色を組み合わせて色の配列を再現するカラーモデルです。
  • RGBA はアルファチャンネルを持つ RGB の一種で、ブレンドと不透明度の変更が可能です。
  • 可変ビットレート (VBR) は、ピクセルあたりのビット数が固定値ではなく、実際のコンテンツに依存することを意味します。VBR は Crunch 圧縮にのみ、そしてディスク上のテクスチャサイズにのみ適用されます。メモリ内のサイズは、基礎となるテクスチャ形式を使用する場合と同じです (例えば、RGB Crunched DXT1 のための RGB Compressed DXT1)。

3D モデルで使用するテクスチャ

テクスチャは マテリアル を通してオブジェクトに適用されます。マテリアルは シェーダー と呼ばれるグラフィック用の特別なプログラムを使用して、メッシュ表面にテクスチャを描画します。シェーダーは、物体表面の光沢や凹凸などをシミュレートするための、ライティングとカラーリングの効果を実装することができます。また、一度に 2 枚以上のテクスチャを使用し、組み合わせることでさらなる柔軟性を持たせることができます。

テクスチャを作成するときは、2 の累乗にあたる長さとすべきです (例えば 32x32、64x64、128x128、256x256、等)。プロジェクトの Assets フォルダーに配置するだけで十分で、それにより Project ウィンドウに表示されます。

インポートされたテクスチャは マテリアル に割り当てることができます。マテリアルは次にメッシュや__パーティクルシステム、または GUI テクスチャ__などに適用することができます。__インポート設定__では、ゲームでの使用方法に応じて__キューブマップ__や__法線マップ__などに設定する事もできます。テクスチャインポートの詳細については、テクスチャコンポーネント を参照してください。

2D グラフィックス

2D ゲームでは、__スプライト__は、オブジェクトの形に似せた平らなメッシュに適用されるテクスチャを使って実装されます。

3D 視点のスプライト
3D 視点のスプライト

2D ゲーム内のオブジェクトには、アニメーションフレームを表現するため、またはキャラクターのいろいろな状態を表現するために、関連性のあるグラフィックイメージのセットが必要です。これらのグラフィックイメージのセットを作成し、効率的にレンダリングすることを可能にする特別な技術があります。詳細は スプライトエディター を参照してください。

GUI

ゲームの_グラフィックスユーザーインターフェース_ (GUI) は、ゲームシーンで直接使用されないグラフィックスで構成されますが、プレイヤーが選択したり情報を見たりできるようにするためのものです。例えば、スコア表示やオプションメニューはゲームの GUI の典型例です。これらのグラフィックスは、メッシュサーフェスのディテールに使用されるものとは明らかに異なりますが、標準の Unity テクスチャを使用してハンドルされます。Unity の GUI システムの詳細については、GUI スクリプティングガイド のマニュアルの章を参照してください。

パーティクル

メッシュは立体のオブジェクトを表すのには理想的ですが、魔法に使われるような炎、煙、閃光などの表現にはあまり向いていません。このタイプのエフェクトをより良く表現するには__パーティクルシステム__が適しています。_パーティクル_とは基本的に煙雲のように形が固まっていない、ガス状の小さな 2D グラフィックの集合体です。多くのパーティクルを同時に生成、その動きを設定、任意でランダムなバリエーションを追加することで利便性の高いエフェクトを生成できます。例えば、爆発を表現するには炎のテクスチャを持つパーティクルを中心点から高速で外側に送り出します。滝はシーンの高いところから水のパーティクルを下方向へ加速させることで表現できます。

パーティクルシステム
パーティクルシステム

Unity のパーティクルシステムは多くの種類の流動的なエフェクトを作るために豊富なオプションを持っています。詳細は パーティクルシステム の項目を参照してください。

異方性フィルタリング

異方性フィルタリングは、グレージング角から表示されたときに、テクスチャの品質を向上させます。このレンダリングはグラフィックスカードのリソースに負荷をかけます。異方性のレベルを上げると、通常、地面と床のテクスチャの画質を向上させます。Quality 設定では、異方性フィルタリングをすべてのテクスチャに強制的に実行するか、完全に無効に設定します。ただし、テクスチャの Aniso levelTexture Import Settings で 0 に設定されている場合は、強制された異方性フィルタリングはこのテクスチャには表示されません。

異方性フィルタリングを使った地面のテクスチャ {No anisotropy (left) | Maximum anisotropy (right)}

追加リソース

テクスチャの準備
テクスチャタイプ