点群データから作成した三次元モデルをOBJ形式でアップロードした際、形状は正常に表示されるのに、表面の写真や色だけが反映されないことがあります。モデル全体が白色や灰色になる、一部の面だけ画像が欠ける、アップロード前には見えていた模様がクラウド上では消えるといった現象です。
このような表示不良の原因として見落とされやすいのが、テクスチャ画像のファイル名に含まれる大文字と小文字の違いです。画像ファイルの実名が「texture01.jpg」である一方、材質ファイル内の参照が「Texture01.jpg」になっている場合、処理環境によっては別のファイルとして扱われます。
作成に使用した端末では正常に表示できていても、別の端末やクラウドへ移すと読み込めないことがあります。これは、ファイル名の大文字小文字を同一視する環境と、厳密に区別する環境があるためです。点群OBJを異なる環境へアップロードする場合は、作成環境で表示できたかどうかだけではなく、参照名と実ファイル名が完全に一致しているかを確認する必要があります。
さらに、確認対象は画像ファイルの名前だけではありません。OBJファイルが参照するMTLファイル名、OBJファイル内の材質名、MTLファイル内の材質定義、画像の拡張子、画像を保存したフォルダ名、相対パスなども関係します。どこか一文字でも異なると、形状は読み込めてもテクスチャだけが見つからない場合があります。
この記事では、「点群 OBJ アップロード」で検索している実務担当者に向けて、テクスチャ名の大文字小文字を揃えるために確認したい6つの項目を解説します。表示不良の原因を切り分ける順番から、ファイル名を修正する際の注意点、アップロード前の標準的な確認手順まで整理します。
点群OBJでテクスチャ名の不一致が問題になる理由
OBJ形式の三次元データは、一つのファイルだけで形状と画像をすべて管理するとは限りません。一般的には、頂点座標や面構成を記録するOBJファイル、材質情報を記録するMTLファイル、表面に貼り付けるテクスチャ画像によって構成されます。
OBJファイルには、使用するMTLファイルの名前が記述されます。さらに、モデルの各部分で使用する材質名が指定されます。MTLファイルには、その材質の定義と、材質に使用する画像ファイルの名前が記述されます。読み込み処理は、これらの参照情報を順番にたどって画像を探します。
たとえば、OBJファイルから「model.mtl」という材質ファイルを参照し、MTLファイルから「texture.jpg」という画像を参照しているとします。実際の材質ファイルが「Model.mtl」、画像が「Texture.JPG」であれば、人が見たときには同じ名称に近くても、読み込み環境によっては一致しないと判断されます。
この場合、OBJファイル内の頂点や面は読み込めるため、三次元形状そのものは表示される可能性があります。しかし、MTLファイルや画像ファイルへの参照が途中で切れるため、写真テクスチャが適用されません。アップロード処理が完了したという表示だけでは、関連ファイルがすべて正常に解決されたとは判断できません。
また、点群から作成したモデルでは、複数の画像がテクスチャとして使用されることがあります。広い範囲を複数枚の画像に分けている場合、一つの参照名だけが間違っていると、モデル全体ではなく一部分だけが白くなることがあります。そのため、先頭の画像だけを確認するのではなく、MTLファイルで参照されている画像をすべて調べる必要があります。
大文字小文字の違いが特に厄介なのは、作業環境によって結果が変わることです。ある環境では「Texture.jpg」と「texture.jpg」を同じファイルとして扱う一方、別の環境では異なるファイルとして扱う場合があります。作成担当者の端末では問題が再現せず、アップロード先だけで表示不良が起きることもあります。
したがって、点群OBJの受け渡しやアップロードでは、現在の作業環境で偶然読み込める状態ではなく、大文字小文字を含めて参照文字列が完全に一致した状態に整えることが重要です。ファイル名を小文字へ統一する方法は有効ですが、単に実ファイルを変更するだけではなく、OBJやMTL内の参照も同時に揃えなければなりません。
確認1:OBJ・MTL・画像ファイルの実名を照合する
最初に確認するのは、アップロードするフォルダに保存されている各ファイルの実名です。画面上で省略された名称や、担当者が便宜上使っている呼び名ではなく、拡張子を含む完全なファイル名を確認します。
たとえば、アップロード対象が「site_model.obj」「site_model.mtl」「site_texture_01.jpg」で構成されている場合、それぞれの表記を正確に記録します。画像が複数ある場合は、「site_texture_01.jpg」から「site_texture_20.jpg」までのように、すべての名称を確認します。
ここでは、大文字小文字だけでなく、数字、下線、ハイフン、空白、全角文字と半角文字の違いも確認します。「texture01.jpg」と「texture1.jpg」、「site_texture.jpg」と「site-texture.jpg」、「texture 01.jpg」と「texture_01.jpg」は、それぞれ異なるファイル名です。
特に注意したいのが、ファイル一覧上で拡張子が非表示になっている場合です。表示が「texture01」だけでは、実際の拡張子が「.jpg」なのか「.JPG」なのかを判断できません。また、拡張子を表示しない状態で名前を変更すると、「texture01.jpg.jpg」のように拡張子が重複することもあります。
画像を修正して別名保存した場合も確認が必要です。元の画像が「texture01.jpg」で、修正版が「texture01_new.jpg」として保存されていても、MTLファイルが古い名前を参照したままであれば、修正版は使用されません。新しい画像をフォルダに置いただけでは、参照先が自動的に変更されるとは限りません。
ファイル名が長い場合は、目視での比較に注意します。「area01_surface_texture_001.jpg」と「area01_surface_Texture_001.jpg」のように一文字だけ異なる名前は、一覧を眺めただけでは見落としやすくなります。可能であれば、ファイル名を文字列として取得し、後でOBJやMTLの記述と並べて比較します。
複数の担当者が作業している場合、画像の名前を変更した担当者と、OBJを書き出した担当者が異なることがあります。画像の整理後にOBJやMTLを更新していないと、古い参照名が残ります。ファイルの更新日時だけで判断せず、実際の参照文字列を確認することが大切です。
アップロード用フォルダには、最終的に必要なファイルだけを置くと確認しやすくなります。「old」「backup」「修正版」などの名前を付けた画像が同じ場所に混在すると、どの画像が参照対象なのか分かりにくくなります。元データの保管場所と、アップロード用の作業場所を分ける運用が有効です。
実ファイル名を確認するときは、どの名前を正として統一するかも決めます。一般的には、半角英数字の小文字を基本とし、単語の区切りには下線を使用する命名が扱いやすいです。ただし、すでに別の工程や管理情報と連携している場合は、実ファイル名を変更する前に影響範囲を確認します。
確認2:OBJファイル内のMTL参照名を確認する
次に、OBJファイルがどのMTLファイルを参照しているかを確認します。OBJファイルは一般的なテキストとして内容を確認でき、材質ファイルを指定する記述が含まれている場合があります。
たとえば、OBJファイル内に「mtllib site_model.mtl」という記述があるなら、同じ位置関係に「site_model.mtl」という実ファイルが必要です。実際のファイル名が「Site_Model.mtl」や「site_model.MTL」であれば、大文字小文字を区別する環境で参照できない可能性があります。
OBJとMTLを同じフォルダに置いている場合は、MTLのファイル名だけが記述されることがあります。別のフォルダに置いている場合は、フォルダ名を含む参照になることがあります。いずれの場合も、OBJから見たMTLの位置と、記述されている文字列を一致させます。
複数のMTLファイルが存在する場合は、OBJが実際にどれを参照しているのか確認します。書き出しを繰り返すと、「model.mtl」「model_1.mtl」「model_new.mtl」などの似たファイルが残ることがあります。更新日時が新しいMTLを使用しているとは限らないため、OBJ内の記述を基準に判断します。
OBJ内に複数の材質ファイルが記述されている場合は、すべての参照先が存在するかを調べます。一つのMTLだけが不足している場合、モデル全体ではなく一部の材質だけが反映されない可能性があります。形状が表示されているからといって、すべての材質参照が正常とは限りません。
OBJファイルを確認する際は、材質名の指定にも注意します。一般に、OBJファイルではモデルのどの部分にどの材質を使うかを材質名で指定します。MTLファイル側では、その材質名に対応する定義が作られます。
OBJ側で指定された材質名が「usemtl Ground_Surface」で、MTL側の定義が「newmtl ground_surface」であれば、大文字小文字を区別する処理では一致しない場合があります。テクスチャ画像の名前が正しくても、材質名の対応が崩れていれば意図した画像が適用されません。
材質名は画像ファイル名とは別の情報ですが、テクスチャ表示の参照経路に含まれます。そのため、確認作業ではOBJが参照するMTL名だけでなく、OBJ内の材質指定とMTL内の材質定義も照合します。
OBJファイルを編集する場合は、修正前のファイルを複製して保存します。参照名だけを直すつもりでも、誤って頂点や面の記述を変更すると、形状の欠損につながる可能性があります。検索機能を使って対象の参照名を探し、必要な文字だけを修正します。
保存時には、一般的なテキストとして内容を維持できる方法を使用します。文書用の装飾情報を追加する形式へ変換すると、OBJとして読み込めなくなる可能性があります。修正後はファイルの拡張子が「.obj」のままであることも確認します。
確認3:MTLファイル内の画像参照名を確認する
OBJからMTLへの参照を確認した後は、MTLファイル内の画像参照名を調べます。テクスチャが表示されない問題では、この部分に大文字小文字の不一致が見つかることが多くあります。
MTLファイルには、材質ごとの色や透明度などの情報が記録されます。写真や模様を表面に使用する場合は、画像ファイルへの参照が記述されます。表面色に使用する画像は、「map_Kd」に続いて画像名が記載されることがあります。
たとえば、実際の画像ファイルが「site_texture_01.jpg」であるなら、MTL側の参照も「map_Kd site_texture_01.jpg」のように一致している必要があります。「map_Kd Site_Texture_01.jpg」や「map_Kd site_texture_01.JPG」では、大文字小文字を区別する環境で読み込めない場合があります。
MTLファイルに複数の材質が定義されている場合は、先頭部分だけでなく最後まで確認します。点群から作成した広範囲のモデルでは、領域ごとに複数のテクスチャ画像が割り当てられていることがあります。一つの参照名だけが間違っていると、一部分だけが白く表示されます。
表面色以外の画像が参照されている場合もあります。透明度や凹凸表現などに画像を使用しているデータでは、それぞれの参照名も確認します。色の画像だけを修正しても、ほかの画像名が不一致のままであれば、透明部分や表面表現に不具合が残る可能性があります。
画像名の前にフォルダ名が付いている場合は、フォルダ名を含む文字列全体を確認します。「textures/site_texture_01.jpg」という参照であれば、MTLファイルから見て「textures」というフォルダの中に画像が必要です。「Textures」や「TEXTURES」というフォルダでは、環境によって参照できません。
参照名の前後に余分な空白や見えにくい文字が入っている場合にも注意します。手作業で名称を貼り付けたときに、行末へ余分な文字が加わることがあります。見た目では分かりにくいため、問題のある行を一度削除し、正しいファイル名を入力し直す方法もあります。
ファイル名に空白が含まれている場合は、読み込み処理によって解釈が異なる可能性があります。「site texture 01.jpg」のような名前よりも、「site_texture_01.jpg」のように空白を使用しない名前の方が扱いやすくなります。修正する場合は、実画像とMTLの両方を同じ名称へ揃えます。
MTLファイル内の画像参照数と、フォルダ内の画像数を比較することも有効です。MTLで十枚の画像を参照しているのに、フォルダには九枚しかなければ、少なくとも一つの画像が不足しています。反対に、フォルダ内に画像が大量に余っている場合は、旧版や未使用画像が混在している可能性があります。
画像を差し替える場合は、MTLの参照名を変更する方法と、画像を既存の参照名へ合わせる方法があります。どちらを選ぶ場合でも、修正対象を明確にし、片方だけを変更しないことが重要です。ファイル名を変更した記録を残しておくと、再書き出し時の確認にも役立ちます。
確認4:拡張子の大文字小文字まで統一する
テクスチャ名を確認するときは、名前の本体だけでなく、拡張子の大文字小文字まで確認します。「texture01.jpg」と「texture01.JPG」は、環境によって異なるファイル名として扱われます。
画像を書き出す工程では、保存方法によって拡張子が大文字になる場合があります。以前の画像が「.jpg」で、新しく保存した画像が「.JPG」になっていても、見た目が近いため気付かないことがあります。MTL側の参照が古いままであれば、画像が存在するにもかかわらず見つけられません。
OBJやMTLの拡張子にも同じ注意が必要です。OBJファイル内で「site_model.mtl」を参照しているのに、実ファイルが「site_model.MTL」であれば、MTLを読み込めない可能性があります。画像以前の段階で参照が切れるため、モデル全体から材質が消えることがあります。
管理を単純にするには、OBJ、MTL、画像の拡張子を小文字へ統一する方法が有効です。OBJは「.obj」、MTLは「.mtl」、画像は「.jpg」や「.png」のように揃えます。大文字の拡張子が必ず使えないわけではありませんが、表記を一つに決めた方が確認漏れを減らせます。
拡張子を変更する際は、画像形式そのものを変更する場合と、大文字小文字だけを変更する場合を区別します。「texture01.JPG」を「texture01.jpg」へ変更するだけなら、画像の内容は同じです。一方、「texture01.jpg」を「texture01.png」にする場合は、画像形式の変換が必要です。
ファイル名の末尾だけを手作業で書き換えて、画像形式を変更したように見せる方法は避けます。拡張子と実際の画像形式が一致しないと、読み込み側が正しく判定できない場合があります。形式を変えるときは、画像を適切に変換したうえで、MTL内の参照名も新しい拡張子へ更新します。
大文字小文字だけを変更したつもりでも、作業環境によっては変更が反映されないことがあります。「Texture.JPG」から「texture.jpg」へ直接変更した場合、内部では同じ名前として扱われ、見た目だけが更新されない場合があります。
その場合は、一度「texture_temp.jpg」のような別名へ変更し、その後で目的の「texture.jpg」へ変更します。変更後はフォルダ表示を更新し、拡張子を含む実名を再確認します。
圧縮ファイル内の名称も確認します。圧縮前のフォルダで拡張子を直しても、古い圧縮ファイルをそのままアップロードすれば修正は反映されません。修正後のファイル一式から圧縮ファイルを作り直し、一度展開して名称を確認します。
確認5:フォルダ名と相対パスを完全一致させる
画像ファイル名と拡張子が正しくても、画像を保存したフォルダ名や相対パスが異なっていれば読み込めません。テクスチャ名の確認では、画像単体の名前だけでなく、MTLファイルから画像へ到達するまでの経路全体を確認します。
たとえば、MTLファイルに「map_Kd textures/site_texture_01.jpg」と記載されている場合、MTLから見て「textures」というフォルダの中に「site_texture_01.jpg」が必要です。実際のフォルダ名が「Textures」であれば、大文字小文字を区別する環境では別の場所と判断されます。
案件名や地点名をフォルダ名に使っている場合も注意します。「Site_A」「site_a」「site_A」のような表記揺れが発生すると、画像名が正しくても参照が成立しない可能性があります。フォルダ名もファイル名と同様に、小文字を基本とした規則へ統一すると確認しやすくなります。
画像を整理するために別フォルダへ移した場合、MTL内の参照先が自動的に変更されるとは限りません。書き出し時にはOBJ、MTL、画像が同じフォルダにあり、整理後に画像だけを「textures」フォルダへ移した場合、MTLは元の場所を参照したままになります。
反対に、MTLでは画像用フォルダを参照しているのに、アップロード時にすべてのファイルを同じ階層へ移動すると、画像を見つけられなくなる可能性があります。ファイルをまとめる場合は、MTLの参照を実際の配置へ合わせて修正します。
アップロードの互換性を優先する場合は、OBJ、MTL、画像を同じフォルダに配置する単純な構成が扱いやすいことがあります。MTL内の参照を画像ファイル名だけにすれば、階層の違いによる問題を減らせます。ただし、画像数が多い場合やアップロード先の仕様が決まっている場合は、その仕様に合わせる必要があります。
相対パスではなく、作成端末上の保存場所を示す長いパスが記述されている場合にも注意します。作成者の端末にしか存在しない場所を参照していると、別の端末やクラウド上では画像を見つけられません。
受け渡しやアップロードを前提とするデータでは、OBJ、MTL、画像の位置関係を基準とする相対的な参照が扱いやすくなります。特定の端末の保存場所に依存しない構成にすることで、別の環境でも再現しやすくなります。
圧縮ファイルを使用する場合は、圧縮ファイル内の階層も確認します。圧縮ファイルを開いた直後にOBJやMTLが見える構成と、案件名フォルダを一つ挟んだ構成では位置関係が異なります。画像用フォルダだけを入れ忘れることもあるため、圧縮前の選択範囲を確認します。
最終的には、作成した圧縮ファイルを別の場所へ展開し、その展開結果だけでモデルを表示できるか確認します。元の作業フォルダに残っている画像を参照していた場合、別の場所へ移すことで問題を発見できます。
確認6:再書き出し後の最終ファイルを点検する
OBJやMTLの参照を一度修正しても、再書き出しを行うと内容が元に戻る場合があります。三次元データの変換処理によって、新しいOBJ、MTL、画像が生成され、手作業で直したファイルが上書きされることがあるためです。
そのため、確認対象は編集途中のデータではなく、実際にアップロードする最終ファイル一式でなければなりません。作業中に正常表示を確認しただけでは、最終成果物も同じ状態であるとは限りません。
最終確認では、まずOBJが参照するMTL名を調べます。次に、OBJ内の材質指定とMTL内の材質定義を照合します。その後、MTL内の画像参照と実画像の名前を確認します。この順番で参照経路を追うと、どの段階で不一致が起きているかを特定しやすくなります。
再書き出し後に画像名へ連番が追加されたり、画像の拡張子が変わったりすることがあります。以前は「texture01.jpg」だったものが、「model_texture_001.JPG」として出力される場合もあります。古いMTLを残したまま新しい画像だけを追加すると、参照関係が混在します。
アップロード用フォルダには、最終版として必要なOBJ、MTL、画像だけを入れます。旧版を保管する場合は、別のフォルダに分けます。同じ場所へ複数世代のファイルを置くと、アップロード対象の選択を誤る可能性があります。
最終ファイルを別の作業場所へ複製し、その複製だけを使って表示を確認する方法も有効です。元の保存場所にある画像や一時ファイルへ依存している場合、複製先ではテクスチャが表示されません。アップロード前に依存関係を発見できます。
圧縮してアップロードする場合は、圧縮ファイルを作成した後、別の空のフォルダへ展開します。展開されたOBJ、MTL、画像の数と名称を確認し、その状態からモデルを読み込みます。圧縮前だけでなく、圧縮後の成果物を検証することが重要です。
修正版をクラウドへ再アップロードする場合は、古いファイルと区別できる管理名を使用すると確認しやすくなります。差し替え後に表示が変わらない場合、修正内容ではなく旧データを見ている可能性もあります。
アップロード後は、モデル全体を複数方向から確認します。全体に画像が表示されているように見えても、裏側や狭い部分だけが白くなっている場合があります。拡大と縮小を行い、テクスチャの境界、モデルの端部、複数材質の切り替わり部分を重点的に確認します。
大文字小文字の不一致を効率よく探す方法
画像が数枚程度であれば、MTL内の参照名と実ファイル名を目視で照合できます。しかし、広範囲の点群モデルでは、数十枚以上の画像が使用される場合があります。すべてを一つずつ確認すると、読み違いや確認漏れが起きやすくなります。
効率よく調べるには、確認作業を参照経路ごとに分けます。最初にOBJからMTLへの参照を確認し、次にOBJとMTLの材質名を照合し、最後にMTLから画像への参照を確認します。最初から全ファイルを同時に眺めるよりも、問題箇所を絞り込みやすくなります。
MTLファイル内で、画像参照に使用される記述を検索する方法も有効です。「map_」を含む行や、画像の拡張子を含む行を探すと、参照名を見つけやすくなります。ただし、書き出し方法によって記述が異なる可能性があるため、一種類の記述だけで判断しないことが大切です。
MTLから抽出した画像参照名と、フォルダ内の画像名をそれぞれ一覧にし、同じ順序へ並べると違いを発見しやすくなります。参照側にしかない名前は、画像が不足しているか、実ファイル名が異なっている可能性があります。実ファイル側にしかない名前は、旧画像や未使用画像の可能性があります。
大文字小文字だけの違いを探すには、検査用として両方の名称を小文字に変換して比較する方法があります。小文字へ変換した状態では一致するのに、元の文字列では一致しない場合、大文字小文字だけが異なっている可能性が高いと判断できます。
ただし、検査のために文字列を小文字化することと、実際のファイル名を一括変更することは分けて考えます。確認せずに実ファイルだけを一括変更すると、OBJやMTL内の参照が追従せず、正常だった部分まで読み込めなくなることがあります。
画像の総数が多い場合は、一部だけを直してアップロードするのではなく、参照名と実ファイル名の組み合わせを全件確認することが重要です。一つの不一致を直して表示が改善しても、別の領域に同様の問題が残っている可能性があります。
不一致を見つけたら、修正前の名前、修正後の名前、修正したファイルを記録します。再書き出し後に同じ問題が起きた場合、どの工程で名称が変化したかを追いやすくなります。
同じ形式の作業を繰り返す場合は、命名規則を文書化します。ファイル名は半角英数字の小文字、単語の区切りは下線、拡張子も小文字、空白は使用しないなど、具体的な基準を決めます。作成者ごとの表記揺れを減らすことで、確認作業も短縮できます。
テクスチャ名を修正するときの注意点
テクスチャが表示されないからといって、原因を確認せずに画像ファイル名を何度も変更すると、参照関係がさらに分かりにくくなります。修正前に、OBJ、MTL、画像のどこで不一致が起きているかを特定します。
まず避けたいのは、実画像の名前だけを変更することです。「Texture01.JPG」を「texture01.jpg」へ変更しても、MTL側が古い名前を参照していれば読み込めません。実ファイル名を変えた場合は、参照元の記述も同じ名称へ更新します。
反対に、MTL内の参照だけを変更し、実画像の名前を変え忘れることもあります。修正後は必ず、参照文字列と実名を並べて確認します。修正したつもりではなく、最終的な文字列が完全一致していることを確認する必要があります。
大文字小文字だけが異なる複数のファイルを同じ場所に残すことも避けます。「Texture.jpg」と「texture.jpg」が同時に存在すると、作業環境によって見え方が異なる場合があります。アップロード先でどちらが使用されるか分かりにくくなるため、最終版を一つに整理します。
画像形式を変更する場合は、拡張子だけを書き換えないようにします。画像の内容を適切に変換し、変換後の画像名をMTLへ反映します。元画像を残す場合はアップロード用フォルダから分け、どちらが使用対象か明確にします。
ファイル名に空白、全角文字、特殊な記号を多く含めると、大文字小文字以外の要因が加わります。すべての環境で必ず問題になるとは限りませんが、原因の切り分けを簡単にするには、短い半角英数字と下線を中心に構成する方が扱いやすくなります。
OBJやMTLを編集するときは、ファイル全体の形式を変更しないようにします。文書用の保存形式へ変換したり、装飾情報を追加したりすると、三次元データとして解析できなくなる可能性があります。変更箇所は参照名に限定し、修正前のデータを必ず保管します。
修正後に元データへ直接上書きすると、問題が悪化した場合に比較できません。「元データ」「修正中」「アップロード用最終版」のように作業場所を分けると安全です。アップロード用最終版には、検証済みのファイルだけを入れます。
複数人で修正する場合は、同じファイルを同時に編集しない運用も必要です。一人が画像名を変更し、別の担当者が古いMTLを再配置すると、不一致が再発します。最終更新を担当する人と、確認を担当する人を明確にすると管理しやすくなります。
大文字小文字を揃えても表示されない場合の確認
テクスチャ名の大文字小文字を揃えても表示されない場合は、別の原因を確認します。大文字小文字の不一致は代表的な原因の一つですが、すべての表示不良が名称だけで解決するわけではありません。
最初に確認したいのは、画像ファイルそのものがアップロード対象に含まれているかです。OBJとMTLだけをアップロードし、画像を入れ忘れている場合、参照名が正しくてもテクスチャは表示されません。画像が複数ある場合は、必要な枚数がすべて揃っているか確認します。
次に、MTLファイルが不足していないかを確認します。OBJにMTLの参照があるのに、対象ファイルがフォルダに存在しなければ、画像への参照へ進めません。OBJ、MTL、画像の三者を一式として扱うことが重要です。
材質名の不一致も確認します。OBJ側の材質指定とMTL側の材質定義が対応していない場合、画像名が正しくても材質が割り当てられません。大文字小文字、下線、連番を含めて完全一致させます。
UV情報が適切に含まれているかも重要です。テクスチャ画像をモデル表面のどこへ配置するかを示す情報が不足している場合、画像を読み込めても正しく貼り付けられません。点群を頂点だけでOBJへ保存したデータでは、そもそも面やUV情報を持たない場合があります。
OBJという拡張子が付いていても、データの内容が点だけなのか、面を持つメッシュなのかで表示方法は異なります。点群の各点に色を持たせる独自の表現と、画像を面へ貼り付ける一般的なテクスチャ表現は同じではありません。アップロード先がどの情報を解釈するかを確認する必要があります。
画像ファイルが破損していないかも確認します。ファイル一覧には存在していても、画像として正常に開けなければ使用できません。画像を単体で開き、内容が表示されることを確かめます。
画像の形式や色の情報が、読み込み先で想定される範囲に収まっているかも確認対象です。特殊な保存方法で書き出された画像は、一般的な画像表示では開けても、三次元モデルの読み込み処理では扱えない場合があります。必要に応じて、一般的な設定で画像を書き出し直します。
相対パスの区切り方や階層も再確認します。作成環境では参照できても、別の環境では同じ記述を異なる方法で解釈する場合があります。問題の切り分けでは、OBJ、MTL、画像を同じフォルダへ置いた単純な構成で試す方法が有効です。
アップロード後の変換処理で、画像や材質の一部が対象外になっている可能性もあります。ファイルをアップロードできたことと、すべての情報が表示用データへ変換されたことは別です。アップロード先の対応範囲を確認し、必要に応じてデータ構成を単純化します。
点群OBJアップロード前の標準確認手順
点群OBJのアップロードを安定させるには、問題が起きるたびに個別対応するのではなく、アップロード前の確認手順を標準化することが効果的です。
最初に、元データを保管したまま、アップロード専用の作業フォルダを作成します。OBJ、MTL、画像をそのフォルダへコピーし、旧版や一時ファイルを混在させないようにします。
次に、ファイル名の規則を確認します。半角英数字の小文字を基本とし、単語の区切りには下線を使用します。空白や全角文字を避け、拡張子も小文字へ揃えると確認しやすくなります。
続いて、OBJファイル内のMTL参照を確認します。OBJに記述されたMTL名と、フォルダ内の実ファイル名を照合します。大文字小文字、拡張子、フォルダ名を含めて一致していることを確認します。
その後、OBJ内の材質指定とMTL内の材質定義を比較します。モデルに複数の材質がある場合は、すべての材質名を確認します。一部の面だけ表示されない問題は、この段階の不一致で起きることがあります。
次に、MTL内の画像参照名を確認します。実画像の名前、拡張子、保存フォルダ、相対パスと完全に一致していることを確かめます。画像が複数ある場合は、参照されているすべての画像が存在するかを確認します。
確認後は、アップロード用フォルダを別の場所へ複製し、複製したデータだけを使って表示試験を行います。元の作業フォルダにある画像を参照していた場合、複製先では表示できないため、依存関係の不備を発見できます。
圧縮してアップロードする場合は、圧縮後のファイルを一度展開します。展開された階層、ファイル数、名称を確認し、その状態でモデルを読み込みます。圧縮対象の選択漏れや不要な階層を事前に確認できます。
アップロード後は、モデル全体を回転させ、複数方向からテクスチャを確認します。全体が表示されていても、一部の材質だけが欠けている場合があります。拡大してテクスチャの境界を確認し、モデルの端部や裏側も確認します。
確認結果は、案件名、ファイルの版、確認日、確認した項目とともに記録すると再作業を減らせます。再書き出しを行った場合は、以前の確認結果をそのまま使わず、最終ファイルに対して同じ手順を繰り返します。
命名規則と確認手順を共通化すれば、担当者が変わっても品質を保ちやすくなります。特に、作成、整理、アップロードを別々の担当者が行う場合は、ファイル名を変更した際にOBJやMTLも更新するというルールを明確にすることが重要です。
まとめ
点群OBJをアップロードした後にテクスチャが表示されない場合は、画像ファイル名の大文字小文字を最初に確認します。ただし、画像名だけではなく、OBJが参照するMTL名、OBJとMTLで使用される材質名、画像の拡張子、フォルダ名、相対パスまで含めた完全一致が必要です。
確認は、実ファイル名の整理、OBJからMTLへの参照、OBJとMTLの材質名、MTLから画像への参照、拡張子、フォルダ階層という順番で進めると、問題箇所を特定しやすくなります。
作成環境では正常に表示できていても、アップロード先が大文字小文字を厳密に区別する場合があります。そのため、現在の端末で表示できることだけを基準にせず、すべての参照文字列を完全に一致させることが重要です。
ファイル名は半角英数字の小文字を基本とし、拡張子やフォルダ名も同じ規則で統一すると、表記揺れを減らせます。修正後は最終ファイルを別の場所へ複製し、圧縮ファイルを展開した状態でも表示できるか確認します。
大文字小文字を揃えても改善しない場合は、MTLや画像の不足、材質名の不一致、UV情報、画像の破損、相対パス、読み込み先の対応範囲も確認します。一つの原因に決めつけず、OBJ、MTL、画像の参照経路を順番に追うことが解決への近道です。
点群OBJのアップロード品質を安定させるには、取得後のファイル整理だけでなく、点群の取得、モデル生成、書き出し、確認までを一つの工程として管理することが大切です。現場での計測から点群データの活用までを効率化する方法を検討する際は、LRTK Phoneによる計測も次の選択肢として確認してみてください。