オブジェクトの向きを、あるルールに従って制御したいような場合に使える方法。
基本的にGameObjectのTransformを使う。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上で直観的に行えるのでお勧め。
関連記事
pythonの機械学習ライブラリ『scikit-learn』
Faster R-CNN:ディープラーニングによる一般物体検...
書籍『3次元コンピュータビジョン計算ハンドブック』を購入
サンプルコードにも間違いはある?
Transformers ”Reference & Buli...
参考書
Maya には3 種類のシェーダSDKがある?
3Dグラフィックスの入門書
Mask R-CNN:ディープラーニングによる一般物体検出・...
MFnDataとMFnAttribute
ラクガキの立体化 モールドの追加
書籍『OpenCV 3 プログラミングブック』を購入
Maya API Reference
映像ビジネスの未来
Dlib:C++の機械学習ライブラリ
AndroidもopenGLも初心者さ (でもJavaは知っ...
OpenCV 3.1のsfmモジュールのビルド再び
UnityでOpenCVを使うには?
「ベンジャミン·バトン数奇な人生」でどうやってCGの顔を作っ...
ガメラ生誕50周年
Physically Based Rendering
ブログのデザイン変えました
Google製オープンソース機械学習ライブラリ『Tensor...
OpenCVで平均顔を作るチュートリアル
ブラウザ操作自動化ツール『Selenium』を試す
SIGGRAPH Asia
映画『ジュラシック・ワールド』のVFXメイキング
テスト
MeshLab:3Dオブジェクトの確認・変換に便利なフリーウ...
Pix2Pix:CGANによる画像変換
NeRF (Neural Radiance Fields):...
HerokuでMEAN stack
ZBrushで仮面ライダー3号を造る 仮面編 DynaMes...
PythonでBlenderのAdd-on開発
HD画質の無駄遣い その2
3Dスキャンに基づくプロシージャルフェイシャルアニメーション
ArUco:OpenCVベースのコンパクトなARライブラリ
Kornia:微分可能なコンピュータービジョンライブラリ
Zibra Liquids:Unity向け流体シミュレーショ...
ZBrushでアヴァン・ガメラを作ってみる 歯を配置
生物の骨格
Cartographer:オープンソースのSLAMライブラリ

コメント