LRTKレフィクシア株式会社

点群OBJアップロード後に階層が崩れる原因と5つの整理法

点群や点群から生成したメッシュをOBJ形式でアップロードすると、作成時には建物、階、区画、部材などに分けていたデータが一つにまとまったり、反対に細かく分割されたりすることがあります。形状自体は表示されていても、要素名が消える、並び順が変わる、同じ名前の部材が統合されるといった問題が起きると、表示切り替えや修正、差し替え、確認作業が難しくなります。

こうした階層の崩れは、OBJファイルが壊れている場合だけに起きるものではありません。OBJが記録できる情報と、作成元の編集環境が持つ階層構造には違いがあります。また、同じOBJでも、アップロード先がオブジェクト名、グループ名、材質名をどのように解釈するかによって、表示される構造が変わります。

点群OBJアップロード後の整理を安定させるには、作成元の階層をそのまま移行できると考えるのではなく、OBJで受け渡せる情報に合わせて構成を設計することが重要です。本記事では、点群OBJの階層が崩れる主な原因と、実務で使いやすい状態に整える5つの方法を詳しく解説します。

点群OBJにおける階層とは何か

点群OBJにおける階層とは、データを現場、建物、階、工区、部屋、設備、部材などの単位に分けて管理する構造を指します。作成元の編集環境では、最上位に現場名を置き、その下に建物や地形を配置し、さらに建物の下へ各階や各部材を格納するような多段階の構成が使われることがあります。

たとえば、現場全体の下に建物と外構があり、建物の下に一階と二階があり、各階の下に壁、柱、梁、床、設備がある構成です。このように整理されていれば、特定の階だけを非表示にしたり、設備だけを選択したりできます。修正箇所の特定や担当者間の共有もしやすくなります。

しかし、OBJへ書き出した場合、この多段階の構造がそのまま保存されるとは限りません。OBJは頂点座標、テクスチャ座標、法線、面、線、点などの形状情報を記録できる形式です。形状をオブジェクトやグループに分けるための記述も利用できますが、一般的な編集環境が持つ任意の深さの親子階層を完全に表現する仕組みではありません。

作成元では、形状を持たない整理用のフォルダーを作成できる場合があります。ところが、形状を持たない階層はOBJの頂点や面として書き出せないため、出力時に消える可能性があります。その結果、上位のフォルダーだけがなくなり、下位にあった部材がすべて同じ階層へ並ぶことがあります。

また、階層という言葉が、単純な表示上の並びを指している場合と、親要素から子要素へ位置や回転を継承する構造を指している場合があります。OBJアップロード後の問題を確認するときは、名称の並びが変わっただけなのか、部材の位置関係や管理単位まで変わったのかを分けて考える必要があります。

OBJアップロード後に階層が崩れて見える理由

OBJアップロード後に階層が崩れて見える背景には、作成元、OBJファイル、アップロード先の三者で管理できる情報が異なることがあります。作成元で使える機能が、そのままOBJへ保存され、さらにアップロード先でも同じように再現されるとは限りません。

作成元では、親子関係、表示状態、ロック状態、部材属性、作業用の分類、位置と回転、複製元との参照関係などを持てる場合があります。一方、OBJへ書き出される情報は主に形状とその区分です。アップロード先が読み込まない情報は、OBJ内に記録されていても画面上の階層へ反映されません。

同じOBJファイルでも、アップロード先がオブジェクト名を優先するか、グループ名を優先するか、材質の区切りを優先するかによって結果が異なります。オブジェクト名やグループ名を読み取らず、ファイル全体を一つのモデルとして扱う場合もあります。

したがって、作成元の画面とアップロード後の画面で階層が違うことだけを理由に、直ちにデータ破損と判断することはできません。頂点や面の欠落がなく、位置や寸法が保たれていれば、形状データは正常で、管理構造だけが変換されている可能性があります。

一方で、要素の統合に伴って一部の面が見えなくなったり、座標変換の重複によって部材が移動したりしている場合は、構造だけでなく形状にも影響しています。階層確認では、名称や並び順だけでなく、要素数、頂点数、面数、座標範囲、材質の対応も確認することが大切です。

原因1:OBJでは多段階の親子関係を保持しにくい

