LRTKレフィクシア株式会社

点群OBJの絶対パス参照を相対パスへ直す5つの設定方法

絶対パス参照が点群OBJアップロードで問題になる理由

点群OBJをクラウド環境や共有システムへアップロードしたところ、形状は表示されるのに色やテクスチャが反映されないことがあります。OBJファイル、MTLファイル、画像ファイルをすべて用意したにもかかわらず表示が崩れる場合は、ファイル内に記録された参照先が絶対パスになっていないか確認することが重要です。

絶対パスとは、保存場所を端末内の先頭階層から指定する記述です。たとえば、ドライブ文字、利用者ごとのフォルダ名、作業用フォルダの位置などを含む長い参照先が記録されている状態です。作成した端末では正しく読み込めても、別の端末やアップロード先には同じ保存場所が存在しないため、参照されているMTLファイルや画像ファイルを見つけられません。

一方、相対パスは、OBJファイルやMTLファイルが置かれた場所を基準として参照先を指定します。OBJファイルと同じフォルダにあるMTLファイルであれば、フォルダ全体の保存場所が変わっても参照関係を維持しやすくなります。画像をtexturesという下位フォルダへ入れた場合も、MTLファイルから見た位置関係が変わらなければ、別の端末やアップロード先で読み込める可能性が高まります。

「点群 OBJ アップロード」で検索する実務担当者が直面しやすいのは、ファイルが破損しているわけではなく、作成環境に依存した参照情報が残っている問題です。OBJ本体だけを確認して正常と判断しても、MTLファイルや画像ファイルへの参照が切れていれば、アップロード後の見え方は変わります。

OBJは形状情報を記録できるテキスト形式です。頂点、面、法線、テクスチャ座標などを格納できますが、画像そのものをOBJファイル内部へ必ず埋め込む形式ではありません。材質情報は別のMTLファイル、表面に表示する画像はさらに別の画像ファイルとして管理される構成が一般的です。そのため、OBJ、MTL、画像の位置関係を一つのデータセットとして考える必要があります。

なお、業務上「点群OBJ」と呼ばれているファイルでも、内容は必ずしも同じではありません。頂点だけを記録したもの、頂点と面を持つもの、頂点色情報を含むもの、MTLと画像を利用するものなどがあります。頂点だけのOBJにはテクスチャ参照が存在しないこともあるため、絶対パスを直せばすべての表示問題が解決するとは限りません。まず、対象ファイルが何を参照しているかを確認することが出発点です。

絶対パスから相対パスへの変更は、単なる文字列の置換ではありません。参照元となるファイル、参照先の階層、ファイル名の大文字と小文字、区切り文字、空白、記号、圧縮時の構成まで含めて整える必要があります。設定を誤ると、元の端末でも読み込めなくなる可能性があるため、原本を残したうえで複製した作業用データに対して修正します。

相対パスへ直す前にOBJとMTLの参照関係を確認する

相対パスへの修正を始める前に、OBJ、MTL、画像の関係を把握します。ここを確認せずにファイルを移動すると、どの参照をどの基準で書き換えるべきか分からなくなります。

一般的な構成では、OBJファイル内のmtllibという記述がMTLファイルを指定します。たとえば、モデルのファイル名がsurvey.obj、材質ファイルがsurvey.mtlであり、両方が同じフォルダにある場合、OBJ内ではmtllib survey.mtlのように記述できます。この状態では、OBJが保存されている場所を移動しても、OBJとMTLを一緒に移動すれば参照関係を保ちやすくなります。

MTLファイルには、材質名、色、透明度、画像の参照先などが記録されます。画像を利用する場合は、map_Kdなどの記述に画像ファイルの場所が指定されることがあります。画像がMTLファイルと同じフォルダにあれば、画像名だけで参照できる場合があります。画像をtexturesフォルダへ分ける場合は、textures/surface.jpgのように相対的な位置を記述します。

重要なのは、OBJからMTLを見る参照と、MTLから画像を見る参照では、参照元が異なる可能性があることです。一般にはOBJ内のMTL参照はOBJの位置を基準とし、MTL内の画像参照はMTLの位置を基準として解決されます。ただし、読み込み側の実装によって参照の扱いが異なる場合があります。アップロード先の仕様が公開されている場合は、対応する構成や制限も確認します。

