[再現] Unity3Dインポート画像の属性情報とデフォルトのシェーダーの紹介

このブログ投稿は、https//www.jianshu.com/p/e2aa4d898fb7から複製されています

著者:きらめく


画像

Unity3Dは、ほとんどのビットマップ形式を画像素材として使用することをサポートしています.psdレイヤーやレイヤー効果のあるファイルフォーマットすることできます。

ただし、実際の使用では、ユニバーサル以外のファイル形式を直接使用することはお勧めしません。これは、どの形式の画像素材でも、Unity3Dはインポート時に自動的に変換プロセスを実行するためです。非ユニバーサル形式に直面している場合は、対応するサードパーティのソフトウェア関数を呼び出して変換を実行するため、実際の変換プロセスはまた、一部の特殊なファイル形式では、対応するソフトウェアがインストールされていないと、まったく認識されません。

したがって、PSを使用して画像素材を.pngフォーマット(ロスレスおよびスモール)として保存してから.pngフォーマットファイルを画像素材として使用することをお勧めします

プロジェクトパネルで画像を選択すると、画像変換に対応するパラメータオプションがインスペクタに表示されます(別のテクスチャタイプを選択すると、他のオプションがわずかに異なることに注意してください)。

unity_image_01.png

 

unity_image_02.png

  • Texture Type:テクスチャの種類を選択してください
  • Texture Shape:ありますが、ここでは表示領域に設けられプレビューがあり、マップ形式を選択2Dし、Cube選択されたこの伝説の2種類が2D、それは、2Dゲームの材料であるため、
  • Advanced:詳細オプション(省略)
  • Alpha Source:透過チャネルのソースを選択します
  • Wrap Mode:テクスチャリピートラッピング方法を変更しますRepeat。これはClamp連続的に繰り返されることを意味します。つまり、モデルUVが(0,1)象限にない場合、テクスチャはアタッチされず、マテリアルのデフォルトカラーのみが表示
  • Filter Mode:通常、チャネルデータのフィルタリング方法が選択されBilinearますが、ハイダイナミックカラーマップ(hdr)の場合は、選択する必要があります。Point (no filter)

さまざまな種類のテクスチャ:

unity_image_03.png

  • Defaultカラーマップである通常タイプとして
  • Normal map法線マップとして使用されます。法線マップはこのタイプとして指定する必要があります。指定しないと、レンダリングが正しくありません。
  • Editor GUI and Legacy GUI
  • Sprite「スプライト」として使用されます。2Dスプライトは特殊な画像表示方法であり、画像が歪んだり、光を受けたりせず、切断可能な特性も備えています。通常、2DゲームのUI要素またはマテリアルとして使用されます。
  • Cursorゲーム内のマウスの形状を置き換えるために使用されます
  • Cookie
  • Lightmapライトベイクされたテクスチャとして使用されます。以前にベイクされたテクスチャを直接インポートして使用したい場合があるため、このタイプを選択する必要があります。
  • Single Channelこれはシングルチャンネル画像です。このタイプのテクスチャ変換後、アルファチャンネル情報のみが保持されます。

下の列は、テクスチャサイズとテクスチャ圧縮オプションについてです。

unity_image_04.png

  • Max Size変換後のテクスチャの可能な最大サイズを表します。テクスチャ自体のサイズがこのサイズよりも小さい場合、テクスチャは拡大されませんが、テクスチャ自体のサイズがこのサイズよりも大きい場合は、に縮小されます。このサイズ;
  • Compression圧縮品質を選択します。高、中、低の3つのグレードがあります。
  • Format(少し)

最も重要なことは、すべての設定を完了した後、Applyボタンをクリックして設定を適用する必要があるということです。そうしないと、無駄になります。その横にあるRevertボタンで、設定パラメータを変更前の状態に戻すことができます。

普通の絵素材

通常の画像素材のDefault種類を選択できます一部の非常に小さいテクスチャの場合、Max Sizeプロパティを設定するのが最善であることに注意してください。これにより、システムリソースが節約されます。

スプライトタイプの素材

スプライトタイプはスプライトタイプとも呼ばれ、主にUI、パーティクル、2Dゲームなどで使用されます。

画像をスプライトタイプに設定すると、次のような特徴があります。まず、画像が圧縮されないため、JPEG画像の色の歪みが発生しません。次に、画像を複数のスプライトに分割できます。