階層が崩れる代表的な原因は、OBJでは作成元の多段階な親子関係をそのまま保持しにくいことです。作成元で現場、建物、階、部屋、部材という構成を作っていても、OBJへ書き出した後は部材がすべて同じ階層へ並ぶことがあります。

OBJでは、形状の区切りを示すためにオブジェクト名やグループ名を記録できます。しかし、あるオブジェクトが別のオブジェクトの子であることや、親フォルダーの下に複数のグループが存在することを、一般的な多段階階層として記録するものではありません。

たとえば、一階と二階の下にそれぞれ壁が配置されているとします。作成元では、一階の壁と二階の壁を親階層によって区別できます。しかし、書き出し後に親階層が失われ、両方が「壁」という名前で同じ階層へ並ぶと、どちらがどの階に属するか判断しにくくなります。

形状を持たない親要素は、さらに失われやすい要素です。建物名や工区名を示すフォルダーが整理目的だけで作られている場合、そのフォルダー自体には頂点や面がありません。書き出し処理が形状を持つ要素だけを対象にすると、親フォルダーは出力されず、子要素だけがOBJへ記録されます。

また、作成元で一つの形状を複数箇所から参照する構造を使っている場合、OBJへの変換時に参照関係が解除されることがあります。同じ形状が各配置先の独立した頂点と面として書き出されると、作成元の管理単位とアップロード後の要素数が一致しません。

この問題に対しては、親子階層が失われても識別できる構成を事前に作る必要があります。親階層の情報を要素名に含める、上位単位をファイル単位にする、アップロード先が認識できる一段階の構造へ整理するなどの対応が有効です。

原因2:オブジェクト名とグループ名の解釈が異なる

OBJでは、形状を分けるための情報としてオブジェクト名とグループ名を利用できます。ただし、作成元がどの情報をどの記述として出力するかは、書き出し方法によって異なります。アップロード先がどちらを階層として採用するかも一律ではありません。

作成元の一つの部材が、OBJでは一つのオブジェクトとして記録される場合があります。その内部にある面のまとまりが、複数のグループに分けられることもあります。反対に、作成元の部材がグループとして書き出され、ファイル全体が一つのオブジェクトとして扱われる場合もあります。

アップロード先がオブジェクト名だけを読み取る場合、グループで分けていた部位は統合されます。グループ名だけを読み取る場合、一つのオブジェクトが複数の管理要素へ分かれることがあります。両方を読み取る場合でも、オブジェクトとグループのどちらを上位として扱うかは、アップロード先の仕様や処理方法によって変わります。

一つの面が複数のグループに所属しているデータも注意が必要です。読み込み処理によっては、最初のグループだけが採用されたり、面が複数の要素へ複製されたり、新しい一つのグループへまとめられたりする可能性があります。

オブジェクト名やグループ名に空白や区切りとして扱われやすい文字が含まれていると、名称の途中で分かれて表示される場合もあります。文字コードの違いによって、名称が置換されたり、読めない文字になったりする可能性も考えられます。

実務では、オブジェクト名とグループ名へ別々の複雑な階層情報を持たせるよりも、アップロード先で確実に認識できる一方を主な識別単位として使う方が安定します。事前に小規模な検証用OBJをアップロードし、どの名称が画面上に表示されるか確認してから本番データを構成することが重要です。

原因3:同名要素や空の階層が統合または削除される

作成元では別の親階層に配置されているため区別できていた同名要素が、OBJアップロード後に統合されることがあります。親階層が失われると、アップロード先は名称だけを見て同じ要素と判断する可能性があります。

たとえば、一階、二階、三階のそれぞれに「柱」「梁」「壁」という要素がある場合、作成元では所属する階によって区別できます。しかし、すべての要素が同じ階層に並べられると、「柱」という同名要素が複数存在する状態になります。

アップロード先によっては、同名のグループを一つへまとめます。自動的に番号を追加して別名にする場合もありますが、その番号が作成元の階や区画と対応するとは限りません。読み込み順によって番号が変わると、更新するたびに要素名が変わる可能性もあります。

形状を持たない空の階層は、OBJに出力されないことがあります。現場名、建物名、階名などを示すフォルダーであっても、頂点、線、点、面を持っていなければ、形状データとして記録できません。そのため、上位の分類だけが消え、末端の部材が同じ階層へ移動したように見えます。

書き出し前に形状を削除した空のオブジェクトや、非表示の整理用要素が残っている場合も注意が必要です。作成元では階層名として見えていても、出力対象にならないため、アップロード後には存在しません。

