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

関連記事

OpenVDB:3Dボリュームデータ処理ライブラリ

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

C#で使える遺伝的アルゴリズムライブラリ『GeneticSh...

顔のモデリング

Pix2Pix:CGANによる画像変換

インターフェイスは世界を規定する

自前Shaderの件 解決しました

OpenCVの顔検出過程を可視化した動画

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

Paul Debevec

mentalrayのSubsurface Scatterin...

Ambient Occlusionを解析的に求める

ZBrushトレーニング

UnityでLight Shaftを表現する

SONY製のニューラルネットワークライブラリ『NNabla』

ZBrushでアヴァン・ガメラを作ってみる 腕の作り込み

OpenCVで顔のランドマークを検出する『Facemark ...

WordPressのサーバ引っ越し方法を考える

ZBrushで仮面ライダー3号を造る 仮面編 リファレンス画...

リニアアクチュエータ

東京オリンピックと案内表示

ZBrushで人型クリーチャー

色んな三面図があるサイト

Google製オープンソース機械学習ライブラリ『Tensor...

ゴジラ三昧

Kaolin:3Dディープラーニング用のPyTorchライブ...

AndroidもopenGLも初心者さ (でもJavaは知っ...

プログラムによる景観の自動生成

UnityユーザーがUnreal Engineの使い方を学ぶ...

ZBrushの作業環境を見直す

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

Houdiniのライセンスの種類

3D Gaussian Splatting:リアルタイム描画...

アニゴジ関連情報

フリーのUV展開ツール Roadkill UV Tool

オープンソースの物理ベースGIレンダラ『appleseed』

ディープラーニング

Stanford Bunny

UnityのTransformクラスについて調べてみた

OpenMVSのサンプルを動かしてみる

「ベンジャミン·バトン数奇な人生」でどうやってCGの顔を作っ...

WordPress on Windows Azure

コメント