last Updated * 2004.7.5

CINEMA 4D R8.5で作成したXPressoを紹介します。

This page shows XPresso created with the CINEMA 4D R 8.5

 

Sample File  Large Pict, Movie

 
cameraMatchCam ver. 1.10
go English Explanation
1. 著作権
 cameraMatchCamオブジェクトの著作権は、冨士俊雄にあります。
2004.4.23/11th moon/Toshio Fuji<tofuji@po.jah.ne.jp>
2004.4.23: ver. 1.01 release.
2004.5.7: ver. 1.10 「Auto..」ボタンを追加。「Reset」ボタンを追加。自動調整アルゴリズムを改良。


2. ライセンス
 cameraMatchCamオブジェクトには二つのグレードがあります。このうち、ベーシック版はこのページからダウンロードし、無償で使用できます。

 プロ版は有償です。購入を希望される方は私宛<tofuji@po.jah.ne.jp>にメールをお送りください。価格は3千円です。プロ版は、ターゲットを8個まで指定できます(ベーシック版は4個)。また、あおりがかかった画像や、トリミングした画像でも扱えます(ベーシック版は扱えません)。


3
. 動作環境
 cameraMatchCamベーシック版は、MAXONコンピュータ社製の CINEMA 4D R8.2からR8.5で動作します。cameraMatchCamプロ版は、CINEMA 4D R8.5でのみ動作します。


4. 機能
 cameraMatchCamは、指定した背景画像に対して、指定したシーンが一致するように、カメラのパラメータを変更します。自動的に変更されるパラメータは、「位置X、Y、Z」、「焦点距離」、「角度H、P、B」の7個です。手動で変更するパラメータは、「フィルムオフセットX、Y」の2個です(プロ版のみ)。

 cameraMatchCamは、背景画像とシーンの誤差を表示します。単位は角度
で、全てのターゲットの誤差が加算されます。

 自動調整機能を、「位置」、「焦点距離」、「角度」ごとに、部分的に「On/Off」
できるようになりました。

 「Reset」ボタンを選択することで、「焦点距離」、「2D targetsの位置」、「フィルムオフセットの値」をリセットできるようになりました。この変更により、「使用する」ボタンはもはやこれらの値を変更しません。


5. 使い方
5a. cameraMatchCamでの作業を始める前に、まず「cameraMatchSystem」オブジェクトを作業中のシーンにコピーしてください。このオブジェクトは、上記のアドレスからダウンロードしたサンプルシーンや、メールに添付したサンプルシーンに含まれています。

 この段階で、既にcameraMatchCamは動作しています。ただし作業中に動作すると邪魔なので、「CM_cam」オブジェクトの右にあるXPressoタグを選択し、属性マネージャで「使用する」オプションを外しておいて下さい。

 次に背景画像を用意し、「BK」マテリアルに読み込んでください。次に、
「レンダリング設定 -> 出力 -> 解像度」の値を、背景画像に合わせて適切な
「縦横比」に指定してください。この段階でエディタに背景画像が正しく表示されるはずです。背景画像が歪んでいると正しい結果は得られません。

5b. 次に、背景画像に対応するシーンを作成してください。シーンは「3Dターゲット」を指定するために使うだけなので、ヌルや立方体を使った簡単なもので構いません。ただし、ターゲットをスナップする基準点の位置は、背景画像と正確に一致していなければなりません。

 基準点としては、例えば「敷地境界線の角」、「位置と高さが正確に判っている建物の角」などが適しています。もし、適切な基準点が得られそうもない場合は、現地でマーカーを配置し、その間隔を実際に測定し、そのマーカーを含めて背景画像を撮影して下さい。

 基準点の位置は、画面にいっぱいに広がった立方体の頂点とすることが理想
で、最低でも4個必要です。ベーシック版の場合は、立方体を構成する一つの正方形の頂点に近い位置に4個の基準点を設定して下さい。プロ版の場合は、立方体を構成する全ての頂点に近い位置に8個の基準点を設定して下さい。
  
 適切な基準点が存在しない場合、原理的に、背景画像とシーンを一致させることはできません。また、背景画像に歪みがある場合は、あらかじめPhotoshop等で歪みを補正して下さい。

