Category Archives: CG

[redshift render]solving noise texture artifact

0
Filed under 3dsmax, CG

When expressing the surface of a metal, very small noise texture may be used.
If the size of the object relative to the screen is small, the noise texture on the surface is minimized. When animating it, it may appear as noise.
This phenomenon does not solve even if the reflection sample value of the texture is increased.
Improvement can be improved by setting Unified Sampling Max samples around 24 and Adaptive error threshhold value around 0.005.
Randomize pattern on each frame remains on.

金属の表面を表現するとき、とても小さなノイズテクスチャを用いることがあります。
スクリーンに対するオブジェクトのサイズが小さい場合、表面のノイズテクスチャが極小になります。アニメーションすると、ノイズとなって現れることがあります。
この現象は、テスクチャのreflection sample値を高くしても解決しません。
Unified SamplingのMax samplesを24付近、Adaptive error threshhold値を0.005付近にすることで改善されます。
Randomize pattern on each frameはオンのまま。

セルシス「QUMARION」のレビュー

1
Filed under 3dsmax, CG
Tagged as

(株)セルシスの人型モーションキャプチャーデバイス「QUMARION」の先行プレビューに選ばれましたので、3dsMax用のモーションキャプチャープラグインのレビューを行います。

先行プレビューには「CLIP STUDIO ACTION」という専用のキャプチャーソフトが付属していますが、ユーザーがそう多くないと思われる3dsMax用プラグインに焦点を当ててレビューを行います。プレビュー版にはこのほかにMaya用のプラグインも付属しています。

環境はWindows7-64bit+Autodesk 3dsMax2012日本語版と、プラグインは「QumarionPlugin_20120615_Max修正版」と使用してテストをしました。

取説によると、このプラグインは、QUMARIONのポーズをMaxのプラグインであるbipedやCAT、および標準ボーンなどの動きにアサインしキーフレームアニメーションを作成出来るとされています。

 

■インストール

まず付属のCDからプラグインをインストール。その後、USBケーブルでQUMARIONとPCを接続しMaxを起動します。

fig01.QUMARION Motion Captureパネル

ユーティリティーパネルの「その他」の中から「QUMARION Motion Capture」を選択すると上記パネルが出てきます。

 

■初期設定

まず何もないシーンにbipedを一体作っておきます。コンパネからBone Settingを選ぶと下記のパネルが出てきます。ここでQUMARIONにbipedをアサインします。

fig02.Bone Setting画面

アサインは1.背骨~頭、2.左腕、3.右腕、4.左足、5.右足というボーンの各チェインを選択するシンプルな制御です。

髪の毛などの制御用に頭のボーンにさらに子が付いているモデルなどはうまくチェインを判別できないようで、髪の毛を頭として認識してしまいます。

シンプルで設定しやすいのですが、既存の複雑なモデルに適用するのは難しそうなので、標準のbipedに近い構造にしたもので一旦モーキャプを行い、bipedやBVHなどのモーションデーターで書き出した後、再度目的のモデルにインポートする方が簡単です。

 

「姿勢合わせ」というで腕の開きの初期状態を調節出来ます。

fig03.姿勢合わせ画面

プレビュー版ということで、姿勢合わせの際のボーン表示にバグがあるようですが、これは製品版では修正されるとのことでした。

BipedやCATは標準状態で腕を閉じているので、初期設定はこちらに合わせた方が良いのではないかと感じました。

標準ボーンマッピングを指定するウィンドウのビューポートのマウスでの移動方法がmaxと違うのでやりにくいと感じました。

極端にサイズが大きなbipedなどがある場合にボーンマッピングの指定が難しいです。

 

■ボーンマッピング後の動作

fig04.左はアサイン後、右はbipedの初期状態

QUMARIONの直立状態+Bipedの初期状態でマッピングを行うと、鎖骨の角度が異常に上がってしまうのと腕全体が後ろにずれてしまうので、マッピングする前にBipedの初期状態をオフセットすることで対応しました。

fig05.ボーンをオフセットさせた状態

QUMARIONの関節角度が画面内での角度と一致していないと感じる部分がありましたが、これは製品版では改善される予定とのこと。

 

これで初期設定は完了です。

 

■モーションのキャプチャ

マッピングが終了するとコントロールパネルのCaputre Startがアクティブになるのでこれを押すとリアルタイムでQUMARIONのポーズがbipedに反映されます。

反応速度はまったく問題ありません、快適です。

加速度センサーによって傾きが反映されてしまうので本体の固定は必須のようです。

プレビュー版には付属していませんが、固定用スタンドは必須に感じました。

また四肢を動かす際に必ず本体全体の重心が移動してしまうのと、足の間接が弱く、かがんだ状態を維持できないので、写真のように空中での固定が理想的に感じました。(写真はマイク用のスタンドで固定しています。動作させずらかったので腰回りのパーツを外しています。)