同名要素を確実に区別するには、親階層の情報を名称へ含めます。階、区画、部材種別、固定番号を一定の順序で組み合わせることで、階層が平坦化されても所属を判断できます。単純に末尾へ自動連番を付けるだけでは、更新時に対応が変わる可能性があるため、対象物に固定した識別番号を使うことが望ましいです。

原因4:座標変換が頂点へ反映されて親子構造が失われる

作成元では、形状そのものの頂点座標とは別に、オブジェクトの位置、回転、拡大縮小を管理できる場合があります。親要素にも変換情報があり、その下にある子要素が親の移動や回転を引き継ぐ構成もあります。

OBJへ書き出すときは、こうした変換情報を独立した親子構造として保存せず、最終的な表示位置を各頂点の座標へ反映する処理が行われることがあります。見た目の位置は維持されますが、親要素、子要素、元の基準点、回転角度といった情報は失われます。

たとえば、親要素を原点から移動し、その子として複数の部材を配置している場合、書き出し後は親の移動量が各部材の頂点座標へ加えられます。アップロード後の形状は同じ位置に見えても、親要素を選んでまとめて移動するような操作はできなくなります。

変換の適用方法が統一されていないと、部材の位置がずれる場合があります。一部の要素だけ変換を適用し、別の要素には変換情報を残したまま書き出すと、アップロード時の解釈によって位置関係が変わる可能性があります。

軸方向の違いにも注意が必要です。作成元とアップロード先で上方向として扱う軸が異なる場合、書き出し時または読み込み時に回転変換が行われます。同じ変換を両方で行うと、形状が横倒しになったり、意図しない方向を向いたりします。

点群では、測量座標などの大きな座標値を使用する場合があります。原点から非常に離れた座標をそのまま扱うと、表示処理の精度やアップロード先の内部処理によって位置のずれが見えることがあります。階層が崩れて要素が統合された結果、広い座標範囲が一つのモデルに含まれ、問題が目立つこともあります。

階層構造を整理するときは、名称だけでなく、どの段階で位置、回転、縮尺を頂点へ反映するかを統一することが重要です。

原因5:材質や面の単位で再分割される

OBJでは、面ごとに使用する材質を指定できます。アップロード先によっては、オブジェクト名やグループ名ではなく、材質の切り替わりを基準に形状を分割することがあります。この処理によって、作成元とは異なる階層が生成される場合があります。

たとえば、一つの壁へ複数の材質を割り当てている場合、作成元では一つの部材でも、アップロード後には材質ごとの複数要素へ分かれる可能性があります。反対に、異なる階や区画の部材へ同じ材質を使っていると、同じ材質を持つ面が一つの要素へ統合される場合があります。

点群から生成したメッシュでは、画像や色情報に応じて多数の材質領域が作られることがあります。書き出し時に材質境界ごとに面が分割される設定になっていると、アップロード後の階層へ非常に多くの要素が並びます。

材質ファイルが見つからない場合も構造へ影響する可能性があります。参照される材質が読み込めないと、すべての面へ共通の既定材質が割り当てられ、材質による区分が失われることがあります。反対に、同名の材質が複数存在すると、意図しない材質へ置き換わる場合があります。

多角形の面がアップロード時に三角形へ分割されることもあります。三角形化自体は階層を変えないこともありますが、面の分割処理と材質の再構成が同時に行われると、要素数や面数が作成元と一致しなくなる可能性があります。

部材管理と材質管理を同じ名称だけに依存させると、見た目の変更が階層構造にも影響します。部材を識別する名称と、色や画像を指定する材質名は役割を分けて設定することが重要です。

整理法1:アップロード先に合わせて階層を再設計する

一つ目の整理法は、作成元の階層をそのまま移そうとせず、アップロード先が認識できる構造へ再設計することです。OBJアップロードで安定した結果を得るには、受け渡し先の処理方法を基準に考える必要があります。

最初に確認したいのは、アップロード先がファイル、オブジェクト、グループ、材質のどの単位を個別要素として扱うかです。大規模な本番データを使う前に、簡単な形状を数個配置した検証用OBJを作成します。

