SketchUpのシーンのアングル情報を直接Twinmotionに読み込むことは残念ながらできませんが、やや手間をかければほぼ完全にアングルを再現することが可能です。本記事ではその手順を紹介します。
大まかな流れとしては、SketchUpでカメラの位置や角度などの情報を取得してから、Twinmotionに数値を入力していきます。
※ 本記事で使用するSketchUpのバージョンは2024、Twinmotionのバージョンは 2024.1.2 です。
① SketchUpでカメラの数値情報を取得する
SketchUpはあまり座標値を気にしないソフトなので、カメラの数値情報を得るのも一苦労です。今回は、Rubyのコードを使用して数値を取得していきます。
再現したいシーンを選んだ状態で、拡張機能 > 開発者 > Rubyコンソール を選択し、表示されたRubyコンソールウィンドウの下部の空欄に下記コードをコピーペーストしてEnterを押します。
cam = Sketchup.active_model.active_view.camera
x = cam.direction[0]
y = cam.direction[1]
z = cam.direction[2]
roty = Math::acos(z)
rotz = Math::acos(x/Math::sin(roty))
if y < 0 then
rotz = -rotz
end
roty = 90-roty*180/Math::PI
rotz = -rotz*180/Math::PI
puts "Skp Camera location=(#{cam.eye})"
puts "Skp Camera fov=(#{cam.fov})"
puts "TM Camera rot=(0 deg, #{roty} deg, #{rotz} deg)"
(コードの計算部分が何をしているか簡単に言うと、カメラの向いている方向ベクトルを極座標に変換してカメラのPanとTiltの角度の数値を算出しています。)
すると、Rubyコンソールウィンドウの上部に入力内容と出力結果が表示されます。
今回は下記のような出力結果になりました(小数点第3位以下切り捨て)。
Skp camera location | (27667.92mm, -347.07mm, 4181.00mm) |
Skp fov | 79.68 |
TM camera rot | (0 deg, 0.05 deg, -139.87 deg) |
② SketchUpでビューポートの画素数を取得する
ファイル > エクスポート > 2Dグラフィック を選択し、オプション > ビューサイズを使用するにチェック します。今回は 幅2003ピクセル、高さ1223ピクセル と表示されました(お使いのPC環境、画面レイアウトによって変わります)。
③ SketchUpデータをTwinmotionにインポートする
SketchUpデータをdatasmith経由でTwinmotionにインポートします。Skpデータを直接インポートする場合は、モデルが回転した状態で読み込まれてしまうので、モデル全体をz軸に-90°回転させてください。
④ Twinmotionでimageの解像度を指定する
新規イメージを作成し、Propatiesパネルの Image > Format から②で取得した画素数を入力します(解像度が低いと思ったら、幅と高さをそれぞれ2倍にしても良いと思います)。
⑤ Twinmotionでカメラの数値を入力する
XYZパネルを表示し、一番下の Default viewport の欄に①で取得した数値を入力していきます。Trans. の部分には、Skp camera location の値をm単位に変換し、Yの正負を反転させたものを入力します。今回は ( 27.66m, 0.34m, 4.18m ) と入力します。Rot. の部分には、TM camera rotの値をそのまま入力します。今回は ( 0°, 0.05°, -139.87° ) と入力します。
⑥ Twinmotionで焦点距離を入力する
最後に焦点距離を入力しますが、ここで注意が必要なのは、SketchUpとTwinmotionでは焦点距離の数値が異なるということです。(原因は明確にはわかりませんが、SketchUp側が垂直画角を基準にしているのではという説があります。下記参考記事参照。)
参考記事:SketchUp Community “Cameras, FOV and ACT Revisited”
記事内にある表を参照します。
①で取得した Skp fov に最も近い値を表の Vert. の縦の列から探し、同じ横の行の Focal length の値を確認します。今回はSkp fov = 79.68 で 81.2° に近いので、焦点距離を大体 14mm としてTwinmotionの Propatiesパネルの Camera > Lens > Focal length に入力します。
これでほぼSkethchUpのアングルと同じになったと思いますが、まだ少しずれていると思うので、SketchUpとTwinmotionの画面を見比べながら微調整します。ここでは最終的に焦点距離を 13.15mm としました。最後に忘れずにアングル更新のためRefreshボタンを押します。
結果
同様のやり方で、合計3シーンをTwinmotionで再現してみました。アングルがほぼ再現できているのではないでしょうか?(スライダーをドラッグして比較することができます。スマホよりもPCからの方が見やすいと思います)
まとめ
SketchUpシーンのアングルをTwinmotionでほぼ再現することは可能、ということで方法を紹介しましたが、手間がかかるので私は普段は使っていません。Twinmotionの操作に慣れれば見た目で大体合わせてしまってもそれほど時間はかかりません。
ただ、SketchUpでMatch Photoを行った場合など、どうしても正確にTwinmotionで再現したいという場合もあると思うので、その際には本記事の手法がおすすめです。
以上.