こちらで配布されている「ねんどろいど風 重音テト」のmqoファイルを自作プログラムで開いた所、テクスチャが上手く読み込まれませんでした。
enamel toy box
http://enamelhp.web.fc2.com/
調査した所、テクスチャがフォルダに入っていたのが原因でした。
以下はmqoファイルの内容を一部切り出したものです。フォルダの区切り文字が \(バックスラッシュ) に成っていました。
"teto_face" col(1.000 1.000 1.000 1.000) dif(1.000) amb(0.250) emi(0.250) spc(0.000) power(5.00) tex("tex\teto_face.jpg") "tetobody" col(1.000 1.000 1.000 1.000) dif(1.000) amb(0.250) emi(0.250) spc(0.000) power(5.00) tex("tex\teto_body.jpg")
こちらに形式に対応する為にmqoファイルの読み込みに使っていたライブラリ「GLMetaseq」に修正を加えました。
具体的にはmqoLoadFile関数の以下の部分に
if (strstr(M[i].texFile,":")) { strcpy(path_tex, M[i].texFile); // 絶対パスの場合 } else { sprintf(path_tex,"%s%s",path_dir,M[i].texFile); // 相対パスの場合 }
\(バックスラッシュ)を/(スラッシュ)に置換する処理を追加し、以下の様に変更しました。これでバッチリ表示される様になりました。
if (strstr(M[i].texFile,":")) { strcpy(path_tex, M[i].texFile); // 絶対パスの場合 } else { sprintf(path_tex,"%s%s",path_dir,M[i].texFile); // 相対パスの場合 } #ifdef __APPLE__ for(int i=0; i<path_tex[i]; i++) { if (path_tex[i] == '\\') path_tex[i] = '/'; } #endif