Unity3D 2017は、Spriteの9つの正方形のグリッドセグメンテーション機能のサポートを追加しました。いわゆるジュゴンゲセグメンテーションとは、画像を3 * 3の方法で9つの部分に分割することを指します。画像をズームすると、異なる部分が異なる変更を受け、四隅の4つの部分(上部中央と下部)は変更されません。中央の2つの部分が水平方向に繰り返され(タイル)、左中央と右中央の2つの部分が垂直方向に繰り返され(タイル)、中央の部分が水平方向と垂直方向に一緒に繰り返されます(タイル)。この方法は、2Dゲームの地面、壁、ドア、窓での使用に非常に適しています。

法線マップの処理

法線マップはNormal maptypeに設定する必要があります。そうしないと、正しく認識されません。

HDR素材の処理

HDR素材は別途設定する必要があります。通常、スカイボールのテクスチャで使用されます。
HDRマテリアルで最も重要なことは、16ビットの色深度または32ビットの色深度に設定することです。そうしないと、エンジンが自動的に8ビットの色深度の通常のテクスチャに処理し、ハイダイナミックカラー情報が失われます。


シェーダー

シェーダーとマテリアルの違い

3Dソフトウェアを使用したことのある学生は、マテリアルの概念に精通しています。Mayaでは「マテリアルボール」と呼び、英語名は「マテリアル」です。しかし、Unity3D(および他の多くのゲームエンジン)では、通常、「マテリアル」はマテリアルではなくシェーダーを指すために使用されるため、ここでは、違いを示すために「シェーダー」と呼ばれる特別な中国名をシェーダーに付けました。

シェーダーは書かれたマテリアルスクリプトであり、シェーダーのコンパイル結果はさまざまな異なるマテリアルとして表示されます。多くのゲームは、より無料で最適化された独自のシェーダーを作成しますが、この機能はありません。システムによって提供されるデフォルトのシェーダーを使用するか、他の人が作成したシェーダーをダウンロードして使用することしかできません。

自分で作成したシェーダーを機能させるには、アセットフォルダーに配置する必要があります。プロジェクトパネルをクリックするCreateか、直接右クリックして、さまざまなタイプのシェーダーリソースを作成することを選択できます。

unity_shader_01.png

シェーダーに書き込まれた設定に従って、シェーダーはマテリアル設定オプションのShaderドロップダウンボックスに表示されます。たとえば、上の図のNewSurfaceShaderは[カスタム]列に表示されます。

組み込みの一般的に使用されるシェーダーの使用

組み込みのシェーダーが多すぎて、すべてが頻繁に使用されるわけではないため、ここでは各シェーダーで何ができるかについては詳しく説明せず、最も一般的に使用される基本的なカテゴリのみを紹介します。

  • Standardシェーダーのタイプは、Mayaで使用したシェーダーに最も近いものです。初心者の便宜のために、このシェーダーを使用してすべてのマテリアルを作成できます。
  • Mobileこのカテゴリのシェーダーは、その名前が示すように、モバイルプラットフォーム向けのゲームを作成するときに使用されるシェーダーであり、このカテゴリのシェーダーは基本的にさまざまな目的をカバーできます。
  • Natureこのカテゴリのシェーダーは、主にUnity3D独自のツリータイプオブジェクト用に用意されており、一部の特別な属性は、ツリーオブジェクトの表示専用です。通常、ツリーを作成するときに、対応するマテリアルが自動的に割り当てられます。初心者は、シェーダーのタイプとパラメーターを無差別に変更しないでください。
    同様に、ParticlesカテゴリのシェーダーはUnity3D独自のパーティクルシステム用に準備され、SkyboxカテゴリのシェーダーはUnity3Dの自動スカイボックス機能用に準備されています。スプライトはスプライトパッチ用で、UIはUIオブジェクトマッピング用です。、VR VR用です(使い方がわかりません)。
  • Unlitこのカテゴリのシェーダーはすべて、いわゆる「ライトなし」シェーダーです。つまり、ライトはこのタイプのマテリアルに影響を与えません。

主にパフォーマンスの最適化を考慮して、非常に多くのカテゴリに分類されます。たとえば、標準シェーダーはもちろん、消灯シェーダーをシミュレートするために使用できますが、消灯シェーダーを使用すると、間違いなく多くの計算が削減されます。


材料

マテリアルは、シェーダーに基づくパラメータファイルと見なすことができます。また、アセットディレクトリにサフィックス名を付けて手動で作成する必要があります.mat

Mayaシェーダは.maフォーマットファイルと一緒にUnity3Dインポートできます(ただし、真剣に推奨されていません)。

