Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PLATEAUの3DCGモデルをWebXRコンテンツ向けに調整するBlenderのPythonスクリプトについて

 PLATEAUの3DCGモデルをWebXRコンテンツ向けに調整するBlenderのPythonスクリプトについて

Limes2018

July 26, 2021
Tweet

More Decks by Limes2018

Other Decks in Technology

Transcript

  1. Project PLATEAUとは? 3 PLATEAU は、国⼟交通省が進める 3D都市モデル整備・活 ⽤・オープンデータ化 のリーディングプロジェクトである。 都市活動のプラットフォームデータとして 3D都市モデルを整

    備し、 そのユースケースを創出。さらにこれをオープンデー タとして公開することで、誰もが⾃由に都市のデータを引き出 し、活⽤できるようになる。 Project PLATEAU | PLATEAU [プラトー] (mlit.go.jp)
  2. 10 PLATEAUモデルをWebGLフレームワークで 読み込むときの問題と解決⽅針 # 問題 解決⽅針 1 そもそも表⽰されない 原点から遠すぎるので、適度に近づける 2

    全オブジェクトのグローバ ル座標が(0,0,0)になってい て、位置関係がよくわから ない 各オブジェクトのOriginをgeometryの重⼼ に合わせる 3 ちょっと確認したいだけの 利⽤⽅法では、データ量が ⼤きい。 崩れない程度にポリゴン数を下げる これらを解決するため、BlenderのPython読み込み機能 で⾃動補正する機能を実装しました。
  3. 11 Pythonスクリプトで実施できるようにしたこと ・個別にOrigin to Geometryを適⽤ →問題2を解決。各オブジェクトが固有のx, y, z値を持つ ・個別にAdd ModifierのDecimate

    (容量削減)を適⽤ →問題3を解決。いったん40%程度⼀律削減。調整可能 ・全オブジェクトのoriginと原点の距離を算出し、最も原 点から遠い距離のオブジェクトのxとy (Blenderはz-up) の値で各オブジェクトのx, yの値を引き算して原点付近に 移動→問題1を解決。
  4. 12 問題1の解決 原点 原点 原点から最も遠い オブジェクト a 全てのオブジェクトのx,y座標について、 で引き算 距離d

    𝑑 = 𝑥!"# $ + 𝑦!"# $ 𝑥!"# , 𝑦!"# 移動後の各オブジェクトの座標 (𝑥!"# − 𝑥, 𝑦!"# − 𝑦, 𝑧) x, yの値が70000などになっており、ドラッグで移 動はものすごく時間がかかる。Blenderだと複数 選択してInspectorから座標変更ができない 原点から最も遠いオブジェクトaのx, y座標で 引き算し、全オブジェクトを原点付近に集める