先日、ずっと欲しいと思っていたOculus Questを買いました。スタンドアロンで動くVRゴーグルです。買うきっかけとなった経緯からご説明します。
目次
経緯
先日NT名古屋というイベントに参加してきました。その際に木製の粉を混ぜた3Dプリンタのフィラメントを作って販売されている方がいらっしゃいました*1。
こちらの方は「ブログにレビューを書けばフィラメントをプレゼント」というキャンペーンをされています。イベント後、すぐに応募していたのですが、私の作るものはメカ機構の様な無機的なものが多いため「木製である面白みに欠けるのではないか」と少し悩んでいました。できれば木彫りの熊の様な彫刻チックなものを出力してみたいのです。
そんなことを考えていたら、ピッタリの記事に出会いました。nomolk (id:slideglide)さんの記事です。
Oculus Rift SというVRゴーグルでOculus Mediumというアプリを使って、空中に絵をかいてデータを変換して3Dプリンタに実際に出力されています。これを使って木彫り風の熊を作ってみたいと思い、購入に至りました。
実はよく調べずにOculus Questでも同じことができるだろうと思って買ったのですが、思わぬ問題がいくつかあったのでそれを乗り越えてVRのオブジェクトを現実に召喚する方法をご紹介します。
Oculus QuestにはOculus Mediumが存在しない問題*2
→今回は代わりにgoogleのTilt Brushというアプリを使うことにしました。だいたい2000円位です。Tilt Brushで直接3Dプリンタで出力できる形式で出力できない問題*3
→今回はこれをどうやったら3Dプリンタへ出力可能な形式に変換できるのか調べるところから始めました。
変換方法
色々と試行錯誤していたら以下の2種類の手順で成功しました。
やり方①(有線接続必要)
(Oculus Quest)Tilt BrushでExport
(Oculus Quest)USBケーブルでPCと接続、Oculus Quest側から承認*4
(PC)Tilt Brushフォルダ内のglb1ファイルをPCに保存
(PC)Unityから「Tilt Brush Unity SDK」を使ってglb1ファイルを読み込む
(PC)Unityから「Scene OBJ Exporter」を使ってobj形式で出力*5
3Dプリント
やり方②(有線接続不要)
(Oculus Quest)Tilt Brushでgoogle polyにアップロード
(PC)Unityから「poly toolkit」を使ってデータをassetに追加
(PC)Unityから「Scene OBJ Exporter」を使ってobj形式で出力
3Dプリント
Unityも今回初めて触ったので色々と新鮮でした。やっていて困ったところ等を残します。USBケーブル接続不要なのでやり方②がおすすめです。
準備
共通
- 「Unity」のインストール
Unityはどちらの手順でも必要です。私はノートPCですが、今のところ変換する程度の利用であれば問題なく動いています。
- 「Scene OBJ Exporter」の追加
また、どちらも「Scene OBJ Exporter」というUnityのAssetというものを利用しています。こちらは3Dモデルをobj形式で出力するために利用します。以下のページからDLボタンを押し、Unity上のAsset storeからimportを押すと使えます。
- 「Fusion360」
Fusion360にはobjデータをアップロード後、以下の場所からstl形式でデータを出力できます。私の3Dプリンタのスライスソフトではobj形式でエラーを吐いていたため、stl形式にしたところ、うまくいきました。そのため、こちらはobj形式がダメな時に試していただければ良いかと思います。
手順「ツール」→「メイク」→「3Dプリント」→「3Dユーティリティに送信のチェックボックス」を外す→モデルを選択して「OK」
やり方①
- 「Tilt Brush Unity SDK」の追加
やり方①では以下の記事を参考に「Tilt Brush Unity SDK」を入れました。fbxという形式ではなくglb1でしたが問題なく読み込めました。
やり方②
- 「poly toolkit」の追加
Unityに上記assetを追加します。polyは3Dモデルの無料のライブラリで、自分でデータをアップロードしたり他の方のデータをDLしたりできます*7。こちらはUnityのAsset store内で検索してimportするのが楽だと思います。googleアカウントは必要です。 developers.google.com
いくつかハマりどころがあったので残します。
「File」→「Build Settings」→「Player Settings」→「Other Settings」内の項「Configuration」内の「Allow 'unsafe' code」にチェックを入れないとエラーが発生する
PlatformがPCでないとエラーが発生するかもしれない*8
APIキーを入れ忘れると上手くいかない
polyからデータを取ってくると「poly」→「Assets」内に配置可能なデータが出力される
まとめ
今回は変換の手順やハマりどころ等を中心に書かせていただきました。次回はいよいよ木のフィラメントを使ってVR空間で立体的にスケッチした木彫風熊を召喚してみたいと思います。
読んでくださり、ありがとうございます。
*1:NT名古屋の記事はこちらです
*2:Oculusという名前がついているのでてっきりDLできるものだと思っていたのですが、Oculus QuestのストアにはOculus Mediumがありませんでした。どうやらPC接続を前提としたスペックのソフトの様で、スタンドアロンのOculus Questには対応していない様です。今後Oculus LinkというPC接続のケーブルとシステムがリリース予定とのことで、それが発売されればできる様になるかもしれません。
*3:Tilt BrushにはExportという項目があるのですが、拡張子は選択できず、stl形式やobj形式ではなくglb1形式という(私には)あまり馴染みのない形式で出力されました。
*4:私は最初、質の悪いUSBケーブルを使ってしまいOculus QusestとPCの接続が不安定になってしまいました。それが原因かわかりませんが、一度ゴーグル内の画面がつかなくなり初期化をする羽目になりました。細かいところですが、同じ悲しみを味合わないためにご注意ください。
*5:「File」→「Export」→「Wavefront OBJ」から出力できます。
*6:こちらは不要な場合もあるかもしれません。
*7:ただライセンスがあるため他の方のデータを使う際には名前表記等ご注意ください。