修正前には、OBJファイルをテキストとして開き、mtllibという文字列を検索します。見つからなければ、MTLを使用していない可能性があります。mtllibが複数ある場合は、複数のMTLファイルを参照している可能性があるため、すべてのファイルがそろっているか確認します。

続いてMTLファイルを開き、map_で始まる画像参照の記述を探します。代表的なものとして表面色に使う画像、透明度に使う画像、凹凸表現に関係する画像などがあります。どの命令に対応するかはデータの作成方法によって異なりますが、絶対パスが残っていないかという観点では、画像ファイル名を含む行を広く確認することが大切です。

絶対パスには、ドライブ文字から始まる形式だけでなく、先頭の区切り文字から始まる形式や、ネットワーク上の共有場所を示す形式もあります。利用者名や案件名を含む作業フォルダがそのまま記録されていることもあります。元の端末で読み込めるから問題ないと判断せず、別の場所へ移したときにも成立する記述かを見ます。

OBJとMTLはテキストとして編集できますが、文字コードや改行方法を不用意に変えると、読み込み側との相性によって問題が生じることがあります。編集にはプレーンテキストを扱える手段を使用し、文書向けの装飾情報を付加しないようにします。保存後は、拡張子が自動的に変更されていないことも確認します。

また、作業前の原本と修正版を同じフォルダに混在させると、どちらをアップロードしたか分からなくなります。原本を保管するフォルダ、修正作業用のフォルダ、アップロード確認済みのフォルダを分け、ファイル一式の状態を管理すると安全です。

設定方法1 OBJファイルのmtllibを相対参照へ統一する

最初の設定は、OBJファイルからMTLファイルへの参照を相対パスに直すことです。テクスチャが表示されない問題では画像側に注目しがちですが、OBJからMTLへの参照が切れていれば、MTL内の設定をどれだけ整えても読み込まれません。

OBJとMTLを同じフォルダへ置く構成が最も分かりやすい場合、mtllibにはMTLのファイル名だけを記述します。修正前にドライブ文字や長い作業フォルダが含まれている場合は、その部分を取り除き、実際に同じフォルダ内に存在するMTL名へ合わせます。

たとえば、OBJ内に作業端末固有の保存場所を含む参照がある場合、修正後はmtllib site_model.mtlのような記述にします。このとき、実際のMTLファイル名がsite-model.mtlやSite_Model.mtlになっていれば一致しません。見た目が似ている名前ではなく、文字、記号、大文字と小文字、拡張子まで照合します。

MTLをmaterialsという下位フォルダにまとめる場合は、mtllib materials/site_model.mtlのように、OBJから見た相対位置を指定します。この構成でOBJだけを別の場所へ移すと参照が切れるため、アップロード時にはmaterialsフォルダも含めて同じ階層構成を維持しなければなりません。

反対に、OBJより上位のフォルダにあるMTLを参照する記述も技術的には考えられますが、アップロード用途では避けた方が管理しやすくなります。アップロード先では、提出したフォルダの外側にあるファイルへアクセスできない場合があるためです。相対パスにしただけで安全とは限らず、参照先がアップロード対象のデータセット内に収まっていることが重要です。

OBJファイル内に複数のmtllibがある場合、使用中の材質がどのMTLに定義されているか確認します。不要になったMTL参照が残っていると、存在しないファイルを探して警告や読み込みエラーが発生する場合があります。ただし、どの材質が使われているか判断できない状態で参照を削除するのは避けます。まず必要なMTLをすべて集めて相対化し、再読込の結果を見てから整理します。

mtllibの記述だけでなく、usemtlという材質名の指定も確認します。usemtlはファイルの場所ではなく、MTL内に定義された材質名との対応を示します。したがって、相対パスの修正対象ではありません。しかし、MTLファイルを差し替えた際に材質名が変わると、参照先のMTLが見つかっても意図した材質が適用されないことがあります。