fig06.QUMARIONの固定

 

fig07.ポージング

QUMARIONには加速度センサーが付いており、自機の傾きを検出出来ますが、部分的なキャプチャーの際はこれが邪魔になることの方が多いので、CLIP STUDIO ACTIONと同じようにソフト側での加速度センサーをオフにする機能も是非欲しいところです。(加速度センサーのOn/OFFは製品版では機能するとのことでした。)

 

■キーフレームアニメーション

この状態でキャラクターにアニメーションを付けてゆきます。

当初、各関節のリアルタイムの動きをキャプチャーできればキャラクターアニメーションにかなり便利だなと思っていたのですが、どうやらそうではなく、スチルカメラのように任意のポーズで各フレームごとにポージングし、それをフレームごとに登録してゆくという方法でした。ちょうどクレイアニメのような感覚です。

ここまで完成度の高い入力デバイスなのでリアルタイムでのキャプチャーに是非対応してほしいと感じました。

動作環境やPCのスペックにもよると思いますが、画面表示ではほぼリアルタイムに動きをキャプチャーしているようなので今後のソフトウェアアップデートに期待します。

また欲を言えば、0.5倍速などの遅めレートでキャプチャーできるとかなり良い感じだと思います。

 

キーフレームの作成の手順としては、QUMARION側のCapture Startをオンにした状態で、タイムスライダを動かしながらbipedにどんどんキーを打ってゆく感じです。

アニメーションのタイミングはあとで調整すると割り切って、各動作の最大点になるポーズをキャプチャしてゆきます。

また手だけ、とか足だけのように部分的にキャプチャーしたい場合は、その部位のボーンのみを選択した状態でキーを打つことで、他の部分に影響をあたえずに取り込めます。

 

fig08.ポーズを変えながらキーフレームを打ち込む

人間の関節の可能範囲はほぼ網羅しているので出来ない動きはほとんど無いように感じます。

おおよそのポーズは1分もかからず出来上がるので、手動で整えてゆくよりかなり早いです。ダンスのような大きな動きがあるものには非常に有効だと思いました。

ただ当たり前ですが、両手を合わせたり、手を体に這わせたりといった微妙な動作には向きません。

大きな動きをQUMARIONで取り込み、それを手動で加工してゆくというのが製作における王道だと感じました。

 

■まとめ

今回先行プレビューということでこのQUMARIONを使用させていただき大変良い機会をいただけたと思います。

CLIP STUDIO ACTIONの方もさわってみましたが、基本は同じで、足の自動接地、加速度センサーのみのオフなどの便利な機能がありました。

キーフレームの編集のしやすさ、視点の移動などは、私自身が慣れているせいかMax上での作業の方が数段楽でした。

現在自分の作品でキャラクターアニメーションを製作中ですが、QUMARIONを使用してポーズを取らせてみたいと思っています。

 

透明度マップのレンダリングへの反映

0
Filed under 3dsmax, CG
Tagged as

透明度マップなどを設定したオブジェクトをレンダリングする際に、透明度がアルファやZ-バッファなどに反映されないが、このプラグインを使うとちゃんと反映されるようになる。

G-バッファのオブジェクト/マテリアルIDにもちゃんと反映される。本来は標準機能で付けるべきだと思うんだけど・・・・

http://lastjedioutpost.ru/?p=ky_gcorrector

レンダリング>効果から設定する。

3dsmaxのカメラアニメーションをAfterEffectsにインポートする

0
Filed under AfterEffects, CG

Maxでつけたカメラの動きをAEに持ってくる時に使用する。

カメラだけじゃなくてあらゆるオブジェクトの位置をエクスポート出来る。

「AE_Position_Exporter」

http://www.scriptspot.com/3ds-max/scripts/after-effects-animated-position-exporter

http://aarondabelow.com/max_scripts/AEX_v1.0.zip

かなり古いスクリプトのようだが、max2012でも動作を確認出来た。

Maxのスクリプトフォルダに入れてメニューから起動すると、

このようなウィンドウが表示される。

 

 

 

 

アニメーションしていないときはStatic Position、アニメーションの場合はその下のAnimated Positionを使う。

書き出したいフレームを指定して、「Export Animated Position」を押すと、位置情報が書かれたtxtが生成される。(Max上でテキストファイルがオープンされるが、一旦閉じて、保存された生のtxtをテキストエディタなどで開き直した方が良い)それを丸ごとコピペして、AEのキーフレームにペーストする。

これをカメラ本体とターゲット、2回行うことで、カメラの動きを同期出来る。

あくまで位置情報のみなので、カメラのレンズサイズなどは手動で同じ値に設定しなければならない。

 

この手のスクリプトは複数あるが、試した限りではどれもターゲットカメラのエクスポートにしか対応していなく、カメラの回転情報がエクスポート出来ない。

