イラスト、モデリング、Unity、VR関連

unityとかblenderとかvr関連の作業メモ

ocurasgo コントローラの先端から直線を描写する

*コントローラは杖に置き換えてます

前提状態

f:id:arumogina:20190301165459p:plain

TrackedRemoteに以下のスクリプトをアタッチする

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

public class ShowLine : MonoBehaviour
{
    // Start is called before the first frame update
    private GameObject wand_line;
    private LineRenderer m_lr;
    void Start()
    {
      wand_line = new GameObject ("wand_line");
      m_lr = wand_line.AddComponent<LineRenderer>();
    }

    // Update is called once per frame
    void Update()
    {
      m_lr.SetVertexCount(2);
      m_lr.startWidth = 0.01f;
      m_lr.endWidth = 0.01f;
      Vector3 wand_p = gameObject.transform.position;
      Vector3 st_p = wand_p + gameObject.transform.forward*0.6f;
      Vector3 end_p = wand_p + gameObject.transform.forward*5;
      m_lr.SetPosition (0, st_p);
      m_lr.SetPosition (1, end_p);
    }
}   

コントローラとなるオブジェクトを回転させてる場合は、transform.forwardを適宜、downやrightなど伸ばしたい方向に伸びるように調整する

なぜか分からないがwandにアタッチすると直線の始点が下方向にずれてしまう

=>オブジェクトのpositionはローカル座標における原点となる。Blenderで杖のモデルを見てみたら高さのある位置に置かれていたのがずれる原因だった。

というか、指定位置から直線を伸ばすだけならスクリプトを使わずヒエラルキーに設定した方が明示的で良い。この場合、オブジェクトの原点から直線が伸びるので、杖先が原点の位置になるようにするとよい。

f:id:arumogina:20190302020425p:plain

f:id:arumogina:20190301222641p:plain



ocurasgoの開発関連ー未整理情報

++ocurasgoではタグが機能しない?

 if(obj.gameObject.tag == "WandLine")

 if(obj.gameObject.CompereTag("WandLine"))

というようなコードを書いたのだが、unity上で実行した場合は機能するのに、ocurasgo上で実行したら機能せず、ブロック内のコードが実行されない。

OnTriggerEnter内でのコードだがトリガーが機能してることは確認した。

 

++OcurasGoはbuild and runで正常にビルド出来ていれば、adb install等はなしでocuras go上でアプリが実行される

 

++インストールしたパッケージのアンストール

adb shell pm list package | find "xxx"

でパッケージ検索

adb uninstall xxx

で削除

 

 

 

Unityでゲーム開発していて思ったことなど

++不要アセットはそもそもインポートしない方がいい

この記事を読んでもUnityはビルド時に不要なアセットを除去してくれる、という便利な機能はない。使用してないアセットを削除すると唄ってるツールもあるが、必要なアセットまで削除してしまったりとあまりうまくいかない。一度インポートしてから削除するのはかなり面倒なので、必要なものだけインポートするほうがいい。

今更誰も教えてくれない、Unityにおけるリソース読み込みについての基礎知識 - Qiita

blender 使用したテクスチャをまとめて抽出する

ファイル=>外部データ=>全て.blendにパック

ファイル=>外部データ=>ファイルにすべてパック解除

を実行。保存場所は現在のディレクトリにでも保存しておく。

blenderで建物を作ってみたときの教訓

++建物を作るときはパーツとなるメッシュを作成したらテクスチャを張って流用すべし。

今まで、キャラを作ってるときは全体のメッシュ完成=>テクスチャ作成という方法でやっていたのだが、建物は同じパーツを流用することが多いので、パーツをテクスチャまで完成させてからやった方がいい。全体をメッシュレベルで完成させたあとでテクスチャを貼ろうとすると、同じパーツなのに、メッシュによってテクスチャの向きの調整が必要になったりしてかなり面倒くさい。