OBJファイル内でmtllibが見つからず、画像ファイルも使用されているように見える場合は、書き出し時に関連情報が欠落した可能性があります。別ファイルとしてMTLが存在していても、OBJから参照されていなければ自動的に関連付けられない読み込み環境があります。この場合は、材質構成を確認したうえで正しいmtllibを追加するか、元データから関連ファイルを含めて書き出し直す方法を検討します。

手作業で修正する際は、ファイル名に空白や複雑な記号が含まれていると見落としが増えます。まずはファイル名を変更せず、現在の名前と記述を完全に一致させて読み込みを確認します。名前を整理する場合は、その後にOBJ、MTL、画像の参照をまとめて更新します。

設定方法2 MTLファイルのテクスチャ参照を相対化する

二つ目の設定は、MTLファイルから画像ファイルへの参照を相対パスに直すことです。OBJからMTLを正しく読めていても、MTL内の画像参照が作成端末の絶対パスになっていると、アップロード先では表面画像が見つかりません。

修正を始める前に、MTLファイルが参照している画像をすべて特定します。画像ファイルが一枚だけとは限りません。複数の材質が定義されている場合、場所ごとに異なる画像を使用していることがあります。また、表示色に使う画像だけでなく、透明度や表面表現に関係する画像を参照していることもあります。

画像をMTLと同じフォルダに置く場合は、参照先を画像ファイル名だけにします。たとえば、map_Kd surface_01.jpgのような形です。OBJ、MTL、画像を一つのフォルダへまとめる構成は、階層が単純で確認しやすい利点があります。一方、案件によって画像が多数ある場合は、ファイル一覧が分かりにくくなるため、texturesなどの下位フォルダへまとめる方法もあります。

画像を下位フォルダにまとめる場合は、MTLファイルから見た位置を記述します。MTLとtexturesフォルダが同じ階層にあるなら、map_Kd textures/surface_01.jpgのように指定します。ここで基準になるのは、一般にはMTLファイルの保存位置です。OBJの保存位置から見た画像の場所を書いてしまうと、MTLが別フォルダにある構成では一段ずれることがあります。

たとえば、OBJが最上位、MTLがmaterialsフォルダ、画像がtexturesフォルダにある構成では、MTLから画像を見るために上位階層へ戻る記述が必要になる場合があります。しかし、上位階層へ戻る参照は間違えやすく、アップロード先の処理によっては扱いに制限がある可能性もあります。実務では、MTLと画像を同じ下位フォルダにまとめるか、MTLと画像の関係が単純になるよう再配置する方が安全です。

絶対パスを削除するときは、末尾の画像名だけを残せばよいとは限りません。画像を別フォルダへ配置している場合は、そのフォルダ名を含める必要があります。参照先をsurface_01.jpgへ変更したのに、実際の画像がtexturesフォルダ内にあれば見つかりません。文字列の編集と実ファイルの移動を一組として行います。

画像の拡張子にも注意が必要です。参照記述では.jpgとなっているのに、実ファイルが.jpegである場合や、拡張子の大文字と小文字が異なる場合があります。作成端末では読み込めても、アップロード先では別の名前として扱われる可能性があります。ファイル一覧の表示上で同じに見えても、実際の拡張子を確認します。

MTLの画像参照行には、画像名の前に追加の指定が含まれる場合があります。このような行を単純に空白で分割し、最後の文字列だけを画像名として機械的に置換すると、設定値を壊すことがあります。手動で編集する場合は、参照命令の構造を確認し、ファイルパスの部分だけを変更します。

画像ファイル名に空白が含まれている場合、読み込み側がどこまでをファイル名として解釈するかで差が出る可能性があります。引用符による囲みを認識する環境もありますが、対応は一律ではありません。アップロード用データでは、半角英数字とアンダースコアを中心とした単純な名称に統一すると、環境差を減らしやすくなります。

ただし、画像名を変更しただけでは参照は更新されません。surface image 01.jpgをsurface_image_01.jpgへ変更した場合は、MTL内のすべての該当箇所も変更します。大規模なデータでは同じ画像を複数の材質が参照していることがあるため、一か所だけ直して完了としないようにします。

設定方法3 書き出し時に関連ファイルを同じ構成へ集約する

