Cinema4Dメモ

Cinema4Dという3DCGソフトに関するメモ書きです。

Pythonスクリプト「AnimCamScript」の存在価値が根底から揺さぶられる

2015-04-23 13:53:39 | Python & Cinema4D

そういうわけで、自作のPythonスクリプトは

AnimCamScript.py

に置いてあります。よかったらどうぞお試し下さい。

「Ctrl + E」で「一般設定」フォルダを開いて、開いたウィンドウの「一般設定フォルダを開く」ボタンを押し、「library]

→「scripts」の中にスクリプトを保存します。

そしたらスクリプトマネージャを開き、「開く」で開いたウィンドウからAnimCamScript.pyを選んで開いて下さい。そして実行すればいいです。

一回スクリプトマネージャから開くと、次からは「ユーザスクリプト」から選択して実行できるようになるようです。

複数のカメラの位置、角度、焦点距離を一つのカメラのキーフレームに格納します。

CameraGroupという名前(全角ではダメ)のヌルを作って、その中にレンダリングしたいカメラを入れます。

そしてカメラを新規で一個作り、そのカメラを選択した状態でスクリプトを実行します。

なんでこのスクリプトをPythonスクリプトの勉強までして作ったかというと、複数のカメラを一つにまとめて「カメラアニメーションです」ってことにしてしまえば、GIを使ったレンダリングで、GIのキャッシュファイルを複数のカメラで使いまわせるんじゃないかと思ったんです。結論から言うと、うまく出来ているような気がします。ただし、キャッシュファイルを使いまわすためだったら、別にカメラアニメーションにする必要もなかったです。よーく観察すると、フツーにカメラ切り替えても既存のキャッシュを使って綺麗にレンダリングしてるし・・・

※そもそもなんでそんなことを考えたかというと、あるカメラで室内をGIでレンダリングして、その時のGIキャッシュを使って次に違うカメラで違う方向をレンダリングしたら、最初のレンダリング時に写っていた部分は綺麗だけど、写っていなかった部分は汚かったという事があった(これは後で「カスタムサンプル数」にしてサンプル数を増やしたらあっけなく解消しましたが)からです。最初のカメラに写っている範囲しかGIのデータが作られてないの?と思ったわけで。でも複数のカメラをまとめてカメラアニメーションですってことにすれば、全部のフレームで見えている場所はGIの計算をしてくれるだろうと思ったわけ(ライトマップの「カメラパスを使う」ってオプションはまさにそれだと思うんですが)。

しかも!ステージオブジェクトを使うと、同じことが出来ます!

https://www.youtube.com/watch?v=9AHS5y6avSg

とほほ!まぁ勉強になったからいいか(泣)


コメントを投稿