UnityのGameObjectの向きをScriptで制御する

オブジェクトの向きを、あるルールに従って制御したいような場合に使える方法。

基本的にGameObjectTransformを使う。Transformの持つforward, right, upがそれぞれX(), Y(), Z()の各軸みたいに対応している。
Transform

forward: ワールド座標系でのtransformの青軸。
right: ワールド座標系でのtransformの赤軸。
up: ワールド座標系でのtransformの緑軸。

これらは読み取り用として以下のように、使うこともできるけど、

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void Example() {
        rigidbody.velocity = transform.forward * 10;
    }
}

例えば、以下のような感じで、transform.upの値を毎フレーム更新することで、常に一定の方向を向き続けさせることができる。
この例では、GameObjectがどんなに動いても、絶対に上下がひっくり返ったりしないようになる。

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    void Update() {
        this.GameObject.transform.up = new Vector3(0, 1, 0);
    }
}

その他、transform.LookAtを使うと、特定の位置座標を注視するように向きを制御することができる。

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    public Transform target;
    void Update() {
        transform.LookAt(target);
    }
}

これでカメラが常に1つのオブジェクトをフレームに捉えるような実装ができる。
この方法は、向きを数値入力でなく、他のオブジェクトとの位置関係で制御できるので操作がGUI上で直観的に行えるのでお勧め。

関連記事

openMVGをWindows10 Visual Studi...

Web経由でRaspberry PiのGPIOを操作したい

3Dグラフィックスの入門書

ZBrushで仮面ライダー3号を造る 仮面編

粘土をこねるようなスカルプトモデリング

BlenderのGeometry Nodeで遊ぶ

ZBrushのハードサーフェイス用ブラシ

SONYの自律型エンタテインメントロボット『aibo』

mentalrayのSubsurface Scatterin...

ZBrushでゴジラ2001を作ってみる 身体のアタリを作る

Google Chromecast

Unityで画面タッチ・ジェスチャ入力を扱う無料Asset『...

GAN (Generative Adversarial Ne...

HerokuでMEAN stack

書籍『開田裕治 怪獣イラストテクニック』

ZBrushで仮面ライダーBLACK SUNを作る 頭部~バ...

ZBrushでアヴァン・ガメラを作ってみる 全体のバランス調...

SVM (Support Vector Machine)

ZBrush 4R7

Cartographer:オープンソースのSLAMライブラリ

ブラウザ操作自動化ツール『Selenium』を試す

ポリゴンジオメトリ処理ライブラリ『pmp-library (...

Maya には3 種類のシェーダSDKがある?

Unityからkonashiをコントロールする

Iterator

COLMAP:オープンソースのSfM・MVSツール

ZBrushでゴジラ2001を作ってみる 頭の概形作り

WinSCP

機械学習手法『Random Forest』

PythonのHTML・XMLパーサー『BeautifulS...

SIGGRAPH ASIAのマスコット

UnityでLight Shaftを表現する

ZBrush4新機能ハイライト 3DCG CAMP 2010

ZBrush 2021.6のMesh from Mask機能...

ZBrushで仮面ライダー3号を造る 仮面編 PolyGro...

単純に遊びに行くのはだめなのか?

ZBrushのUndo Historyをカメラ固定で動画化す...

BlenderのPython環境にPyTorchをインストー...

ZBrushでアヴァン・ガメラを作ってみる 頭頂部の作り込み...

1枚の画像からマテリアルを作成できる無料ツール『Materi...

ZBrushでアヴァン・ガメラを作ってみる 頭頂部と首周りを...

OpenCV 3.1から追加されたSfMモジュール

コメント