Pmx2Fbx Web 開発秘話その4
Unityとか3Dとか
こんにちはヾ(・ω・。)ノタ-!!! 気づけば12月。年末です。 …年末です(ため息 さて、第四弾となる今回はポリゴン数削減の話です。デシメートです。 Pmx2Fbx Web を利用しているほとんどの人が VRChat に利用していると思います。 VRChat ではモデルデータのポリゴン数が 上限 20,000 と決められているので、ほとんどの場合で、Pmx2Fbx Web で出力した fbx をそのままアバターとして利用できません。 このあたりの詳細は、ふしめろさんが綺麗にまとめてくれているので丸投げするとして(ォィ)、今日はポリゴン数を削減するツール(デシメータ)について、昔話をします。 Pmx2Fbx Web が v0.1 になった頃…というより、VRChat が steam に公開された2017年の2月からしばらくは、ポリゴン数を削減するツールと言えば Mixamo Decimator でした。これは Adobe のWebアプリで、ブラウザで fbx ファイルを指定するとポリゴン数を削減できる便利なツールでした。 ……。 そんなの知らない? 検索しても出てこない? と、思う方がいるかもしれません。それは当然で、現在はサービス終了していて、Mixamo Decimator はもう利用できません。 ちなみに、今するならデシメートするなら、Mantis LODの無料版を使うか、Simplygonという選択肢がありますが、当時はMantis LODはあまり知られていなかったり、Simplygon は Microsoft の買収のドタバタで一時的に新規利用できなくなっていたりで、ほぼ Mixamo Decimator 一択な感じでした。 (補足: その他の方法として、pmx ファイルに対して PmxEditor の頂点数削減機能が利用できます。また、Pmx2Fbx Web を利用せずに Blender 経由で fbx にする場合は Blender の機能も使えるそうです。) それで、Pmx2Fbx Web が出力した fbx は Mixamo Decimator で正しく処理できることが本ツールの最低ラインでした。 Adobe のサービスなんだから、fbx なら何でも処理できるだろう、と最初は思っていたのですが... ・fbx ファイルによってはエラーになる ・理由もなくエラーになる ・モデルよっては、ボーン情報が削れて正しく変換できない ・エラーになった理由が表示されない という裏動作に苦戦することになりました。特に4つ目が鬼門で、Pmx2Fbx Web の開発中に出力した fbx でエラーになったときに原因が分からないので、何を直していいのか分からない状態になり、試行錯誤を繰り返すことになりました。(あれ、この流れ前も見たような...。) 結果から言えば、fbx によってエラーになるのは fbx の内部バージョンによるものだったのですが... ・当時は fbx に内部構造にバージョンがあることを知らない ・Mixamo Decimator が最近のfbx バージョンに対応していない ・Unity では新しい fbx でもインポートできるので余計に混乱する ・Autodesk FBX SDK をアップデートすると内部バージョンが勝手に上がる という、複雑な状況だった上に、Mixamo Decimator は一定時間(たぶん24時間で午前9時リセット)に何度もデシメートすると必ずエラーで失敗するようになるという状態。 そして、当然のように、どのエラーも同じエラーメッセージが表示されるのに、その理由が分からないと開発が進まない……これは無理ゲーかっ! 結局、Mixamo Decimator の問題のうち「モデルよっては、ボーン情報が削れて正しく変換できない」についてはサービス終了まで原因はわかりませんでした。でも、もう相手しないで良い…そう思うと、だいぶ気が楽になりました。 たぶん続く!
最終更新: 2023/05/07 16:49