Apple Vision Proアプリ開発案件におけるBlenderで求められたスキルまとめ
2024年4月から、Apple Vision Pro向けのアプリ開発案件に、3Dモデリング/サウンドクリエイターとして参加していました。本業と並行しながら、ほぼ毎日BlenderとUnityで制作を進め、8月にプレスリリースと恵比寿℃さんでの実店舗での実証運用をしました。
「3Dの業務経験ゼロから参加」した自分としては、ドキドキすることばかりでした。体験したお客さんの反響もとても良く、インフルエンサーの方からエンジニアの方まで幅広く声を頂いて嬉しかったです。
2024年8月26日には、共著で参加している「Apple Vision Proアプリ開発ガイド〜visionOSではじめる空間コンピューティング実践集」が発売されます。Apple Vision Pro関連で2つのプロジェクトに関わることができて、とても貴重な体験になりました。
3DCGの業務経験ゼロでApple Vision Pro案件にチャレンジしてみた
私は2023年4月からBlenderの独学を始め、個人作品をYouTubeにアップし続けてきました。
その一方、3DCGに関する業務経験はゼロでしたので、今回のビジネス案件への参加で、初めて得られる知見や体験があり、Blenderに関してもたくさんの学びを得る貴重な機会となりました。
当初、「Blenderでビジネス案件に関わる時、どんなスキルやレベルが求められるのだろうか?ついていけるだろうか?」と想像して不安になったりもしました。
リリースと運用を経て、一通りの経験をなんとか終えてみると、杞憂に終わったこともあれば、見積もりが甘かったこともありました。が、なんとかチームの役に立ちながら、リリースに繋げることができて少し自信につながりました。
今回の経験をベースに「Apple Vision Pro案件において、3DCG担当者がBlenderで求められたこと」を少し抽象的ですが、メモとして残しておきたいと思います。
3DCGの基礎知識の重要性
プロジェクト発足時、「ハイクオリティな3DCGモデリングを期待されたらどうしよう・・・専門的な技術や知識についていけなかったらどうしよう」と不安でしたが、実際に必要だったのは「3DCGの基礎的な知識とテクニック」でした。(※ 前提となる業務プロダクト制作におけるチーム開発スキルに関しては、今回記載せずとします)
チームには「Unity PolyspatialやvisionOS」を活用するエンジニアが数名いて連携が必須となりました。その際にエンジニアとの会話に必要だったのは「メッシュやポリゴン、頂点、法線」といった3DCGの基礎知識がメインでした。もちろん、エンジニア間ではUnity PolyspatialやvisionOSに関する専門用語で会話をしていますが、3DCGに関しては基礎知識をベースに会話をしていました。
開発ツールがXcode, Unity, Blenderにまたがるからこそ「基礎知識の重要性を実感した」という感覚を強くもちました。
1年前にBlenderで3Dモデリングを始めたばかりの頃は、「法線って何?」という状態でした。作ること、完成させることで精一杯で、メッシュの表面と裏面が一部ひっくり返っていても気づかず、そのまま作品としてYouTubeにアップしてしまうこともありました。他にも、頂点が無駄に多いモデルや、辺が面の下を通っていたり、メッシュが欠けていたりする箇所など、カメラに映っていない綻びは多数あったと思います。
個人で3DCG映像を制作をしていたため、多少の粗があっても映像には見えないようにしていたので「なんとなく動いていればいいや」という感覚でした。この点は、個人の趣味でプログラミングしていた学生時代と、ソフトウェア製品を開発するためにプログラミングするエンジニア時代の相違に、体験的にとても似ていました。
Blenderのモデリングスキル
Unity PolyspatialやvisionOSは新しい技術なので、開発中のトラブルや技術的課題が膨大にあがりました。特にシェーダーやライティング、パーティクル、ポストプロセスに関しては最後の最後まで課題に直面していました。
自分は3Dモデリングする際に、3Dモデルが原因で描画ミスや意図せぬ表現にならないように、きれいにシンプルに制作することを心がけてみました。
なぜなら、Apple Vision Proの実機を装着し、自分の作った3Dモデリングを見てみると、想像以上に眼前に迫ってくる体験に驚きます。きれいにモデリングした部分に感動する反面、雑な部分には想定以上の違和感を覚えました。PCのディスプレイを見ているだけでは気づかない粗が数倍に膨らんで見えてくる感じです。逆に、よく作れているところは数倍に膨らんでよく見える気がしました。
あとは、Apple Vision Proはガジェットの性能的にどこまで3D描写できるのか未知な部分が多かったため、無駄な頂点を減らすなどトポロジーを意識しました。これも個人で映像制作しているだけだとあまり意識しなかったことなので、良い体験になりました。
シェーダーによる描画技術
開発チームで一番苦労したのが、描写や表現に関してです。Xcode、Unity、Blenderと開発ソフトと技術要素がまたがる中で「アートワークやビジネス要件を実現するには、どのソフトでどんな表現が可能なのか?」が常に議論されていました。特に、シェーダーやパーティクル、ライティング表現などは、Unity上では実現していて、xCodeのApple Vision Proシミュレーターでも動作確認できているのに、特定条件下だとApple Vision Pro実機で動かないこともありました。
また、現時点では、UnityのShader Labが使えないため、未経験ながらShaderGraphで制作しました。Unityのシミュレーター上で描写と、Apple Vision Pro実機の描写が異なるケースもありました。一部の表現では、UnityのShader Labで表現したかったことを、Blenderのシェーダーエディタで表現し、Blenderのテクスチャベイクで対応することもありました。
そんな時「Blenderでシェーダーエディタ勉強しておいてよかった!」と実感しました。「Adobe Substance Painterがあれば、Blenderでシェーダーを頑張る必要がないかも?」と思っていた時期もありましたが、Blenderでシェーダーを組む勉強を続けていた事で、結果的にプロジェクトの課題解決に役立ちました。また、コンセプトアートを作るデザイナーさんから細かい調整が多いので、Blenderのシェーダーで細かく調整できたのも、メリットが大きかったです。
こういった事もあり「表現の選択肢を増やすこと」の重要さを実感しました。BlenderのシェーダーやGeometry Nodes、UnityのShader LabやShaderGraph、Adobe Substance Painterなど、複数の表現手段をカバーしておく必要性を感じました。ツールを複数使い分け、仕様や技術的な課題によって選択肢を広げて提案できると良いなと思いました。
もちろん、エンジニアがシェーダーを作ってくれることもあり、相談できたのは助かりました。「この表現にはGeometry Nodesが適しているのかな、でも移植できないし」と思っていたことを、エンジニアがさっとUnityで作ってくれたりして感動しました。
UVとベイク
今回、痛感したのはUVの重要性です。美しく整ったUV展開には、丁寧なモデリングが必要だと痛感しました。シームをどのようにマークし、UV展開をどうするかを考えながらモデリングする必要があるとあらためて実感しました。
開発初期段階は、市販の3DモデルやLumaなどで生成された3Dモデルも検証してみましたが、UVやリグアニメーションを考えるとメッシュ割りや頂点の位置を修正する必要があるので、制作工数の短縮にはならず、結果的にフルスクラッチで3Dモデリングしたほうが早いという結論にいたりました。
リギングツールを使ったり使わなかったり
今回、Apple Vision Proで体験できるフルイマーシブアプリを開発しました。海の生き物を3Dモデリングしていて、生き物のアニメーションに関しては、最初は有料の自動リギングしてくれるプラグインを使っていました。
が、いろいろあってフルスクラッチで作ることにしました。リギングやアニメーションを手軽にしてくれる便利なプラグインなのですが、独自にいろいろカスタマイズしようとすると、エクスポートエラーが起きたりUnity上でうまく再現されなかったからです。
たぶん使い方に問題があったと思うのですが、プラグインの習得コストや認知負荷が高く、結果的にフルスクラッチにすることにしました。
細かいアニメーションの修正が可能になったので、フルスクラッチで良かった気がしました。個人的にはIKやFKをあらためて学べたので良かったです。そもそもリギングとは何かを強制的に学ぶことができ、リグアニメーションについてもっと勉強しないとなーと思いました。
いろんなツールの総合力が求められた気がする
Apple Vision Proの案件では、Blenderの3Dモデリングスキルというより、Unityでの動作検証とアートチェックを通過するまでもっていける総合力が求められた気がします。
Blenderだけでは解決できないことが多いので、Unityを理解していると課題解決のための選択肢が増えるので、悩んだりする時間が減ったり、開発がスムーズに進みました。今回は、UnityのShaderGraphやShaderLabにチャレンジする機会につながったり、UnityでPrefab化してエンジニアに提供など一連のフローまで学べて良かったです。
実機確認までは担当しませんでしたが、xCodeのReality Composer Proで3Dモデルの検証したりもして楽しかったです。
今後について
今回の案件が実績になったり、技術書も出版されたことで、3DCG業務未経験から一歩踏み出せたのは良かったです。
こういう実証実験的なプロジェクトに少しずつ参加できたらいいなと思いました。方向性としては、Blenderを主軸に、UnityとvisionOSに対応できるようにしたいです。
今回の記事では触れませんでしたが、visionOSを活用した空間オーディオがサウナ体験者からすごく好評でした。Apple Vision Proとサウンドや楽曲はとても親和性や体験満足度が高いので、ここも深堀りしたいなと思いました。