三つ目の設定は、変換や書き出しの段階で、OBJに関係するファイルを一つの管理可能な構成へ集約することです。すでに出力されたファイルを手作業で直す方法もありますが、毎回同じ問題が起きる場合は、元データからの書き出し設定を見直した方が効率的です。

三次元データをOBJへ変換する処理では、MTLを同時に生成する設定、画像を複製する設定、参照先を相対化する設定などが用意されている場合があります。具体的な名称は使用する環境によって異なりますが、確認すべき点は、書き出したOBJだけで別の端末へ移動できる構成になっているかです。

書き出し先には、新規の空フォルダを指定します。既存の作業フォルダへ書き出すと、過去のMTLや画像が残っているため、今回生成されたファイルだけで成立しているか判断できません。空のフォルダへ書き出せば、生成されたOBJ、MTL、画像を識別しやすくなります。

関連ファイルを収集する設定がある場合は、元の画像を別の場所から参照し続けるのではなく、書き出し先のフォルダ内へ複製する構成を選びます。元データが共有場所、利用者固有の作業フォルダ、外部記憶領域などにあると、その絶対位置がMTLへ記録されることがあります。書き出し先へ画像を収集できれば、相対参照へ整理しやすくなります。

書き出し後には、画像が本当に複製されているか確認します。MTLだけが生成され、画像は元の場所を参照したままということもあります。OBJ、MTL、画像の更新日時やファイル数を確認し、対象案件で使用している素材がそろっているかを見ます。

画像を埋め込む設定と、外部ファイルとして保存する設定が選べる場合もありますが、OBJとMTLの一般的な構成では、画像を外部ファイルとして扱うことがあります。アップロード先がどの構成に対応するか不明な場合は、OBJ、MTL、画像を明示的に一式として管理する方が内容を確認しやすくなります。

点群から作成したメッシュをOBJへ書き出す場合、不要な高解像度画像が多数生成されることがあります。絶対パスの問題を解消しても、画像の枚数や容量がアップロード条件を超えると処理できません。パス修正と同時に、必要な画像が何枚あるか、未使用の画像が混ざっていないか、同じ画像が重複していないかを確認します。

ただし、未使用に見える画像を先に削除すると、特定の材質だけが表示されなくなる可能性があります。まず関連ファイルをすべて集約して相対パスで読み込める状態を作り、その後、参照されていないファイルを識別して整理する順序が安全です。

書き出し設定を変更した場合は、同じ元データから複数の条件で出力し、フォルダ構成と参照記述を比較すると原因を判断しやすくなります。形状のみの書き出しでは問題なく、材質と画像を含めた書き出しで絶対パスが生じるなら、画像収集や材質出力の設定に原因があると考えられます。

元データに登録されている画像の場所そのものが絶対パスで管理されている場合、OBJ書き出し時の設定だけでは相対化できないことがあります。その場合は、元データ側で画像を案件フォルダ内へまとめ、参照を更新してからOBJを書き出します。つまり、最終出力だけでなく、元の制作環境における素材管理も見直す必要があります。

設定方法4 ファイル名と階層をアップロード向けに正規化する

四つ目の設定は、OBJ、MTL、画像のファイル名とフォルダ階層を、アップロード先で解釈されやすい形へ整えることです。絶対パスを相対パスへ変更しても、名称や階層に環境依存の要素が残っていると、参照が切れる可能性があります。

まず、フォルダ階層を深くしすぎないようにします。案件名、年月日、作業者名、処理段階などをすべてフォルダ名へ入れると、参照先が長くなり、移動や圧縮時のミスも増えます。アップロード対象の最上位フォルダを一つ決め、その直下にOBJとMTLを置き、必要に応じて画像用の下位フォルダを一つ設ける程度の単純な構成が管理しやすくなります。

ファイル名には半角英数字、アンダースコア、短いハイフンなどを中心に使用します。日本語名が必ず問題になるわけではありませんが、アップロード処理、解凍処理、変換処理の各段階で文字の扱いが異なると、名称が変化する可能性があります。安全性を優先する場合は、内容を識別できる範囲で単純な名称にします。