そこでフリーカメラの場合は、ちょっと細工をする。

まずダミーオブジェクトを作りカメラにリンク。位置、回転の位置合わせを行い、ローカル軸上で適当にカメラから離した位置に移動させてやる。そのダミーの位置情報を上記のスクリプトで取得して、AEの2ノードカメラの目標点の位置情報としてインポートすれば良い。要するに逆ターゲットカメラのようにしてダミーによって強制的に位置情報を取得するかんじ。

 

【3dsmax2012】metalrayのレンダリング設定-スピード検証

0
Filed under CG
Tagged as

レンダリングが重すぎるのでmentalrayの設定を色々検証してみた結果。

全ての設定を理解しているわけではないのでスピードに関係しそうなパラメーターを弄ってみた。

 

 

 

 

 

あるシーンを設定を変えてレンダリングしてみた。

【基本設定】11:55秒

【レンダラー->レンダリングアルゴリズム】スキャンライン->オン/高速ラスタライザを使用->オン 33:16秒

【レンダラー->レンダリングアルゴリズム】「BSP」に設定 11:55秒 / 「BSP2」に設定 12:04秒

【レンダラー->レンダリングアルゴリズム】「反射を使用可能にする」をオフ 04:57秒

【間接光->ファイナルギャザー】「トレース深度」を0に設定 10:50 /5に設定 11:55秒

【間接光->ファイナルギャザー】「トレース深度->フォールオフを使用」0~800に設定 11:58秒 / 0~200に設定 11:33秒

 

という結果になった。

以外なのはスキャンラインをオンにしたときで、レイトレースがキャンセルされる部分があるので少しは早くなるかとおもっていたら、結果はまったく逆だった。

反射の計算をオフにしたりすればかなり早くなるが、現実的な数値として考えると、デフォルト設定でのレンダリング時間から大幅に短縮できる方法は発見出来なかった。

ちなみにFG精度のプリセットは中~低でやっているが、今のところ見た目にはまったく問題ないのでこのままいく。

【3dsmax2012】エリアライトのシャドウがぱらつく時(フリッカー)

0
Filed under CG
Tagged as

アニメーション中で、シャドウが1フレームだけ薄くなったり、無くなってしまったりする場合は、

影響していると思われるライトのエリアライトパラメーターのサンプル数を上げる。

標準U=5/V=5->U=10/V=10にしたら直った。

可動が制限されたIKソルバ

0
Filed under CG
Tagged as

ロボットアームのような、一連のボーンの中で可動軸が制限されているような動きをしたいときは、IKソルバではなくHD IKソルバでやる。

ちなみに、ロボットアームのようなメッシュが変形しないオブジェクトの場合は、いちいちボーンを仕込まなくても、

ボーンツール->ボーンをオン

の後、

表示タブ->リンクを表示

でボーン化出来る。知らなかった。超便利。

3dsmaxから出力されるZ-depthチャンネル

0
Filed under CG
Tagged as

今まで気づいていなかったのだが、

RenderElement以外から出力されるZ-depthは、カメラに写りこんでいるものだけを各フレームで計測しているようで、例えば全面に一つのオブジェクトが飛び込んでくるようなシーンでは、各フレームで深度が変化してしまう。(Mentalrayだけ?かも)

遠景のオブジェクトについても同様。

ようするにDynamicじゃなくてRelativeで各フレームを計算している。

これを回避するにはZ深度チャンネル出力で最大/最少の値を設定できるRenderElementからの出力しかないようだ。

最大最少値はmaxの内部単位なので、ビューポートでカメラと最遠景に位置するオブジェクト間を計測して値を入れてやればいい。

本当は、RPFで1ファイルに全てのチャンネルを埋め込んで運用したかったんだけど、しょうがないのでZ-depthだけ別ファイルでやるしかない。

そもそも同じ情報の出力に関して、複数の方法があるっていうのが意味わからんね。しかもRelativeでz-depth使うことなんて普通ないだろJK

Maxはそろそろ一から作り直した方がいいんじゃない?

3dsmaxからの出力フォーマット

0
Filed under CG
Tagged as

3dsmaxからアウトプットする際のフォーマットは

RGB+Alpha channel /z-depth/Material ID/Object ID

のチャンネルが必要になる。

検証の結果

EXRは、full float 32bitまで対応可能。

非常に多機能で有力候補だったが、AE上での取り回しが重すぎるので断念。

フルハイサイズでラムプレビューした時のプレビュー作成速度が絶望的。

あとAE上でのインテグレーションがイマイチ。RPFなどはZ深度をプラグインが自動で拾ってくれるが、EXRの場合はRGBA以外の各チャンネルで別途コンポジションを作らなければならない。

結果的に従来から使っている16bit-RPFフォーマットで行くことにした。