はじめに
会社のCADで作られた3Dデータ(STEPファイル)をARKit上で利用するにあたり色々つまづいたので、誰かの役に立てばと思い情報をまとめました。
なお、CADデータのコンバートを行なった環境は次の通りです。
- Windows7 Professional 64bit
- Unity Editor 2018.2.15f1
- CADデータのフォーマット STEPファイル
※データだけ貰ったのでどのような環境で作られたのかは不明です
取り込み方法の結論
まずたどり着いた結論です。
- Unity CAD Importerでポリゴンを減らしてUnity Editorに取り込む
- COLLADA exporter for Unity2017でdae形式でエクスポートする
- Xcodeでエクスポートしたdaeファイルを読み込む
FreeCADを使ってみる
なるべくお金をかけたく無かったので無料でできる方法を探しました。
ネットを調べてみるとFreeCADを使えばBlenderで読み込めるという情報が見つかったため、さっそく試してみました。
結果としては、
- 15MB程度の小さいサイズのCADファイルの読み込み → 成功
- 100MB越えの大きなサイズのCADファイルの読み込み → 失敗
でした。
Unity CAD Importerを使ってみる
先の結果よりCADのサイズが影響している可能性が高かったので、読み込み時にポリゴンを減らしてくれるツールを探しました。
色々と探してみましたが、そのようなことができるものはUnity CAD Importer以外見つかりませんでした。
Unity CAD Importerは有償ソフトウェアですが、試用を申し込むことで期間限定のお試し版のライセンスを貰うことができます。
Unity CAD Importerの使い方についてはYoutubeに公式の情報が上がっているのでそちらをご参照ください。
まずUnity CAD Importerの素晴らしかったところは先程FreeCADで読み込みが失敗したファイルもすんなりと読み込みができた点でした。
さらにインポート時に次のような設定をすることで、読み込み後のファイルサイズを格段に小さくすることができました。
- Target Vertices Count -> 65.0K
- Rough Max -> ON
- Mesh Healing -> ON
COLLADA exporter for Unity2017 を使う
UnityにCADデータをインポートすることができたので次はBlenderでインポートできる形のファイルにエクスポートし、daeファイルにエクスポートすることにしました。
無料でできる方法を探していたのでUnityからのエクスポートはFBX Exporterを試してみました。
しかし、エクスポートしたfbxファイルをBlenderで読み込み、daeファイルにエクスポートするところまでうまく行きましたが、Xcodeで読み込むと表面がざらついてとても使い物になりませんでした。
その後調べてみましたが、無料で使える他の方法は見つかりませんでした。
藁にもすがる思いと、そもそもCADをdae形式にするのは無理なんじゃね?という疑念の中、駄目元で「COLLADA exporter for Unity2017」を$20払って試してみました。
その結果何の問題も無くdae形式でエクスポートすることができ、Xcodeで読み込んだ状態もキレイに表示されました。(ヤッタネ!)
COLLADA exporter for Unity2017 の注意点
このアセットですが、Unity アセットストアなどで入手したrig付きの3Dデータをエクスポートするときには注意が必要です。
そのままエクスポートするとぐちゃぐちゃな状態になってしまうので必ず、rigを抜いた状態でエクスポートする必要があります。
rigが付いたままでも上手く行くものもありました。
最後に
Unity CAD Importerはサブスクリプション型の有償ソフトウェアなので個人で継続的に使うのは敷居が高いですが、
COLLADA exporter for Unity2017 はたった$20なので、ARKitオンリーで開発する人は買っておいて損は無いかと思います。
SceneKitとARKitを使ってARアプリ開発をしたい方向けに情報をまとめていますので、こちらもご参照ください。