チュートリアル - PlayCanvasで作った3Dブラウザゲームにリッチな演出を追加する -2

ここで紹介するのは、PlayCanvasの３Dハンズオン用のチュートリアル資料です。
[**"チュートリアル - PlayCanvasで作った3Dブラウザゲームにリッチな演出を追加する"**](https://support.playcanvas.jp/hc/ja/sections/360006055613-%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB-PlayCanvas%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%9F3D%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%82%B2%E3%83%BC%E3%83%A0%E3%81%AB%E3%83%AA%E3%83%83%E3%83%81%E3%81%AA%E6%BC%94%E5%87%BA%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B)からアクセスできます。
#Materialを適用していく
![PC_material.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/931599b1-dfbd-054e-a3ee-93c805dbe324.png)
シーン(SCENE)に配置されているオブジェクトを見ると、地面、UFOとタンクの一部のマテリアルが未設定のため真っ白です。これから各MATERIALを設定していきます。
左側のHIERARCHYから"tank"→"tank_cannon"を選択します。(＋をクリックすると格納されているHIERARCHYが展開されます)
右側のENTITYに"tank_cannon"の設定が表示されます。
ENTITYのMODEL内の"画像"をクリック。
![PC_material_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/6477dd61-51f5-6b7c-a8a9-f0db2e974f51.png)
画像をクリックするとオブジェクトに適用されているマテリアル一覧が出ます。重複しているマテリアルがありますが、これは3Dソフト側でオブジェクトを作成した際に、メッシュ単位でマテリアルを適用しているためです。
例えば、顔と体が独立したメッシュで、それらを選択し、fbxに変換したものをPlayCanvasにインポートすると、1つのオブジェクトに複数のメッシュ(Mesh Instances)がある状態になります。
設定していくマテリアルは赤枠の"tank_Material"です。クリックするとMATERIALの各項目が出てきます。
![PC_material_6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/ab90bf6d-ed75-97b8-8a5e-8c025b71a5c7.png)
ASSETS欄の中の”texture”フォルダをクリック。このシーンで使用されているテクスチャが入っています。
![PC_material_7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/83029f86-4ba8-3270-39f4-dbde75710b34.png)
MATERIALの各項目は何も設定されていません。![PC_material_8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/63632661-9ca6-91e5-d257-1f2b3aac8b55.png)

##DIFFUSE(カラー)
![PC_material_8_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/0f42ccc7-4701-dfa0-831f-4ec3780aabe6.png)
DEFUSSEに"body.png"を適用しました。この段階では金属や革の質感、環境光の効果が確認できません。

##SPECULAR/Glossiness(光沢)
![PC_material_8_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/4187594c-4ced-0406-5f82-7a29bb8b1111.png)
Glossinessを100%に上げてみると、光沢感と環境光が反映されますが、ポリゴン形状に沿った効果なので、全体的にツルツルした感じです。

##SPECULAR/Metalness&Glossiness(メタル光沢)
![PC_material_8_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/56ef6f01-3f38-22be-2dda-61649456c5b8.png)
Use Metalnessに☑を入れ、"body_metalness.png"を適用、Glossinessには”body_glossiness.png”を適用しました。Metalnessで鈍いメタルな質感を出し、Glossinessで革や窓などの光沢が必要無いマットな部分と差別化しています。
##OPACITY(透過)
![PC_material_8_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/3f03fdf4-7e4e-759f-77b1-43d27c9db6e0.png)
窓部分を半透明にします。透過したい部分のテクスチャを黒#000000~で透過されます。また、透過方法にはいくつかのブレンドタイプがあります。
![PC_material_8_7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/cdc3ef35-b91b-958f-5c8d-6ade3547c162.png)
##NORMAL(法線マップ)
![PC_material_8_5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/1aa03b7e-d8b3-a5fb-00d3-2f373f59a57a.png)
疑似的な凹凸を追加します。Bumpinessで0～2で高低差を調整。
##AO(アンビエントクルージョン)
![PC_material_8_6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/a4433916-61f1-bd8d-14f8-dea72a4efa22.png)

光の遮蔽部分を追加。Occiudse Specularで投影タイプを選択できます。
基本的な効果としては以上です。ここからは、さらに特殊な効果を見ていきます。
##EMISSIVE(自己発光)
![PC_material_8_8 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/6e913aa1-9954-c8da-d8e1-9c883b41f620.png)
発光させたい部分のカラー情報を持ったテクスチャを適用。今回はラインやマーク部分に使用。
##ENVIRONMENT(環境マップ)
![PC_material_8_9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/fea0ffbb-8b0b-3230-25d9-e961b3026a8b.png)
マテリアル個別に環境マップを適用できます。ワールドに適用されている環境マップより優先的に描画されます。※Environmentはワールド環境への設定が個別にあり、後半で作成/設定方法を解説します。
##PARALAX(視差マッピング)
キャラクターに入れると効果が分かりにくいので、地面のマテリアルを設定しながら見ていきます。
###DIFFUSE
カラー情報のみ
![feild1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/e285e660-2493-ca5a-6173-feec13558291.png)
###NORMAL
法線マップ。疑似的な凹凸が出ました。
![feild2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/25713ad0-dcad-3012-0474-4699725af726.png)
###PARALAX
normalmapは法線方向に凹凸を作るのに対して、paralaxは白黒を高低差(ハイトマップ)として疑似的に凹凸を作ります。
![feild3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341892/e83e8171-44bc-98dc-711e-038e1a473a59.png)

これで、テクスチャとマテリアルの設定は終了です。次はParticl Systemを使って幾つかのエフェクトを作成していきます。