5c. ここからcameraMatchCamの作業に移ります。まず、「CM_cam」の位置、角度、焦点距離の値を、背景画像におおまかに合わせて下さい。これによって後の作業がやりやすくなります。そして、2D targetsをニュートラルの状態で配置するために、「Reset」ボタンを選択しておいて下さい。

 次に、スナップ設定で3Dスナップ機能を働かせ、ポイントや軸オプションを有効にします。そして、「3D_targets」オブジェクトの下に含まれているヌルオブジェクトを、5bで作成したシーンの基準点にスナップさせて下さい。ベーシック版の場合は、4個のターゲットを全て設定する必要があります。

 プロ版の場合は、4個から8個のターゲットを指定できますが、ターゲットの数が多い方が、より正確に、短時間で背景画像とシーンを一致させられます。もし基準点が足りず、ターゲットが余る場合には、「CM_cam」のXPressoを選択し、「number_of_targets」の値を使用するターゲットの数に合わせてくださ
い。この作業を忘れると、設定していないターゲットまで計算され、正しい果
が得られなくなります。

5d. 次に、「2D_targets」オブジェクトの下に含まれているヌルオブジェクトを、5aで読み込んだ画像の上に見えている基準点の位置に正確に合わせて下さい。この作業の精度が最終的な精度を大きく左右します。この時、当然のことながら、使用する2Dターゲットと3Dターゲットの数は一致していなければなりません。また、ある基準点に対して、既に指定されている3Dターゲットと同じ番号の2Dターゲットを配置して下さい。ターゲットは番号ごとに色分けされてい
るので、簡単に識別できるはずです。
 
5e. これで作業は終了です。「使用する」をボタンチェックし、「Reset」ボタンのチェックを外し、アニメーションプレビューをスタートさせると、cameraMatchCamが働き、自動的に背景画像とシーンが一致するはずです。


6. 誤差の判定と手動による調整

6a. cameraMatchCamの動作中、属性マネージャの「Total_error」には誤差の大きさが表示されます。また、その下には各パラメータの変分が表示されます。これらが全て0になった時、「背景画像とシーンは完全に一致した」と言えます。実際「Total_error」の値が完全に0になることはありませんが、1°を切れば実用上十分な精度で背景画像とシーンが一致したと言えるでしょう。

6b. もし、しばらくしても「Total_error」の値が1よりも大きな値で振動している場合は、カメラを手動で前後に移動させてみて下さい。この操作は通常と同じように画面右上のボタン等で行います。また、cameraMatchCamの動作中でも操作できます。カメラの前後動を手動で調整するのは、焦点距離が一番自動化しにくいからです。

 また、背景画像に対するシーンの角度が大きくずれている場合は、「角度」の値も手動で調整してみてください。この操作も、cameraMatchCamの動作中に、エディタ右上のボタンから行います。このような手順で、しばらく自動調整と手動調整を続けていれば、「Total_error」の値が1程度に収まるはずです。「位置」の値を手動で調整する必要はありません。
 
6c. 6bの作業を行っても「Total_error」の値が小さくならない場合、いくつか
の原因が考えられます。一つは「背景画像にあおりがかかっている(トリミングされている)」場合。この場合は6dを参照してください。

 または「2Dターゲットの位置が正確でない」場合。この場合は、2Dターゲットの位置を微調整して下さい。cameraMatchCamの動作中でもエディターで動かせます。
 
 または「背景画像が歪んでいる」場合。この場合、背景画像の歪みを取って作業をやり直すか、歪みがあることを想定して、2Dターゲットの位置を意図的にずらしてみてください。

 または「3Dターゲットの位置が正確でない」場合。背景画像に写っている基準点の位置は、正確にシーンで再現し、そこに3Dターゲットをスナップする必要があります。もし「図面が間違っていた」、「現地での測量が不正確だった」などの理由によって、3Dターゲットの位置が正確でない場合は、図面の確認や測量からやり直すしかありません。もし、他に基準点が取れる場合には、そちらを試してみてください。
 
 または「基準点の取り方が適切でない」場合。例えば、3個の基準点が一直線上に並んでいる場合などは、数学的に解が存在しないので、背景画像とシーンは絶対に一致しません。基準点を決めるところからやり直してください。
 
