日本でハリウッドVFXを制作! 「経産省アイディアボックス」 結果:  
●まとめエントリはこちら ●FAQ ●お問い合わせは左のメールフォームから

2009年11月13日金曜日

ランプ・テクスチャーを使ったコントロール

<2009年11月17日改訂 ブレンドシェイプ・ウェイト値のペイントについて詳細を追加>

Ramp テクスチャーを使ったコントロールができれば、いろいろなところに使えると、前々から考えていたが、今回、機会があったので、ここ2~3日ほど、チャレンジしていた。

もともとは、この考えを思いついたのは、ブレンドシェイプのウェイトをアニメートするときの不便さからだ。
AからBの形状に変化するブレンドシェイプを作成したのだが、全体が同じスピードに変化するのではなく、端から徐々に変化していってほしかった。

ブレンドシェイプには、ウェイトをペイントできる機能があるが、これにキーフレームを打つことができる。

操作は、
Animate >Set Blend Shape Target Weight Keysで対象のオブジェクトのブレンドシェイプがにキーが打てるようにする。
そして、Paint Blend Shape Weights ToolのTargetで対象となるオブジェクト名を選択し、ペイントする。
そのとき、Key Selected Target Weightsボタンをクリックすれば、キーフレームが打たれる。


しかしながら、実際にはキーフレームをうった時点で、ペイントされた各バーテックスごとに「animCurve」が接続され、そこに各キーフレームの位置でのウェイト値が保存される。
テクスチャーとして保存されているわけではない。
ちなみに、それら一群の「animCurve」のアウトプットは「BlendShapeノード」に接続されている。

なめらかな変化をだすにはそのキーフレームを手作業で操作するか、細かにペイントしながらキーを打つ必要があるし、それでもなめらかにするのは難しい。

「Paint Blend Shape Weights Tool」にはウェイト値をテクスチャーとしてエクスポート/インポートする機能がある。
自分で試したわけではないが、これでは、シーケンスの画像として保存するには各フレーム毎にエクスポートしてやる必要があるし、読み込み後には各フレーム毎にキーを打ってやる必要がでてくると思われる。

どの方法をとるにしても、細かな変更に即座に対応することはできない。


Rampを白と黒のグレイスケールで作り、それぞれのカラーハンドルの位置をキーフレームでアニメーションすれば、非常にシンプルになり、変更も簡単になるのではないかと思った。


これを最初の構想の足がかりとして、いろいろ使えそうなMelコマンドを調べ、なんとか形にしようと奮闘していたが、結果的には自分で完了さえることはできなかった。


ただ、基本的な構想は自分のアイデアだし、主なスクリプトの手順も自分のアイデアが採用されている。
そして、できたものも今のところ自由度は低いが、今回のショットには十分満足のいくものだった。

スクリプティングは完了できなかったが、発想や、アルゴリズムを考える力が身についてきたことがうれしい。
そして、それが他の人にも認められたことは、とても自分にとって意義がある。


うれしいことに、ランプテクスチャーを使ったコントロールとして始めたが、どのようなテクスチャーでもインプットとして使用できる。

そして、テクスチャーから取得された情報は、今回はウェイト値のコントロールに使ったが、
他にどのようなものにも渡すことができる。
オブジェクトの回転や、移動、スケールなどもテクスチャーでコントロール可能ということだ。

以前から考えていた、鳥の羽を自動で作成するようなスクリプトもこれを利用することが出来そうだ。

 

0 件のコメント:

コメントを投稿