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上で直観的に行えるのでお勧め。

関連記事

リニアアクチュエータ

Dlib:C++の機械学習ライブラリ

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

OpenCVで平均顔を作るチュートリアル

参考になりそうなサイト

2D→3D復元技術で使われる用語まとめ

UnityプロジェクトをGitHubで管理する

マジョーラ

生物の骨格

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

デザインのリファイン再び

UnityからROSを利用できる『ROS#』

Point Cloud Utils:Pythonで3D点群・...

Kornia:微分可能なコンピュータービジョンライブラリ

After Effects全エフェクトの解説(6.5)

BlenderでPhotogrammetryできるアドオン

ラクガキの立体化 胴体の追加

MPFB2:Blenderの人体モデリングアドオン

ポイントクラウドコンソーシアム

布のモデリング

『PIXARのひみつ展』に行ってきた

リメイク版ロボコップスーツのメイキング

ミニ四駆を赤外線制御したりUnityと連携したり

OpenCV 3.1のsfmモジュールを試す

ZBrushでアヴァン・ガメラを作ってみる 下アゴの付け根を...

ラクガキの立体化 分割ラインの変更・バランス調整

ZBrush 2018へのアップグレード

シフトカーを改造してラジコン化する人達

UnityでOpenCVを使うには?

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

Maya LTのQuick Rigを試す

JavaによるCGプログラミング入門サイト (日本語)

この本読むよ

ニンテンドー3DSのGPU PICA200

ZBrushでアヴァン・ガメラを作ってみる 下アゴと頭部を作...

SIGGRAPH 2020はオンライン開催

ZBrushCore

TVML (TV program Making langua...

Structure from Motion (多視点画像から...

AnacondaとTensorFlowをインストールしてVi...

Physics Forests:機械学習で流体シミュレーショ...

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

コメント