空白を含むファイル名も避ける方が無難です。画像名に複数の空白があると、MTL内の参照行でオプションとの境界を判断しにくくなる場合があります。空白をアンダースコアへ置き換えた場合は、実ファイルだけでなく、OBJやMTLに書かれた参照も同時に更新します。

大文字と小文字の統一も重要です。作業端末ではSurface.JPGとsurface.jpgを同じファイルとして扱える場合でも、アップロード先では別の名前として扱われることがあります。ファイル名を小文字へ統一する運用を決めた場合は、参照記述も小文字へそろえます。ただし、拡張子だけを変更したつもりでも、実際には名称変更が反映されていないことがあるため、変更後に一覧を再確認します。

区切り文字については、相対パス内で使用する向きを統一します。端末内の表示では逆向きの区切り文字が使われていても、OBJやMTLの参照では一般的な形式に合わせた方が移植性を高めやすくなります。読み込み環境によっては両方を解釈することもありますが、それを前提にせず、一式の中で表記を統一します。

ファイル名の重複にも注意します。異なるフォルダに同じ名前の画像が存在し、集約時に一つのフォルダへ移すと、片方が上書きされることがあります。たとえば、複数の材質がそれぞれtexture.jpgという名称を使用している場合、単純に同じフォルダへまとめることはできません。重複しない名前へ変更し、MTL内の対応する参照を個別に修正します。

フォルダ構成を変更した後は、古い絶対パスの一部が残っていないか、OBJとMTLを全文検索します。ドライブ文字、元の利用者名、以前の案件フォルダ名、共有場所の名称などを検索すると見つけやすくなります。画像名だけを確認するのではなく、元の保存場所を示す特徴的な文字列が残っていないかを見ます。

圧縮ファイルにまとめる場合は、最上位フォルダの扱いにも注意します。圧縮を展開するとフォルダが一段増える構成でも、OBJ、MTL、画像の相対的な位置が同じであれば、通常は参照関係を維持できます。しかし、OBJだけを選択して圧縮し、下位フォルダを含め忘れると画像が欠落します。圧縮後の内容を開き、必要な階層が保持されていることを確認します。

案件管理のためにファイル名へ版番号を付ける場合は、OBJだけを改名し、MTLや参照記述をそのままにしないようにします。OBJ名とMTL名が同じである必要はありませんが、どの組み合わせが正しいか分かりにくくなります。修正版を作るときは、一式を複製し、参照関係を保ったまま版を管理します。

設定方法5 別フォルダで再読込してから一式をアップロードする

五つ目の設定は、修正後のデータを元の作業場所とは異なるフォルダへ移し、再読込して参照の独立性を確認することです。相対パスへ直したつもりでも、元の画像が作業端末内に残っていると、読み込み側が偶然そのファイルを見つけてしまうことがあります。

確認用として新しい空フォルダを作成し、アップロードする予定のOBJ、MTL、画像だけをコピーします。元の制作データや画像保存場所とは離れた階層に置きます。可能であれば、作業用フォルダ名や上位階層名も変更し、絶対パスに依存していないかを確かめます。

新しいフォルダからOBJを読み込み、形状、材質、画像の表示を確認します。形状だけが表示され、表面が単色になる場合は、OBJからMTL、またはMTLから画像への参照が切れている可能性があります。一部だけ画像が欠ける場合は、特定の材質が参照する画像名や配置に問題があると考えられます。

再読込時に警告が表示される場合は、その内容を記録します。見つからないファイル名が示されていれば、MTLや画像の不足を直接確認できます。警告が表示されず見え方だけが変わる場合は、材質の対応状況、画像形式、テクスチャ座標の有無など、パス以外の原因も考えます。

より確実に確認するには、修正済みフォルダを圧縮し、別の場所へ展開してから再読込します。この手順により、圧縮対象の選択漏れ、階層の変化、ファイル名の変化なども確認できます。アップロード時に圧縮ファイルを使用する場合は、実際の提出形態に近い条件で試験できます。

アップロード後にシステム側でフォルダ構成が変換される場合は、相対パスが正しくても読み込めないことがあります。たとえば、アップロード処理がOBJだけを取り出し、MTLや画像を別の場所へ保存する仕組みでは、元の階層を前提とした参照が成立しません。この場合は、アップロード先が要求するファイル配置や一括登録方法に合わせる必要があります。

