Blender2.8で作成した3DオブジェクトをUnityにインポートします。

動作環境

  • Windows 10 Pro
  • Unity 2018.4.10f1
  • Blender 2.83

Blenderによる3Dオブジェクトの作成

Blender 2.8でモデリングする 」を参考にして、Blender 2.83でメガネのモデリングを行います。作成したメガネを次に示します。

Blenderの3Dオブジェクトのエクスポート

メニューから、「ファイル」→「エクスポート」→「FBX」の順にクリックすると次のダイアログが表示されます。「オブジェクトタイプ」の「カメラ」「ランプ」以外を選択して、「FBXをエクスポート」ボタンを押します(「選択したオブジェクト」はチェックしません)。作成したマテリアルもエクスポートできました。

Unityへの3Dオブジェクトのインポート

エクスポートしたFBXファイルをUnityのAsettsにドラッグ&ドロッブし、その後Sceneにドラッグ&ドロッブします。インポートしたUnity画面を次に示します。それぞれにメガネのオブジェクトが設定され、メインカメラから作成したメガネのオブジェクトが見えます。

マウスの動きで3Dオブジェクトを移動

インポートした3Dオブジェクト(メガネ)を、マウスの動きで移動するスクリプトを次に示します。このスクリプトをSceneに表示されているGlassesに貼り付けます。

GlassesBehaviour.cs

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

public class GlassesBehaviour : MonoBehaviour
{
    // 位置座標
    private Vector3 position;
    // スクリーン座標をワールド座標に変換した位置座標
    private Vector3 screenToWorldPointPosition;
    // Use this for initialization

    // Start is called before the first frame update
    void Start()
    {
        this.transform.localScale = new Vector3(2, 2, 2);
    }

    // Update is called once per frame
    void Update()
    {
        // Vector3でマウス位置座標を取得する
        position = Input.mousePosition;
        // Z軸修正
        position.z = 10f;
        // マウス位置座標をスクリーン座標からワールド座標に変換する
        screenToWorldPointPosition = Camera.main.ScreenToWorldPoint(position);
        // ワールド座標に変換されたマウス座標を代入
        gameObject.transform.position = screenToWorldPointPosition;
    }
}

ゲーム実行中の動画を次に示します。マウスの動きに合わせて、作成したオブジェクトが移動します。