ブログの女の子を作る #110 ダンスを踊るキャラの周りでカメラを回す【Unity】
前の記事で体と服のテクスチャ画像を描いたので、今回は動作確認を兼ねてブレイクダンスとバレエを踊ります。
カメラはキャラの回りを移動してるので、いろんな角度から確認できますね。
開発環境
・Blender 3.0.0
・Unity 2021.3.0f1(HDRP 12.1.6)
・CPU:AMD Ryzen 7 3700X
・グラボ:ASUS ROG-STRIX-RTX2060S-O8G-GAMING
いろんな角度からダンスを撮る
今回はいろんな角度から撮ってみます。
4つの VirtualCamera を使う
Cinemachine の VirtualCamera を4つ使いました。
それぞれのカメラをTimeline上でつなげることで、滑らかな撮影ができるようになります。
基本的な使い方は以前の記事と同じですよ。
Orbital Transposer でキャラの周りから撮る
ブレイクダンス(キック系)してる時は、キャラの周りをぐるっと回りこむようにカメラを動かしたいですね。
今回は Orbital Transposer を使うことにしました。
これを使うと、対象を中心にした円周上でカメラを動かすことができます。
主な設定なこんな感じです。
- Follow:追随したい対象物のオブジェクト
- Look At:カメラを向ける対象物のオブジェクト
- Body:Orbital Transposer を選択
- Binding Mode:Lock To Target With World Up を選択
- Follow Offset:カメラの角度を調整する
- X Axis:円周上のカメラの位置(角度)
- Aim:Composer を選択
X Axis はスクリプトで制御する
あとは、X Axis の数値を変更すればカメラが動きます。
以下のようなスクリプトを作りました。
using UnityEngine; using Cinemachine; public class CameraRoll : MonoBehaviour { [SerializeField] CinemachineVirtualCamera cmViewCamera; CinemachineOrbitalTransposer cmOrbitalTransposer; [SerializeField] float xAxisSpeed; [SerializeField] float followOffsetSpeed; bool onRoll = false; void Start() { cmOrbitalTransposer = cmViewCamera.GetCinemachineComponent<CinemachineOrbitalTransposer>(); } void Update() { if (onRoll) { cmOrbitalTransposer.m_XAxis.Value += xAxisSpeed; cmOrbitalTransposer.m_FollowOffset.y += followOffsetSpeed; } } public void On_Roll() { onRoll = true; } public void Off_Roll() { onRoll = false; } }
CinemachineOrbitalTransposer のコンポーネントを取得して、m_XAxis と m_FollowOffset を少しずつ増やしているだけですね。
SerializeFieldで定義してるので、それぞれの値はUnity Editor側で入力(1 と -0.0025)してますよ。
このスクリプトは「2番目のカメラ」に切り替わった時に実行したいので、Timeline に Signal Track を設定して、トラックの最初に On_Roll()、最後に Off_Roll() を実行しています。
若干面倒ですが、今回はこの方法で。
もっと複雑な動きをさせたい場合はドリー(Tracked Dolly)を使うのが良いですね。
動画で確認する
動画で確認しておきましょう。
キック系のブレイクダンスとバレエを踊る女の子ですhttps://t.co/FFYMBZigkT#blender #b3d #Unity #MagicaCloth pic.twitter.com/rne9AOoz4S
— だーしゅ (@amaotolog) September 20, 2022
良い感じですね。
まとめ
ダンスで踊っているところを4台の VirtualCamera で撮ってみました。
カメラを動かすと、動きがある動画が作れて面白いですね。
コメント
トラックバックは利用できません。
コメント (0)
この記事へのコメントはありません。