別フォルダでの再読込に成功しても、アップロード先で必ず同じ表示になるとは限りません。アップロード先が対応していないMTLの記述や画像形式が含まれている可能性があるためです。それでも、ローカル環境に固有の絶対パス依存を切り分けられるため、確認手順として大きな意味があります。

確認後は、アップロードに使用した一式を保存します。修正作業を続ける過程でファイルが更新されると、確認済みの状態と提出した状態が一致しなくなります。再読込に成功したフォルダをそのまま提出用として管理し、OBJ、MTL、画像の一部だけを後から差し替えないようにします。

アップロード後の表示確認では、単に処理完了と表示されるかだけでなく、モデル全体を回転し、複数の面や範囲を確認します。画像が一枚だけ欠けていても、最初の表示位置によっては気づかないことがあります。点群OBJの範囲が広い場合は、離れた場所や細部も確認します。

よくある失敗と切り分け方

相対パスへ変更した後も表示できない場合は、参照のどの段階で問題が起きているかを切り分けます。OBJ、MTL、画像を一度に変更すると原因が見えにくくなるため、形状、材質、画像の順に確認します。

OBJ自体が読み込めない場合は、mtllibより前に、OBJの構文、ファイル容量、頂点や面の記述、文字コード、アップロード条件などを確認します。絶対パスは主に外部ファイルの参照へ影響するため、形状まで読み込めない場合は別の原因が含まれている可能性があります。

形状は表示されるが材質が反映されない場合は、OBJ内のmtllib、MTLファイルの存在、usemtlと材質名の対応を確認します。mtllibに指定されたMTLが見つからない場合だけでなく、MTL内のnewmtlで定義された名称とOBJ側のusemtlが一致していない場合もあります。

材質の色は反映されるが画像だけが表示されない場合は、MTLから画像への参照を重点的に見ます。相対パスの起点、画像名、拡張子、大文字と小文字、下位フォルダの有無を確認します。画像ファイルが破損していないか、一般的な画像閲覧環境で開けるかも確かめます。

一部の画像だけが表示されない場合は、MTL内に複数の参照形式が混在していないか確認します。手作業で一部だけ修正した結果、古い絶対パスと新しい相対パスが混ざっていることがあります。元のフォルダ名やドライブ文字を全文検索し、残存箇所を探します。

画像は表示されるが位置がずれている場合は、パスではなくテクスチャ座標に原因がある可能性があります。OBJ内にvtの記述が存在するか、面の記述が適切なテクスチャ座標を参照しているかを確認します。相対パスは画像を見つけるための設定であり、画像を形状へどのように貼り付けるかまでは修正しません。

点だけで構成されたOBJでは、面やテクスチャ座標が存在しないことがあります。この場合、MTLと画像をそろえても、面へ画像を貼る通常の表示にはなりません。点ごとの色情報を持つ独自の記述を使用している場合は、アップロード先がその記述へ対応しているかも関係します。「点群OBJ」という名称だけで、メッシュOBJと同じ表示方式だと判断しないことが大切です。

元の端末では表示でき、別フォルダでは表示できない場合は、絶対パスや検索場所への依存が残っている可能性が高いと考えられます。元の端末でも表示できなくなった場合は、参照記述の編集ミス、ファイル名変更の不一致、保存形式の変化などを確認します。

別フォルダでは表示できるがアップロード後に表示できない場合は、アップロード先の対応範囲を確認します。フォルダを含む一括アップロードに対応しているか、MTLを認識するか、画像の拡張子や容量に条件があるか、ファイル名に制限があるかなどが切り分けの対象です。

アップロード処理中にファイル名が自動変更される環境では、MTL内の参照と一致しなくなる可能性があります。重複名を避けるために画像名へ文字列が追加される仕組みなどがある場合は、アップロード前の相対パスだけでは解決できません。一式の関係を保ったまま登録できる方法を確認します。

絶対パスを相対パスへ変更したことで表示が直った場合も、元の絶対パスに含まれていた画像がすべて集約されているか確認します。一部の画像だけが作業端末外に残っていると、後日別の担当者が再利用するときに同じ問題が再発します。

