LoginSignup
0
0

More than 3 years have passed since last update.

Unity上でPlayボタンを押すとオブジェクトのAlbedoが変わるスクリプト

Posted at

やりたいこと

Fusion360で作成したオブジェクトと、Substance Painterで3DペイントしたテクスチャをUnityに取り込んで、Playボタンを押すとテクスチャが適用されるスクリプトを作成します。

流れ

  1. Fusion360でオブジェクトを作成して、FBXでエクスポートする
  2. RizomUVでUV展開する
  3. Substance Painterで3Dペイントして、Unity用にエクスポートする
  4. Unityでオブジェクトとテクスチャをインポートする
  5. Albedoを適用するスクリプトを作成する ← 今回の投稿の対象
  6. スクリプトとオブジェクトを紐づける ← 今回の投稿の対象
  7. スクリプトとテクスチャ画像を紐づける ← 今回の投稿の対象
  8. 実行ボタンを押すと、オブジェクトのAlbedoが変更される ← 今回の投稿の対象
  9. 実行ボタンを押すと、Albedoが変わる ← 今回の投稿の対象

詳細

3Dモデルやテクスチャの取込方法については、以下の投稿を参考にしてください。
Substance PainterでエクスポートしたテクスチャをUnityに取り込む

5. Albedoを適用するスクリプトを作成する

Hierarchyウィンドウの取り込んだオブジェクトをクリックし、InspectorウィンドウのAdd Component -> New Scriptを選択します。名称をtexture_changeに変更し、Create & addをクリックします。スクリプトが生成されました。
image.png

Assets内に生成されたスクリプトtexture_changeをダブルクリックし、Visual Studioを起動、以下のソースに変更し、保存します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class texture_change : MonoBehaviour
{
    // Start is called before the first frame update
    // スクリプトから画像を扱う場合に Texture または Spriteという形式に変換する必要がある
    // クラス変数として Texture型のクラス変数 wood_dark_AlbedoTransparencyを定義する
    public Texture wood_dark_AlbedoTransparency;

    void Start()
    {
        GetComponent<Renderer>().material.mainTexture = wood_dark_AlbedoTransparency;
    }

    // Update is called once per frame
    void Update()
    {

    }
}

6. スクリプトとオブジェクトを紐づける

5で作成したスクリプトを3Dオブジェクトに関連付け(アタッチ)します。スクリプトを選択し、3Dオブジェクト(この例ではBody1)にドラッグ&ドロップします。
image.png

7. スクリプトとテクスチャ画像を紐づける

Unityでは変数のアクセス修飾子をpublicにすると、インスペクター上で変数の紐づけを行うことができます。
Hierarchyウィンドウのスクリプトを紐づけた3Dオブジェクト(この例ではBody1)をクリックします。
Inspetorウィンドウを見ると、スクリプトに記載した変数が表示されています。変数の右の丸をクリックし、表示したいAlbedo画像を選択します。
image.png
image.png

8. 実行ボタンを押すと、オブジェクトのAlbedoが変更される

image.png

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0