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; } }
ゲーム実行中の動画を次に示します。マウスの動きに合わせて、作成したオブジェクトが移動します。