検証用データでは、複数のオブジェクトに異なる名称を付けた状態、同じオブジェクト内に複数のグループを作った状態、異なるオブジェクトへ同じ材質を割り当てた状態などを準備します。アップロード後に、どの名称が一覧へ表示されるか、どの単位で表示を切り替えられるか、どの単位で選択や削除が行われるかを確認します。

アップロード先がファイル全体を一つのモデルとして扱う場合、OBJ内部で細かく階層を作っても操作単位にはなりません。その場合は、表示や差し替えを行いたい上位単位ごとにファイルを分割する必要があります。

アップロード先がオブジェクト名を認識する場合は、ファイルを大きく分けすぎず、内部のオブジェクト名で部材を整理できます。グループ名だけを認識する場合は、作成元の管理対象がグループとして書き出されるように設定します。

作成元の階層が四段階あっても、実際の確認作業で必要なのが建物、階、部材の三情報だけであれば、不要な作業用フォルダーまで移行する必要はありません。アップロード後に必要な分類だけを残し、受け渡し用の簡潔な構造を作ることが重要です。

作業用データと受け渡し用データを分けておけば、作成元の編集しやすい階層を維持できます。受け渡し用データでは、階層の平坦化、不要要素の削除、名称の統一、座標変換の適用などを行います。元データを直接変更しないことで、問題が起きたときにも元の状態へ戻れます。

整理法2:重複しない命名規則を設定する

二つ目の整理法は、階層が平坦化されても要素を識別できる命名規則を設定することです。同じ名前の部材が複数存在すると、アップロード時の統合や自動改名が起こりやすくなります。

名称には、現場、建物、階、区画、部材種別、番号などのうち、管理に必要な情報を一定の順序で含めます。たとえば、現場識別、建物識別、階識別、部材種別、固定番号という順番を決めます。

一階の壁と二階の壁を区別する場合、単に両方を「壁」とするのではなく、階を示す識別情報を含めます。複数棟がある場合は、建物の識別情報も追加します。これにより、親階層が消えても名称から所属を判断できます。

区切り文字や文字種も統一します。空白や環境によって扱いが変わりやすい記号を多用すると、名称が途中で切れたり、異なる文字へ置き換わったりする可能性があります。内部識別には英数字と限定した区切り文字を使い、説明が必要な場合は後半へ日本語名称を追加する方法があります。

番号は書き出し順に自動付与するだけではなく、可能であれば対象物へ固定します。データを編集するたびに番号が変わると、前回アップロードした要素と今回の要素を照合できません。削除された番号をすぐに別の部材へ使わない運用にすると、履歴を追いやすくなります。

オブジェクト名、グループ名、材質名へ同じ文字列を無条件に設定することも避けます。オブジェクト名には管理対象、グループ名には作業区分、材質名には表示表現というように役割を決めます。名称の役割を分ければ、材質変更によって部材識別まで変わる事態を防ぎやすくなります。

命名規則は担当者個人の判断に任せず、文書として共有します。新しい建物や階を追加するときの識別方法、欠番の扱い、修正版の表し方、使用できる文字を決めておくと、複数の担当者が書き出しても構造をそろえられます。

整理法3:管理単位ごとにOBJファイルを分割する

三つ目の整理法は、アップロード後に独立して操作したい管理単位ごとにOBJファイルを分割することです。アップロード先がOBJ内部のオブジェクト名やグループ名を読み取らない場合でも、ファイル単位であれば別のデータとして扱われる可能性があります。

分割の候補には、建物、階、工区、測定日、作業種別、更新範囲などがあります。たとえば、一階と二階を別のOBJにすれば、内部の要素が統合されても、少なくとも階単位の表示切り替えや差し替えは維持できます。

ただし、細かく分割しすぎると、アップロードするファイル数が増えます。更新対象の確認、材質ファイルの管理、削除、共有などの作業も複雑になります。分割単位は、実際に表示を切り替える範囲や、別々に更新する可能性がある範囲に合わせます。

上位の一段階をファイル名で表し、その下の部材をオブジェクト名で管理する構成は、比較的扱いやすい方法です。たとえば、階単位でファイルを分け、各ファイル内では壁、柱、床、設備をオブジェクトとして分けます。

ファイルを分割するときは、すべてのOBJで共通の原点と座標系を使用します。各ファイルを見やすくするために個別の中心位置へ移動してしまうと、アップロード後に重ねた際に位置が合いません。単体表示だけでなく、複数ファイルを同時表示する運用を想定して書き出すことが重要です。

