PMXのテクスチャが表示されないときに見るところ
PMXを読み込んだのにテクスチャが出ない、という状況の原因はだいたい決まっています。よくある順に挙げます。
1. 大文字小文字が食い違っている
これがいちばん多い原因です。 PMXの中に Texture\Body.png と書かれているのに、実ファイルは texture/body.png ということが実際によくあります。Windowsのファイルシステムが大文字小文字を区別しないため、作者の環境では問題なく表示されてしまうからです。
ブラウザやLinuxのサーバは区別するので、ここで初めて表示されなくなります。このサイトは、完全一致で見つからなかったときに小文字に揃えた名前でもう一度探すようにしています。
2. テクスチャがフォルダごと揃っていない
PMXは自分の中にテクスチャを持たず、相対パスで外のファイルを参照するだけです。PMXファイル1つだけを渡しても絵は出ません。配布物のフォルダ構造をそのまま保つ必要があります。
このサイトのアップロードは、フォルダごとドラッグ&ドロップすると相対パスを保ったまま受け取ります(ファイル1つずつ選ぶ方式だとフォルダ構造が失われます)。
3. 拡張子が sph / spa
スフィアマップの .sph / .spa は、中身はただのBMPやPNGです。名前が違うだけなので画像として読めることが多いのですが、サーバのContent-Typeは application/octet-stream で返るのが普通です。「拡張子が画像でないから表示しない」と決め打ちすると、出せるはずのものまで出なくなります。
4. 拡張子が tga(ブラウザは開けない)
MMDのテクスチャにはTGAがよく使われますが、ブラウザは <img> でTGAを表示できません。three.jsに同梱の TGALoader で読んでcanvasへ描き、PNGへ変換すれば表示できます。このサイトのテクスチャ一覧はその方法で中身を見せています(左下原点・左上原点・RLE圧縮の3種類で確認済み)。
5. 拡張子が dds
.dds は中身がDXT圧縮なので、ブラウザの <img> やこのサイトの2Dテクスチャ一覧では直接表示できません。一方、ローカル3D再生はDDS/DXTローダーに対応済みなので、PMX/PMDが参照するDDSテクスチャをそのまま描画できます。2Dで中身を確認・編集したい場合だけ、PNGなどへ変換してください。
確かめ方
手元のモデルなら、ローカル再生にフォルダごと(配布されたzipのままでも)ドロップすれば、アップロードせずにその場で結果が見られます。ファイルは端末から出ません。どのテクスチャが見つからないかは、PMX・PMD・VMDを調べるに同じものを入れると名前で一覧できます。日本語の名前のテクスチャだけが見つからないなら、zipを展開したときの文字化けを疑ってください(モデルが読み込めないとき)。