6d. 背景画像にあおりがかかっている場合、ベーシック版では対処できないのであきらめてください。プロ版では、「フィルムオフセット」の値を手動で調整することにより、時間はかかりますが背景画像とシーンを合わせることができます。

 まずcameraMatchCamの動作中に、エディタに表示されている背景画像と
シーンのワイアーフレームを比較しながら、属性マネージャに表示されている
「Film offset X」と「Film offset Y」の値を変えて見て下さい。
 
 次に、ある程度背景画像とシーンが合ってきたら、「Total_error」の値を見ながらフィルムオフセットの値を微調整して下さい。
 
 
 以上

*

1. Copyright
A copyright of the cameraMatchCam object is held by Toshio Fuji.
2004.4.23/11th moon/Toshio Fuji<tofuji@po.jah.ne.jp>
2004.4.23: ver. 1.01 release.
2004.5.7: ver.1.10 add "Auto..." buttons, "Reset" buttonb and improve
matching algorithm


2. Licence
There are 2 grades of the cameraMatchCam object. One is "Basic" which can be downloaded from here, and used freely for your job.

Another "Pro" is charged product. If you want to use it, please send e-mail to me <tofuji@po.jah.ne.jp>. The price is 30 US$ or 25 Euro, and I can accept the PayPal only. The Pro can treat up to 8 targets (the Basic have only 4 targets). Also the Pro can treat "shifted (or trimmed) picture" (the Basic can not treat it).


3. Requirment
The cameraMatchCam Basic needs Maxon Computer's CINEMA 4D R8.2 to R8.5. The cameraMatchCam Pro works with only CINEMA 4D R8.5.


4. Functions
The cameraMatchCam adjusts camera parameters until specified scene is match to specified background picture. Following 7 parameters, "Position X, Y, Z", "Rotation H, P, B", "Focal length" are adjusted automatically. Other 2 parameters, "Film Offset X, Y" are semi-automatic (Pro only).

The cameraMatchCam indicates error between background picture and
scene. The unit is "degree", and all error of targets are added together.

You can now partly "switch On/Off"the automatic adjustment for
"Positions", "Focal Length" and "Rotations".

You can now reset "Focal Length", "2D targets" and "Film Offset"
by selecting "Reset" button. The "Use" button does not change the
parameters anymore.

 
5. Usage
5a. Before starting of the cameraMatchCam, you need to copy
"CameraMatchSystem" object to your current scene. The object is included in sample scene described above, or sample scene attached into my e-mail.

At that time, the cameraMatchCam is already started. But it makes
unwanted motion of the camera, so please turn off the "Use" option at the Attribute Manager which is shown after you select a XPresso tag at right of "CM_cam" object.

Next, please prepare a background picture, and read it into "BK" material. Then set values of "Render Settings -> Output -> Resolution" for the BK picture with correct aspect retio. After that you should see the BK picture in editor. If the BK picture is distorted, you can not get good result.

5b. Next, please prepare a scene. Since the scene is used for only placing
"3D targets", simple objetcs like Null or Cubes are enough. However 3D
position of "reference points" should match completly to the "reference
points" which are seen in the BK picture.

For example, "corner of ground partition" or "corner of building which is
known accurately by drawings" are good for the reference point. If you do not have any known reference point, you have to place "markers" in the actual scene, measure hight and length among them, and take Photograph including the markers as the BK picture.

The ideal positions for the reference points are corners of a cube which fills the frame, and you need at least 4 points. For the Basic grade, it is
recommended to use 4 points near by corners of square which consists the cube. For the Pro grade, please use 8 points near by all corners of the cube.

If the reference points are not proper or not accurate, you can not match your scene to the BK picture from fundamental reason. Or if your picture have some distortions which were caused by camera lens or printed paper, please correct it in Photoshop before.