材質ファイルや画像を使用する場合は、分割後の参照関係も確認します。同じ名称の材質ファイルや画像ファイルが複数存在すると、アップロードや保管の際に上書きされる可能性があります。ファイル名に管理単位の識別情報を含め、重複を避けます。

OBJのファイル名には、現場、区分、基準日、版番号などを一定の順番で付けます。ただし、更新のたびにファイル名を完全に変えると、アップロード先で新しい別モデルとして扱われる場合があります。差し替え方法に応じて、固定する部分と変更する部分を決めておく必要があります。

整理法4:原点・座標系・単位を統一する

四つ目の整理法は、原点、座標系、軸方向、単位を統一してからOBJを書き出すことです。階層の問題に見えても、実際には座標条件の違いによって部材が離れた場所へ配置されている場合があります。

最初に、現場全体で使用する共通原点を決めます。測量座標を使用するのか、現場内に設定したローカル原点を使用するのかを明確にします。ローカル原点を使用する場合は、元の座標へ戻すための移動量や回転条件を記録します。

複数のOBJへ分割する場合は、すべてに同じ変換条件を適用します。一階だけ異なる原点、二階だけ異なる回転という状態では、アップロード後に正しく重なりません。書き出し対象を変えても、原点と軸方向は固定します。

上方向の軸も確認が必要です。作成元とアップロード先で上方向の定義が異なる場合、モデルが横倒しになったり、前後が反転したりします。軸変換を作成元の書き出し時に行うのか、アップロード時に行うのかを決め、二重変換を避けます。

OBJでは、長さの単位を確実に伝える共通情報が常に利用されるとは限りません。作成元がメートルを前提にし、アップロード先が別の単位として解釈すると、全体の大きさや部材間の距離が変わります。

単位の誤りを防ぐには、既知の距離を持つ基準を設けます。建物の幅、標識間の距離、確認用の基準物などを測定し、アップロード前後で同じ値になるか確認します。単位はファイル名だけでなく、照合記録や作業手順にも記載します。

親要素や子要素に残っている移動、回転、拡大縮小の情報も確認します。書き出し前に変換を頂点へ適用する場合は、適用後の状態を作成元で再表示し、位置や大きさが変わっていないことを確かめます。

大きな座標値をローカル座標へ移す場合は、使用した移動量を記録します。書き出しのたびに目視で中心を移動すると、ファイルごとに異なる座標になりやすいため、数値として固定した変換条件を使うことが重要です。

整理法5:アップロード前後の照合記録を残す

五つ目の整理法は、アップロード前後の要素構造を比較できる照合記録を作成することです。見た目だけでは、同名要素の統合、一部グループの欠落、材質単位の再分割などを見逃す可能性があります。

照合記録には、ファイル名、オブジェクト名、グループ名、材質名、頂点数、点数、線数、面数、座標範囲などを記載します。すべての情報をアップロード先で取得できない場合でも、表示名、要素数、外形寸法、代表点の位置は比較できます。

頂点数や面数が変わっていても、必ずしも異常とは限りません。アップロード処理で重複頂点の統合、無効な面の除去、多角形の三角形化などが行われる場合があります。重要なのは、数値が変わった理由を説明できることです。

理由が分からないまま要素数や面数が大きく変わっている場合は、アップロード条件や書き出し設定を再確認します。特に、同じ材質の面が統合された場合や、一部の要素が対応外として除外された場合は、階層と形状の両方へ影響します。

座標範囲の記録も有効です。各要素について最小座標と最大座標を確認すれば、遠くへ飛んだ頂点や、単位の取り違えを発見しやすくなります。複数のOBJを重ねる場合は、各ファイルの範囲が想定した位置関係にあるか比較します。

アップロード後は、各階、各区画、各部材種別から代表的な要素を選び、名称、位置、寸法、材質、表示切り替えの単位を確認します。すべてを目視することが難しい場合でも、各分類から一定数を抽出すれば、階層変換の傾向を把握できます。

確認日、確認者、書き出し条件、アップロード条件、使用した原点、単位も記録します。同じOBJファイルであっても、アップロード時の設定が変われば結果が変わる可能性があります。ファイルだけではなく、処理条件を一緒に保管することが再現性の確保につながります。

点群OBJを書き出す前の確認手順

