スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[3ds max S3D] ステレオカメラリグを更新しました。

3ds max用のステレオカメラリグを更新しました。今回の更新は、機能面では変化はありません。カスタムアトリビュートのレイアウトを改善してパラメータを見やすくしたのが、主な変更点です。

■ダウンロードリンク■(リンクをGoogle Driveに変更しました。2016/12/22)
mjStereoCam_Target_2015S_v15 : 標準カメラ、2015以降、ターゲットカメラタイプ
mjStereoCam_Free_2015S_v15 : 標準カメラ、2015以降、フリーカメラタイプ
mjStereoCam_Target_2015V_v15 : vrayカメラ、2015以降、ターゲットカメラタイプ
mjStereoCam_Free_2015V_v15 : vrayカメラ、2015以降、フリーカメラタイプ
※V-Rayは、3.0以降対応です。2.0でも動くとは思います。

旧バージョン
ターゲットカメラタイプ : v09, v10, S_v11, V_v11
フリーカメラタイプ : v09, v10, S_v11, V_v11
v09,v10の取り扱い説明書

■使用上の注意■
1.商業作品を制作するときの使用はOK!
2.使用していただいたときは、使用した作品名など教えていただけると嬉しいです。
3.このリグを使用すること(あるいは使用できないこと)によって発生した損失や損害に関して一切責任を負いませんので、その点はご容赦ください。

■更新履歴■
2017/02/12 v15の変更点
 ・ガイドとして表示しているの平面のサイズ調整にミスがあったので修正しました。
 (1920x1080,Space10%としたときに、ガイド平面がきちんと1920x1080の範囲内かつ、左右のカメラの視錐台に収まるようになっています。ここのサイズ計算にミスがありました。)

2017/01/29 v14の変更点
 ・ターゲットカメラ版のターゲットコンストレイントに不具合があったので設定し直しました。
 ・その際に、シーンファイルのMaxバージョンが2015に上がってしまいました。

2014/02/10 v13の変更点
 ・カスタムアトリビュートのレイアウト変更
 ・一部コントローラで実数式を使用していたところを実数スクリプトに統一
 ・スピナーでAngleとPercentの指定ができなかったので、floatで置き換え
 ・ガイドプレーンの幅を左右のカメラで共有したビューアングル内に調整

2012/02/14 v11の公開


使い方は、以下「続きを読む」から。



■概要■

mjStereoCam_Attribute_01

このリグは、単に”カメラ間の距離(基線長)”と”スクリーン面の距離(コンバージェンス)”の調整ができるだけではなく、視差量のガイドとなるガイドプレーン(単なる板ポリ)が表示されているところが大きな特徴です。例えば、Far Limit (px) Planeの位置が10pixelで設定されていれば、その位置にあるオブジェクトの視差量はレンダリングしたときに10pp(pixel parallax)となります。