5c. From here, we start settings of the cameraMatchCam. At first, please adjust position and rotation of the "CM_cam" roughly. It may make your next job easier. Also please select the "Reset" button to set 2D targets at neutral condition.

Next, go Snap Settings, turn on "3D snap" and activate "point" or "axis"
options. Then please snap the null objects which are included under
"3D_targets" object, to the reference points explained step 5b. You have to set all 4 targets in case of Basic grade.

In case of Pro grade, you can set 4 to 8 targets, however more targets result better match of the BK picture and your scene in shorter time. Also if you do not have enough reference points, so some are unused, you should change value of "number_of_targets" to used targets number, in Attribute manager after selecting XPresso of the "CM_cam". Without changing the value, the unused targets will be taken into account, and you can not correct result.

5d. Next, please move the null objects which are included under
"2D_targets" object, to reference points which are seen on the BK picture applied step 5a. Accuracy of this step is very important for final result. In this step, number of used 2D targets and 3D targets have to match. Alsoyou have to place the 2D target which have same number as 3D targets for the reference point. The targets have own colors which correspond to the numbers, so you may be able to distinguish them easily.

5e. All settings are over. Select the "Use" option, deselect the "Reset"
button, and start animationpreview, then the cameraMatchCam will start, and the BK picture and your scene should match in 1 or 2 minutes.


6. Error evaluation and manual adjustment
6a. While the cameraMatchCam are working, error value is displayed in
"Total_error" field of Attribute manager. Also "difference values at the
frame" are shown in bottom fields. So "all 0" means "the BK picture and
your scene are match perfectly". Actually you can not get the all 0, but if
the value goes under 1 degree, it can be said that the BK picture and your
scene are match enough.

6b. Or, unfortunately, if the value of "Total_error" is staying much greater than 1 degree, move the camera to forword or backword directions manually. You can do this by ordinally interfaces like buttons at top right of the editor. Also you can do this even while the cmeraMatchCam is active. The reason of the action is that the Focal Length value is more difficult to adjust automatically than other parameters.

Also if you can find out "much rotation error", rotate the camera to better angles manually. You can do this even while the cameraMatchCam is active, by ardinally interfaces. With such manual help on the automatic adjustment, you should get smaller value of the "Total_error" than 1 degree. However you may not need to adjust position values.

6c. If you can not get smaller value after step 6b. There may be some
serious reasons. One is "the BK picture is shifted (or trimmed)". Please refer to step 6d for the case.

Or, case of "position of the 2D targets are not accurate". You have to adjust position of the 2D targets again. You can do this while the
cameraMatchCam is active.

Or, case of "the BK picture is distorted". You have to go back to Photoshop to remove the distortion, or shift the 2D targets to some direction where the reference points were.

Or, case of "position of the 3D targets are not accurate". The reference
points which are seen in the BK picture, should be placed at correct
position in 3D scene. And you should snap the 3D targets there. If positions of the 3D targets is not accurate, because of some reasons like "Drawings have mistakes" or "measurment at the location was not accurate", you have to restart your job from the first step. Or if you have spare of the reference points try them first.

Or, case of "some reference points are not proper (dead)". For example, if 3 reference points are on 1 streight line, the middle point is dead, and there is no solution mathematically. So the BK picture and your scene are not match forever. Please try again from selecting the reference points.

6d. If the BK picture is shifted, you have to handle "Film offset" values.
Unfortunately the Basic grade can not treat the Film offset, so if you are
using it please give up to use the picture. Or, if you are using Pro grade you can match the BK picture and your scene with some more effort, by
adjusting them manually.

For this, while the cameraMatchCam is running, move sliders of "Film
offset X" or "Film offset Y" in Attribute manager, with compareing the BK
picture and wire frame display of your scene.

Next, after the error becomes smaller, continue to change the sliders
carefully, with watching the value of "Total_error".


It is over, have fan.

 


 

Go Top

Go Home

E-mail/tofuji@po.jah.ne.jp

Toshio Fuji/11th Moon