点群OBJを安定してアップロードするには、書き出し直前だけでなく、データ整理から確認までの手順を統一します。最初に作業用データを複製し、OBJ出力専用のデータを作成します。

作業用データには、編集途中の要素、確認用の形状、非表示の部材、複製した点群、不要な補助要素などが残っていることがあります。これらをそのまま書き出すと、アップロード後の階層へ不要な要素が追加されます。

出力専用データでは、アップロードする対象を明確にします。必要な点、線、面、部材だけを残し、空のオブジェクトや整理用フォルダーを確認します。非表示要素が書き出される設定になっていないかも確認が必要です。

次に、アップロード後の管理単位を決めます。建物単位で表示を切り替えるのか、階単位で差し替えるのか、部材単位で選択するのかを整理します。この方針に基づいて、ファイル分割、オブジェクト名、グループ名の役割を決定します。

名称を確認し、重複名や意味の分からない自動名称を修正します。親階層が失われても識別できるように、必要な所属情報を名称へ含めます。使用できる文字や区切り方も統一します。

その後、原点、軸方向、単位、位置、回転、拡大縮小を確認します。既知の距離を測定し、想定した単位であることを確かめます。分割OBJを作る場合は、すべて同じ座標条件で書き出します。

材質を使用する場合は、材質名の重複、参照先、画像ファイル名を確認します。不要な材質が大量に残っていると、アップロード後に細かな要素へ分割される可能性があります。ただし、材質を統合する場合は、必要な見た目や分類まで失わないように注意します。

OBJを書き出した後は、すぐに本番へアップロードせず、一度再読み込みして確認します。作成元へ戻すだけでなく、可能であれば別の確認環境でも開きます。異なる読み込み処理で確認することで、OBJ内部の名称やグループ構造が正しく記録されているか判断しやすくなります。

アップロード後に階層を確認する手順

アップロードが完了したら、最初にモデル全体の位置と大きさを確認します。階層一覧だけを見るのではなく、全体が想定した場所に表示され、方向や縮尺が正しいかを確認します。

次に、アップロード後の要素数を確認します。作成元のオブジェクト数、グループ数、分割ファイル数と比較し、増減の理由を整理します。要素数が大幅に少ない場合は、同名要素や材質による統合が考えられます。大幅に多い場合は、材質境界や細かな面のまとまりによる分割が考えられます。

各要素の名称も確認します。文字化け、途中で切れた名称、自動的に付加された番号、同名要素の統合がないかを見ます。命名規則どおりに並んでいれば、階層が一段階になっていても所属を判断できます。

表示のオンとオフを切り替え、操作単位を確認します。建物や階を非表示にしたいのに、ファイル全体しか切り替えられない場合は、分割単位を見直す必要があります。反対に、一つの部材が細かく分割されすぎている場合は、書き出し時の材質やグループ設定を確認します。

代表的な部材を選択し、位置、寸法、向き、材質を比較します。一階、上階、外構、設備など、異なる分類から選ぶことが重要です。同じ種類の部材だけを確認すると、特定の階や区画だけに発生している問題を見逃す可能性があります。

点群OBJの場合は、点だけが表示されているのか、点群から生成した面が表示されているのかも確認します。アップロード先が点要素の表示に対応していない場合、点群OBJの頂点は読み込まれていても見えないことがあります。この現象は階層崩れとは別の問題ですが、同時に発生すると原因を判断しにくくなります。

最後に照合結果を記録し、問題がないことを確認してから共有や後工程へ進みます。問題が見つかった場合は、アップロード後に手作業で名称を直すだけでなく、書き出し元の構造や命名規則へ修正を反映します。

階層整理で起こりやすい失敗

階層整理で起こりやすい失敗の一つは、作成元の階層を細かく残しすぎることです。アップロード先が一段階しか扱えない場合、複雑な親子構造を維持しようとしても、最終的には平坦化されます。

反対に、すべての部材を一つのオブジェクトへ結合する方法にも注意が必要です。アップロードは簡単になりますが、特定の階や部材だけを非表示にしたり、更新したりできなくなります。小さな修正でも全体を再アップロードする必要が生じる可能性があります。

ファイルを細かく分割しすぎることも失敗につながります。要素数が増えると、ファイル名、材質、画像、更新履歴の管理が複雑になります。アップロード後の一覧にも多数の要素が並び、目的のデータを探しにくくなります。