■HIT(off Aixs)使用時の注意■
リグのご説明の前に注意点があります。アトリビュートのStereo Camera Rig Typeで[HIT(off Axis]を選択できますが、ここで気をつけていただきたいことが。(使っていただいている方から報告がありました)

スキューモディファイヤを使って、カメラの描画エリアを左右にオフセットをすることでHITさせているのですが、カメラを非表示にしてしまうとスキューモディファイヤが機能しないままレンダリングされてしまいます(つまり平行法でレンダリングされてします)。レイヤー上で非表示した場合も同様です。レンダリング時にご注意ください。




■アトリビュート■
メインのヘルパーであるStereoCamT(またはStereoCamF)にCustomAttributesが設定されています。立体視関連のアトリビュートはここで調整するようになっています。

stereoCameraRig_CustomAttributes.png---カメラ・視差の設定---
Stereo Camera Rig Type:
  Parallel: 平行法
  Converged: 交差法
  HIT(offset axis): HIT(平行法+画素ズラし)
StereoBase: カメラ間の距離
Convergence Distance: スクリーン面までの距離
FOV: 画角・視野角(角度)

---スクリーンサイズ(レンダリング解像度)の設定---
Width[px]: 上映時のスクリーン解像度(横、px)
Height[px]: 上映時のスクリーン解像度(縦、px)
Space[%]: のりしろの割合(%)

---ピクセル基準の限界値設定---
Far Limit[Px]: 正の視差の限界値(ピクセル)
Near Limit[Px]: 負の視差の限界値(ピクセル)

---視差角基準の限界値設定---
Interocular Distance: 視聴者の両眼幅
Display Width: ディスプレイの横幅
Viewer Distance: 視聴者とディスプレイの距離
Far Limit [Degree]: 正の視差の限界値(視差角)
Near Limit [Degree]: 負の視差の限界値(視差角)

---視差量の計測(ピクセル基準で)---
Pixel Measure: 白い板の視差量(ピクセル)

---表示/非表示の切り替え---
StereoCamScreen Layer: レイヤーの表示/非表示

Pixel: ピクセル基準のPlaneの表示/非表示
Angle: 視差角基準ののPlaneの表示/非表示
Count: 計測用のPlaneの表示/非表示

Red Plane: クロスポイントのガイドの表示/非表示
Width: クロスポイントのガイドの幅

CamBoxSize: ヘルパーの表示サイズ
TargetBoxSize: ターゲットの表示サイズ

---選択のショートカット---
StereoCam_Target: ターゲットヘルパーを選択
StereoCam_Roll: ロールヘルパーを選択
camL: カメラLの選択
camC: カメラCの選択
camR: カメラRの選択




■基本的なリグの使い方、視差の調整方法■

通常のカメラ操作と同じ感覚で使えるようにしています。リグに関する各種アトリビュートは、赤いヘルパーに付けられています。修正パネルの[アトリビュートホルダー]モディファイヤからアクセスできます。

mjStereoCam_Helper_01

[Sereo Rig]

カメラの置き方を3つから選べます。

 Parallel: 平行法
 Converged: 交差法
 HIT(offset axis): HIT(平行法+画素ずらし)

Parallel”では左右のカメラの光軸が平行になります。”Converged”はカメラの光軸が交差した状態になります。Convergence Planeの位置で交差します。

平行法から画像をずらして交差法と同じ効果を出す方法を"HIT"と言います。"HIT(offset axis)"を選ぶと後から画像をずらす手間をかけずに"HIT"させることができます。AutodeskのAREAに「スキューモディファイヤを使え」とヒントがありましたので、それで疑似的にオフセット(画素ずらし)をしています。注意点としては、カメラ間の距離を大きくしすぎるとスキューの影響で視野角に歪みがでるためなのか、意図しない画角になってしまいます。通常の視差調整の範囲では問題にならないと思います。

基本的には”HIT(offset axis)”を使うことをオススメしますが、他のCGソフトへカメラをエクスポートすることがある場合は、”Parallel”や”Converged”を使う必要があります。スキューモディファイヤを使用しているので、他のCGソフトではHITの再現が難しいからです。

視差量の調整は、”StereoBase”と”ConvergenceDist”でコントロールします。”StereoBase”でカメラ間の距離が変化し、もう一方の”ConvergenceDist”でスクリーン面(Convergence Plane)の距離が変わります。

スクリーン面(Convergence Plane)は視差がゼロになる位置です。このPlaneより奥にあるオブジェクトはディスプレイより引っ込んで見え、Planeより手前にあるオブジェクトはディスプレイから浮き上がって(飛び出して)見えます。



■ガイドプレーンを使うための基本的な準備■

アトリビュートの”ScrnWidth”以降のパラメータは、正確に入力する必要があります。これらの数値を元にガイドプレーンの位置を算出しているため、数値が正確でないと正しい位置にプレーンが表示されません・・・

基本的な準備として、まずは2点確認し数値を入力します。

 1.上映時の画像サイズ

 2.のりしろのサイズ

上映時のサイズが1920x1080で、のりしろを10%つけてレンダリングするときを例にします。

StereoCamTのアトリビュートで、数値を入力します。

mjStereoCam_BaseSetting_01

次に、レンダリング設定で出力サイズを入力します。1920x1080の10%増しなので、ここでは2112x1188を入力します。

mjStereoCam_BaseSetting_02

これらの設定は必須です。これらの値を正確に入力しておかないと、視差量の計算がズレますのでご注意ください。出力サイズの方は(影響を理解していらっしゃれば)任意でも構いません。例えば、上記の例で出力サイズを1270x720にしたとき、レンダリング後の画像で視差10ppの箇所は10*1270/2112=6.01ppになります。そういった影響が分かっていれば任意でOKかと思います。


■ピクセル数を基準にしたガイドプレーンの設定■

立体視作品の制作では、視差量に制限を設けています。その制限を「ピクセル数」や「ディスプレイ幅に対する割合(%)」で指定するときは、以下のアトリビュートを使用します。

mjStereoCam_LimitPx_01

海外の映画などでは「1%」以下という基準が使われることが多いようです。それを基準とすれば、HDサイズの作品では、1920*0.01=19pxという数値を基準に使います。

アトリビュートで”FarLimitPx”に19、”NearLimitPx”に-19を入力すれば、ガイドプレーンの位置で視差がそれぞれ19、-19になります。ガイドプレーンの位置は、他のいくつかのアトリビュートの数値を元に算出されます。

もし、撮影対象のオブジェクトがこの範囲に収まらないときは、オブジェクトの大きさや位置を調整するか、”StereoBase””ConvergenceDist”を調整することでプレーン位置を変えるなどします。

mjStereoCam_LimitPx_02

 


■視差角を基準にしたガイドプレーンの設定■

立体視作品の制作では、視差量に制限を設けています。カメラリグのv11からは、「視差角」を基準に使うことができるようになりました。3Dコンソーシアムのガイドラインでは、視差角1度以下が推奨されています。視差角を使うときは、以下のアトリビュートを使用します。

mjStereoCam_LimitAngle_01

まず必ず確認が必要になるのは、最終上映時のディスプレイの横幅(DisplayWidth)

、視聴者とディスプレイの距離(ViewerDist)視聴者の両眼幅(InterocularDist)です。

「視差角」は、視聴者から立体像を見たときのディスプレイ上での輻輳角と立体像の輻輳角の差です。

アトリビュートで入力した視差角の数値がCG空間上でどの位置になるのかを算出するには、視聴環境の情報が必要になります。InterocularDistは、大人は6.0cm、子供は5.0cmにしておけば、ほとんどのケースで間違いないと思います。

そして、上記では便宜上(プレーンのキャプチャがし易いように)、Far側を0.5(度)、Near側を0.7(度)としました。映像作品毎に適切な値は異なります。

アトリビュートで”FarLimitAngle”に0.5、”NearLimitAngle”に0.7を入力すると、ガイドプレーンの位置で(上映環境での)視差角がそれぞれ0.5、0.7になります。ガイドプレーンの位置は、他のいくつかのアトリビュートの数値を元に算出されます。

もし、撮影対象のオブジェクトがこの範囲に収まらないときは、オブジェクトの大きさや位置を調整するか、”StereoBase””ConvergenceDist”を調整することでプレーン位置を変えるなどします。

mjStereoCam_LimitAngle_02


■オブジェクトの視差量を計測するには■

CG空間上にあるオブジェクトの視差量(pixel)を求めることができます。

アトリビュートの”ParallaxMeasure”に数値(pixel)を入力すると、白いParallaxMeasure(Plane)が移動します。ParallaxMeasure(Plane)は視差量を測るメジャーのようなものだと思ってください。

視差量を調べたいオブジェクトの位置にPlaneを合わせます。このときの”ParallaxMeasure”の数値がオブジェクトの視差量(pixel)に相当します。

mjStereoCam_ParallaxMeasure_01


■レイヤー■

StereoCamScreenT ・・・ガイドプレーンのレイヤー

StereoCamT ・・・カメラなどその他のレイヤー


■ガイドプレーンの横幅について■

各ガイドプレーンは、LRカメラのビューアングルが共有している範囲に幅を合わせています。ただし、StereoCameraRigTypeがHITのときを基準としていますので、converged(交差)のときは若干ズレます。


■Z軸のあたりでカメラがクルッと回ってしまうときの対応方法■
ターゲットカメラは、ルックアットコンストレイントで回転(方向)の設定をしています。
ターゲットに対してZ軸付近までカメラを持ってくるとクルッと向きが変わってしまいます。
これが問題となる場合は、ルックアットコンストレイントの軸合わせを変更することで問題を回避できます。
 StereoCamT
 StereoCamT_Trans
この2カ所でルックアットコンストレイントが設定されています。
それぞれ次の図のように設定を変えてください。

※ただし、この変更をすると今度はX軸でクルッと向きが変わるようになります。適宜設定を使い分けていただくと良いと思います。


ステレオカメラリグAxis

関連記事
スポンサーサイト

テーマ: 3DCG - ジャンル: コンピュータ

Comment

Post comment

Secret

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。