点群OBJアップロード前の確認手順

点群OBJをアップロードする前には、最初に提出対象の専用フォルダを作り、OBJ、MTL、画像を集めます。元の制作環境から直接アップロードするのではなく、提出用の一式を独立させることで、参照漏れや不要ファイルの混入を防ぎやすくなります。

OBJファイルを開き、mtllibの記述と実際のMTL名を照合します。MTLを同じフォルダに置くならファイル名だけ、下位フォルダに置くならOBJから見た相対位置が記述されていることを確認します。作業端末固有の場所を示す文字列が残っていれば修正します。

次にMTLファイルを開き、画像参照をすべて確認します。実際の画像ファイル数と参照行の数が必ず一致するわけではありませんが、記述された画像が提出フォルダ内に存在することを確かめます。画像名の表記、拡張子、大文字と小文字も照合します。

ファイル名とフォルダ名を整理した場合は、名称変更後に参照記述をもう一度確認します。先に参照を修正し、その後でファイル名を変更すると不一致が起きるため、最終状態を基準に点検します。

提出フォルダの外側を参照する記述がないことも重要です。上位階層へ戻る相対参照が含まれている場合、提出対象外のファイルへ依存していないか確認します。アップロード一式だけで完結させるには、参照先をすべて最上位フォルダの内側へ収めます。

一式を別の空フォルダへコピーし、OBJを再読込します。元の制作場所を使わずに形状、材質、画像が表示できれば、絶対パスへの依存を減らせていると判断しやすくなります。再読込時の警告も確認し、見つからないファイルが示されていないことを見ます。

圧縮してアップロードする場合は、圧縮後のファイルを別の場所へ展開し、もう一度読み込みます。圧縮前に成功していても、下位フォルダの選択漏れや階層の変化で参照が切れる場合があるためです。

アップロード後は、形状が表示されたかだけで完了にしません。表面画像、材質の切り替わり、離れた範囲、裏側、細部を確認します。元データと比較できる画像や確認記録があれば、表示差を発見しやすくなります。

運用を標準化する場合は、案件ごとにフォルダ構成を変えず、OBJとMTLは最上位、画像はtexturesフォルダというように社内ルールを決める方法があります。命名規則、使用できる文字、版番号の付け方、圧縮方法、再読込の確認場所まで決めておくと、担当者が変わっても同じ手順で処理できます。

修正履歴も残します。どの絶対パスをどの相対パスへ変更したか、どのファイルを移動または改名したかを記録すれば、表示に問題が起きた際の切り分けに役立ちます。OBJやMTLを直接編集する作業では、小さな変更が結果へ大きく影響するため、原本と修正版の区別を明確にします。

まとめ

点群OBJのアップロード後に材質や画像が表示されない場合は、OBJや画像の破損だけでなく、絶対パス参照が残っていないか確認する必要があります。作成端末固有の保存場所を含む参照は、別端末やクラウド環境では成立しないためです。

対策の基本は、OBJ内のmtllibを相対化し、MTL内の画像参照も相対化することです。そのうえで、書き出し時に関連ファイルを一つのフォルダへ集約し、ファイル名と階層を単純な構成へ整えます。最後に、元の作業場所とは異なるフォルダで再読込し、アップロード対象の一式だけで表示できることを確認します。

相対パスは、文字列を短くするための設定ではありません。OBJ、MTL、画像の位置関係を維持し、保存場所が変わっても再利用できるデータセットを作るための仕組みです。パスだけを修正しても、画像の欠落、名称の不一致、階層の変更、対応外の材質設定などが残っていれば表示は直りません。

また、点群OBJには、頂点だけを持つもの、面を持つもの、MTLと画像を使うものなど、さまざまな構成があります。表示されない原因を考える際は、対象ファイルが本当に外部画像を参照しているのか、テクスチャ座標や面情報を持っているのかも確認します。

点群データを現場から持ち帰り、変換、整理、共有、アップロードする工程では、取得時点からファイルの管理方法をそろえておくことが重要です。現場で取得したデータを扱う仕組みを見直す際は、データの受け渡しや後工程まで含めて、LRTK Phoneの活用も検討してみてください。

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

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