要約
Boolean Modifier を適用したオブジェクトにモーションブラーを掛ける場合は、どのオブジェクトにキーフレームを打つべきかに注意すること。Boolean の対象となるオブジェクトではなく、Boolean Modifier を適用したオブジェクトそのものに対して位置や回転のキーフレームを打つと、それっぽいモーションブラーが適用されやすい。
はじめに
cycles ではレイトレーシングを行っていますが、モーションブラーが適用されている場合は、レイごとに異なる時刻を持ちます。
しかし、レイごとに Boolean Modifier を計算することは、計算量的に不可能です。このため、レイ単位ではなくフレーム単位(※)で Boolean Modifier を計算します。
(※Blender においてフレーム単位ではなくサブフレーム単位でモディファイアスタックを計算できるという記述は見つけられませんでしたが、原理上は有り得るかもしれません。)
このため、 Boolean Modifier を使用すると、モーションブラーが正しく適用されない場合があります。
An object modifier setup that changes mesh topology over time can not render deformation motion blur correctly. Deformation blur should be disabled for such objects. Common examples of this are animated Booleans, (略)
Object – Blender 4.5 LTS Manual
Boolean Modifier とモーションブラー
実際のところは、 Boolean Modidier が適用されたオブジェクトに対するオブジェクトモーションブラーのみが適用されるということになります。
また、全ての頂点に対して、オブジェクトトランスフォームの変化率は一様になります。下図の Boolean Modifier on B を見ると、本来は動いていないはずの右側のエッジに対しても、モーションブラーが掛かっていることが分かります。(※回転などのキーフレーム含んでいる場合があるため、ブラーの長さが必ず一定になるという意味ではありません。)
Boolean Modifier の計算順序(推測)
そもそもの話として Boolean Modifier (に限らず Geometry Nodes などを含めたモディファイアスタック) は、オブジェクトのローカル座標で計算されます。このため、他のオブジェクトと Boolean の計算を行うためには逆行列を掛ける必要があり、 Blender ではこれを行っているものと推測されます。
Boolean Modifier の後に Geometry Nodes を追加し、 Spreadsheet を確認すると、頂点座標がローカル座標になっていることが確認できます。
この計算フローの最後のオブジェクトトランスフォームに対して、モーションブラーが適用されるため、このような見た目になったのだと考えると、合点がいきます。
モーションブラーの種類
ここで、 Blender におけるモーションブラーの種類を確認しておきます。モーションブラーにはいくつかの種類があります。そのうち、 2 つについて紹介します。
Object Motion Blur
オブジェクトのトランスフォームがそのままモーションブラーになるものです。メッシュの変形はできません。
Deformation Motion Blur
シェイプキーやアーマチュアなどで、メッシュそのものが変形するようなオブジェクトに対するモーションブラーです。
また、 Geometry Nodes でも Set ID を使って頂点の対応関係を明示してあげることで、モーションブラーを実現できるようです。(未確認)
一方で、 Blender 4.5 の Boolean Modifier では利用できることは確認できませんでした。
表題の解決策:シェイプキー、アーマチュア
Boolean はモデリングの過程で使用されることが多く、Boolean 対象の形状が劇的に時間変化することは少ないので、オブジェクト全体に一様に掛かるモーションブラーでも問題ないことは多いでしょう。
オブジェクトや Geometry Nodes のインスタンスに対して、一様に掛かるモーションブラーを掛けたい場合は、オブジェクトやインスタンスのトランスフォーム(位置など)が変化する側のオブジェクトに、 Boolean Modifier を適用することが重要です。
しかし、それでは問題がある場合に、モーションブラーの問題を解決するためには、まずオブジェクトスケールのアニメーションが思いつきます。スケールの中心を片方のエッジにすれば、もう一方のエッジのみにモーションブラーが付きます。
しかし、それよりも複雑な変形を行いたい場合は、シェイプキーやアーマチュアが使用できます。これらの変形はオブジェクトの頂点数やトポロジーを変化させず、モーションブラーを破綻なく描画することができます。
また、 Geometry Nodes では Set ID ノードが使用できます。この方法でも、モーションブラーを描画できるようです。
試しに、シェイプキーで上記と同様のモーションブラーを作成して、実際に実現可能であることを確認しました。下記の画像を見ると、 Shape Key の例では、直方体の片方の面のみにブラーが掛かり、もう一方の面にはブラーが掛かっていないことが分かります。




