セルルック向け!カメラ位置に応じた変形をさせてみよう!

よくアニメ系の3DCGで課題とされることです。

カメラの角度によってかなーり可愛くない・・・
特に下からキャラクターを見上げた時がヤバい!

この問題を解決していきましょう!

管理人がYouTubeで解説!

RBF補間で解決しよう!

RBFとは、Radial Baisis Functionの略となります。
放射基底関数と呼ばれるものです。

シンプルにいうと、「ある特定の状態になった時、ある条件を発動できる!」そんなものです。
本ブログでRBFの解説は省略しますが、詳しく知りたい方は以下のブログがが参考になります。
RBF 補間 (Radial Basis Function Interpolation) の概要と実装 | yuki-koyama’s blog

RBFを使うには?

自前で実装するのは大変です。


以下のような理由があげられます。
1.RBFの数学が難しい。(管理人が数学苦手なのもありますけど・・・)
2.Mayaのカスタムノード作るのが大変!

ただ、それでも自前で実装できるのは価値があります。

アーティストが自前で実装できるようになれば
「数学もMayaのカスタムノードも作れるのか!強い人だ!と思われる可能性はありますね。

プログラマだったら「ふーん・・・そう。」かもしれませんけど…。

brave rabbitのweightDriverを使おう!

リガーならお世話になっているかも?brave rabbitからRBFが使えるweightDriverを使いましょう。
こちらは無料でダウンロードでき、ソースコードも紹介されています。

まずは動きをweightDriverで確認し、自前で実装する…といった流れが良いかもしれませんね。

weightDriver | brave rabbit

ドライバーの計算方法

顔の変形を行う場合に、顔の空間で処理を行うことが多いです。
LocalActorPosition(Transform)を顔の骨と仮定すると、その値はローカルとなるのでワールド空間の値に変形します。
pointMatrixMultノードを使ってワールドに変換しています。

最後にその2つのベクトルの差のベクトル情報を利用したものをドライバーとして利用します。

まとめ

カメラ位置で補正よりも、注目すべき技術はRBFですね。
RBFはかなり汎用的に使えます。Pose Space DeformationするならRBF!ってくらいです。

是非、使い方をマスターして最高のデフォーメーションを目指しましょう!

関連記事

  1. スキンウェイトをレイヤー管理するテクニック

    2021-06-25

  2. Dashスクリプトで等間隔&ランダム配置

    2022-10-13

  3. アーティストのためのMaya Python入門 第17回「スキンウェイトのコピーをPythonで自動化してみよう!」

    2020-11-13

  4. 再帰関数を使って末端ジョイントを取得しよう!

    2021-01-08

コメントをお待ちしています。

コメント

ABOUT

テクニカルアーティストの為のまとめサイトです。

本サイトでは、『YouTube ✕ Blog』を中心に
情報発信をしていきます。

また、テクニカルアーティストとしての様々な
ライフハック記事も投稿予定です。

限定情報会員

PATREONでは、限定情報やサンプルファイルの配布も行っています。登録頂けると更新頑張れます。支援の方よろしくお願いします。


免責事項

本ウェブサイト内で公開している全ての情報の有用性や安全性については当方は一切の保証を与えるものではありません。
利用したことによって引き起こる直接および間接的な損害に対して当方は一切責任を負うものではありません。
全て自己責任でご使用ください。

3DCGBOOK出版

BOOTHで技術書を販売利しております。







スポンサー

ページ上部へ戻る