見出し画像

ラインとそれをフォローするカメラ

今回はCGでよくある延々と生成されるラインと、それに付いてくるカメラを作成します。サンプルはこちら

軌跡を描くラインを作る

Trail CHOPとLimit SOPを使って移動の軌跡をラインとして描くようにします。元になる値は何でも良いのですが今回はNoise CHOPで作って自動的に動き回るようにします。tx、ty、tzをNoise CHOPで作成します。

また、absTime.secondsを使って自動的に値が変化するようにします。このあとにTrail CHOPを繋ぎ、過去の値がストックされていくようにします。

次にLimit SOPに繋いでXYZの各チャンネルにtx,ty,tzを設定するとLimit SOPのウィンドウに線が出てくるようになります。

Output TypeにStripを選択し、太さを調整します。Smooth Flipも0にします。

これで細いラインが描かれるようになりました。

いつものレンダリング

いつものようにレンダリングします。今回はWireFrame Matを使ってワイヤーフレームとして描画させます。

画面真ん中周辺でラインが動いているはずです。振れ幅が少し寂しいのでNoise CHOPのAmplitudeを調整して画面いっぱいにラインが動くようにしておきましょう。

カメラが見る位置をラインの先端にする

作られているラインの先端を常にカメラの中心にするようにします。
Trim CHOPでラインの最新の座標の情報だけを抜き出します。

抜き出したらNull COMP(レンダリングされない透明なオブジェクト)を作り、Null COMPのtx,ty,tzにリンクさせます。

あとはこのNull COMPをCamera COMPのLook Atの項目で参照させるだけです。

これでカメラは常にラインの最先端部分をターゲットとして中央に捉えるように追うことができるようになりました。

カメラをラインに沿って移動させる

ターゲットだけでなく、カメラ自体も移動するようにしていきましょう。基本はさきほどのターゲットと同様、Trim CHOPを使います。ただし、ターゲットとカメラが同じ座標だと表示がおかしくなる可能性が高いので、カメラは少し遅れて付いてくるようにします。今回はラインを構成する点のうち、真ん中あたりに常にカメラが居るようにします。

あとはこのtx,ty,tzをCamera COMPのtx,ty,tzをリンクさせるだけです。

これで、カメラが常にラインの先端を見ながら追いかけるようになりました。

おまけ

待っ暗くて何もない空間だとカメラで追っていても判りづらいので、Grid SOPを等を使って地面を作ってみると、カメラが激しく動いているのがより分かりやすくなります。

また、今の状態だとカメラの中心には常にラインの先端がぴったりと映っているのですが、Null COMP側のTrim CHOPの後にLag CHOPを挟むことで適度にターゲットが中心からずれたりする、ターゲットが激しく動くとカメラが遅れてターゲットを向くようにすることができます。


この記事が気に入ったらサポートをしてみませんか?