実際、Unity3DはMayaシェーダーの関連パラメーターを自動的に識別し、これ.mat基づいてStadard Shaderに基づいて新しいファイルを作成し、変換されたモデルに割り当てました。したがって、実際には、新しいマテリアルの効果がMayaの場合と同じであるとは限りません。結局、2つのソフトウェアで使用されるレンダリング方法は大きく異なります。

したがって、モデルをインポートした後、自分でマテリアルを作成し、手動で指定することをお勧めします。自動変換されたマテリアルを使用しない場合は、混乱を避けるために削除することをお勧めします。

したがって、Unity3Dでモデルにマテリアルを追加する一般的なプロセスは次のとおりです。

  1. 組み込みのシェーダーを使用していない場合は、最初にシェーダーリソースをダウンロードしてUnity3Dにインポートするか、ビジュアルシェーダープラグイン(Shader Forgeなど)を使用してシェーダーを作成する必要があります。
  2. Unity3Dで新しいマテリアルを作成し、モデルにアタッチします。
  3. このマテリアルを選択し、適切なシェーダーを指定します(Assetsディレクトリ内のすべての有効なシェーダーがマテリアルのシェーダー選択リストに自動的にロードされます)。
  4. マテリアルのさまざまなパラメータを変更し、さまざまなテクスチャを指定します

インスペクターの下部にあるプレビューウィンドウでマテリアルをプレビューでき、右上のモデルボタンでさまざまなプレビューモデル(ブロック、ボール、リング、片面など)を切り替えることができます。

一般的なシェーダーパラメーター

標準:

unity_material_standard.png

  • Albedoこれは色です。テクスチャリソースをプロジェクトパネルから前面の小さな正方形にドラッグして、テクスチャを追加できます。テクスチャは、後続の色設定と乗算されて、最終的な効果になります(つまり、色が乗算されます)。テクスチャの色に)
  • Metallicメタリックなテクスチャであり、値が大きいほど、自然な色(テクスチャの色×色の値)に向かって反射色が多くなります。
  • Smoothness滑らかさは、値が高いほど、表面が滑らかになり、ハイライトがより集中し、反射がより鮮明になります。
  • Sourceこれは透明チャンネルのソースです。アルベドマップの透明チャンネルを使用するか、メタリックマップの透明チャンネルを使用するかを選択できます。
  • Normal Map法線マップです
  • Height Map高低差チャートです
  • OcclusionAOCCの効果をシミュレートするテクスチャです。
  • Detail Maskこれは、ディテールマスクのレイヤーを表面に重ねるときに使用されるテクスチャです。
  • Emissionチェックとは、マテリアルが「自発光」であることを意味し、ライトの色、ライトマップ、およびライト強度を指定するための追加のColorパラメータがあります。強度は1以上に設定できます。これは、非常に明るいオブジェクトであることを意味します。自己照明材料は、ライトベーキングの結果に影響を与えます
  • Tilingテクスチャの繰り返し回数です
  • Offsetテクスチャの変位ですか
  • Secondary Maps二次詳細マップを追加することが可能です。オブジェクトがカメラに非常に近い場合、二次詳細マップを表示するように自動的に切り替わります。
    • Detail Slbedo ×2これは二次詳細カラーマップです。元のテクスチャの2倍のサイズになるように作成することをお勧めします。
    • Normal Map二次詳細法線マップです
  • Tiling同上
  • Offset同上
  • UV SetUVグループを選択することです

標準(スペキュラーセットアップ)とスタンダードの唯一の違いは、属性のSpecular代わりMetallicスペキュラーセットアップを使用してハイライトを設定することです。これにより、カラーマップの色とは異なるハイライトカラーを取得できます。

unity_material_standard2.png

モバイル/バンプスペキュラー:

unity_material_mobile_specular.png

モバイルシェーダーははるかに単純で、最も基本的なパラメーターのみがあることがわかります。

  • Shininess:輝度
  • Base (RGB) Gloss (A):ここでは、テクスチャのRGBチャンネルが色として使用され、Aチャンネルがハイライトマップとして使用されます。
  • Normalmap:法線マップ

消灯/テクスチャ:

unity_material_unlit_texture.png

Unlitタイプのシェーダーはさらに単純で、テクスチャパラメーターのみがあります。Unlit / Colorはよりシンプルで、カラーパラメータは1つだけです。Unlit / Transparentは、テクスチャのAチャネルを認識し、それを透明テクスチャとして使用できます。Unlit/ Transparent Cutoutはそれに似ていますが、透明テクスチャの処理方法が異なります。これにより、半透明領域が完全に透明または完全に不透明になります。 。

おすすめ

転載: blog.csdn.net/Mr_Sun88/article/details/91357420