« C4D 前回の被写界深度のテストで、どうやら… | トップページ | C4D 背景画像に合成する為のカメラ調整のPhotoMatch…それ以外のプラグインをartist side C4Dコミュで質問してみた… »

C4D シーンモーションブラーとタイムライン

artist side C4Dコミュの被写界深度ネタは終わりにして、次に移ろうと思ったのですが…
公開されているC.O.F.F.E.E.エクスプレッションのスクリプトが、気になり…

ろくにヒロツブログの説明内容も読まずに…
最近の自分自身は、このような行為が多いんですけどね…

Strength...日本語UIだとシーンモーションブラーの「強度」…
それさえ分かれば「0.25」が理解できるだろう…
と、言うか…
どうせなら、C.O.F.F.E.E.でレンダリング設定を取得し、更にモーションブラーの「強度」を取得すれば良いのでは?

どう言うわけだか、うまく取得できない…
ま、今まで通り、手入力で… 勢いダウン…

スクリプトの内容は、前回の記事通りだと思う…
基準位置よりターゲットに向かって指定した半径内を時計回りで7回転の渦巻きにカメラを配置。
スタート位置は12時の位置で最終的に真ん中へ…

イメージ的にはこんな具合だろう…
Motionblur_01_2
これはサンプル数が25…
サンプル数が変わっても7回転の時計回りの渦巻きは変わりません…
サンプルの位置が変わるだけ…

サンプルの分布が中心に偏っているのが気になりますが…

で、今回の記事は、このスクリプトではないので、この辺で…
シーンモーションブラーとタイムラインです。

モーションブラーって…
シャッターが開いている間に被写体が投影平面上で動いて像がぶれる現象だよね…
まぁ、3DCGでは20年以上前から、この効果を取り入れていますが…
アニメーション(動画)の手法で、静止画の作品には、あまり使われていませんでした…
動画を構成する1フレームは…
30fpsならば1/30秒の時間の出来事を記録しています…
CGならば、正にその瞬間の時…なのでブラーは記録できません。
フィルムやビデオなどのカメラだと、シャッターが開いている間… その短い時間とは言え、開いている間ずっと記録しているのだ…
デジタルとアナログの違いだね。

そうすると、CGでモーションブラーを再現するには、1フレームを更に細かく分けてレンダリングして、1フレーム分の画像を重ねていく… と言うだけ…
原始的で単純な処理と…

そうすると…
Motionblur_02

こんな具合だろうか…

1フレームは、1秒をfpsで割った時間…
30fpsならば1フレームは、1/30秒…≒0.0333...秒
モーションブラーの1サンプルは、1フレームをサンプル数で割った時間…
サンプル数が25であるならば、1サンプルは1/25フレームと…≒0.0013...秒

fpsのC.O.F.F.E.E.での取得は、BaseDocument::GetFps()で取得できます。

タイムライン上の現在の時間(秒)を取得したいのであれば…

sec = doc->GetTime()->GetSecond();//ただしdocは現在アクティブなBaseDocument

現在のフレームナンバーを取得するのであれば…

fn = doc->GetTime()->GetFrame(doc->GetFps());//ただしdocは現在アクティブなBaseDocument

それとも…?

fn = doc->GetTime()->GetSecond() * doc->GetFps();//ただしdocは現在アクティブなBaseDocument

このように、現在の時間(秒)にfpsを掛けて算出できますが…
算出するより取得した方が良いと思いますが…どちらも同じですかね…

さて、現在のタイムライン上の時間(秒)は、フレーム間移動だけではなく、モーションブラーのサンプル分割でも変化します。

30fpsで、シーンモーションブラーのサンプル数が25だと…
0.001333...秒づつ変化していきます。
要するに、現在のタイムライン上時間(秒)を先ほどのように取得しても、モーションブラーのサンプルに対応した時間が問題なく取得できます。

sec = doc->GetTime()->GetSecond();//ただしdocは現在アクティブなBaseDocument

さて、ここで注意が必要です。
モーションブラーには、「強度」という項目があります。
「強度」という言葉からは、時間に関するイメージが無いので忘れがちだと思います。
この「強度」は、モーションブラーのブレの強さなのですが、実際にはシャッターが開いている時間なのです。
この、「強度」が50%の時は、1フレーム中の50%の時間、シャッターが開いています。
100%で1フレーム全開で…
本当のカメラでは物理的に無理ですが、400%(4フレーム分)までの数値が使えるようです。

もう気づいたと思いますが、この「強度」は、サンプル画像の重ねる強さではないと言うことです。
Photoshopで言う所の、レイヤーの「不透明度」や「塗り」のパーセンテージではないと言うことです。

どう言う事なのか詳しく言うと、「強度」50%だと、1フレームの50%の0.5フレーム。
この0.5フレームと言う短い時間をサンプル数で割った時間が1サンプルの時間になります。

Motionblur_03

単純に、時間(秒)を取得するだけなら、先ほどの様な取得で問題ありません。
が更に、時間からサンプルナンバーを取得する場合は、「強度」を考慮しなければ、正確な番号は取得できません。

タイムライン上の時間の進み方は…
モーションブラーのサンプルの処理中は、等間隔にタイムラインの時間は進みます。
最後のサンプルを実行した後は、時間は一気に次のフレームに飛びます。

ところで、モーションブラーの「強度」は、マニュアルではどのように説明しているのだろう…

確かに時間に触れていますね…
そう言えば、読んだ記憶があるなぁ…
すっかり忘れていました…

ところで、バージョンアップで、大きな変更に意識がいきますよね…
小さな変更もマニュアルには書いてあったりしますが… 気にも留めてなかったりしますよね…
バージョンアップを繰り返しているうちに、微妙な機能なんだけど便利な機能を知らずに、今まで通りにC4D使ってる事って無いですか?
たまに、マニュアルを読み返す事も必要だと…

てっ、今回の記事は、「モーションブラーとタイムライン上の時間」であって、「たまにはマニュアルを読もう」ではないのですけどね…

そう言えば、前回の被写界深度でアンチエリアスOFFでも、C.O.F.F.E.E.を修正すれば、できそうな…と書きましたが、思うようには行きませんでした…
Dov_coffee_11

半径30
サンプル60
さて、いい加減にして…
「次、行ってみよ~」

そう言えば、自分以外にもartist side C4Dコミュ 被写界深度に反応したと思われる人が…
知っていると思いますがSunnyBoyさん、初心者向けのC4Dチュートリアルムービーを作っている人ですね。
今回は「FOV(被写界深度)」… ムービーの半分はテストシーンの構築で残り後半が被写界深度の設定。
C4Dコミュに反応ではなくて偶然か…?
artist side C4Dコミュが盛り上がると良いんだけど…
StudioMOMOは、残念な状態だしね…
http://3dcgfun.homeunix.com/
ここのチュートは、初心者じゃなくても、お題とは別の所で、「あ、そんな使い方が…」って感じで…参考になる所があります。
参考に1回目を通すと何か得るものがあるかも…

|

« C4D 前回の被写界深度のテストで、どうやら… | トップページ | C4D 背景画像に合成する為のカメラ調整のPhotoMatch…それ以外のプラグインをartist side C4Dコミュで質問してみた… »