自動的に付けられた名称をそのまま使うことも避けた方が安全です。作成順や複製順に基づく名称は、編集や再書き出しによって変わる可能性があります。前回と今回の要素を対応させるには、対象物に固定した識別情報が必要です。

材質名を部材名として利用する方法も不安定です。同じ材質を複数の部材へ使うと統合される可能性があり、材質を変更すると識別情報まで変わります。部材識別と見た目の設定は分けて管理します。

座標を見やすい位置へ移動したまま記録を残さないことも問題になります。単体では正しく表示されても、別の時期に取得した点群や他の階のOBJと重ねられなくなります。ローカル座標へ変換した場合は、必ず変換量を記録します。

アップロード後の見た目だけで成功と判断することも避けます。一部の要素が統合されていても、全体形状は同じように見えることがあります。表示切り替え、要素名、面数、座標範囲まで確認しなければ、更新や修正の段階で問題が明らかになる可能性があります。

点群OBJを継続的に更新するための運用

点群OBJは一度アップロードして終わるとは限りません。現場の進捗、追加計測、設計変更、不要点の除去、メッシュの修正などによって、同じ対象を繰り返し更新することがあります。

継続的に更新する場合は、ファイル名と要素名の固定部分を決めます。対象を識別する部分は変更せず、版や更新日だけを別の項目として管理します。名称全体を毎回変えると、前回データとの対応が分かりにくくなります。

更新単位も統一します。階単位で差し替える運用を決めた場合は、毎回同じ階の範囲でOBJを作成します。前回は階単位、今回は部屋単位というように分割方法を変えると、アップロード後の階層が混在します。

書き出し設定は、担当者が変わっても再現できるように記録します。対象要素、オブジェクトとグループの出力方法、材質の扱い、軸方向、単位、原点、変換の適用条件などを手順化します。

確認済みの小規模な検証用OBJを保管しておくことも有効です。アップロード先の処理方法が変更された可能性がある場合、本番データの前に検証用OBJをアップロードすれば、オブジェクト名、グループ名、材質の扱いが以前と同じか確認できます。

旧版を保管する場合は、最新版と混在しないようにします。アップロード先で旧版と新版を同時に表示すると、面が重なってちらついたり、同じ名称の要素が複数存在したりします。更新前に既存データを削除するのか、非表示にするのか、新しい版として追加するのかを決めておきます。

照合記録には、更新前後の差分も残します。点数や面数が変わった理由、追加した範囲、削除した不要点、変更した材質などを記録すれば、階層の変化が意図したものか判断しやすくなります。

点群取得の段階から管理単位を意識することも重要です。計測日、工区、階、対象物などの情報を整理しておけば、OBJへ変換した後も名称やファイル分割へ反映できます。後工程だけで無理に分類するよりも、取得から共有まで一貫した識別方法を使う方が効率的です。

まとめ

点群OBJアップロード後に階層が崩れる主な原因は、OBJが作成元の多段階な親子関係をそのまま保持する形式ではないことです。オブジェクト名とグループ名の解釈、同名要素の統合、空階層の削除、座標変換の適用、材質単位の再分割などによって、アップロード後の管理構造が変わります。

階層の崩れを防ぐには、作成元の構造をそのまま移行するのではなく、アップロード先が認識できる単位へ再設計することが重要です。アップロード先に合わせた階層設計、重複しない命名規則、管理単位ごとのファイル分割、原点と座標条件の統一、アップロード前後の照合を組み合わせることで、再現性を高められます。

形状が表示されたことだけでアップロード成功と判断せず、要素名、表示切り替えの単位、頂点数、面数、座標範囲、材質の対応まで確認します。書き出し条件と確認結果を記録し、更新時にも同じ構成を再現できるようにすることが大切です。

点群の取得段階から現場、階、区画、計測日などを整理し、OBJの書き出しやアップロードまで一貫した管理単位を使えば、後工程の負担を減らせます。現場での点群取得からデータ整理、共有までの流れを効率化する際は、LRTK Phoneを活用した運用も検討するとよいでしょう。

現場を3Dで残して、あとから測る。
実際の画面と動画で使い方を確認できます。

LRTK Phoneの使い方・実例を見る
資料請求導入相談
現場をスマホで3DスキャンLRTK Phone実例を見る