見出し画像

BlenderでApple Vision Proアプリ開発に参加して感じた「Blenderのニーズ」

「今年はBlenderを使って他の人とコラボしたい!」とエンジニアの勉強会でプレゼンしたことがきっかけで、Apple Vision Proに関するいくつかのプロジェクトに誘ってもらい、3Dモデリング担当として参加する事ができました。

これらのプロジェクトを通じて「これからBlenderでどんな事をしていこうか」について、自分なりの方向性が見つかった気がしました。自分の気持ちを整理するためにnoteの記事を残すことにしました。

※ Apple Vision ProにおけるBlenderの可能性は、前回のノートに書きました。


3DCGの総合的な課題解決力が求められた

Apple Vision Proのアプリ開発に、Blenderで関わった際に感じた事は「3DCG制作における総合的な課題解決力」が必要という点でした。

例えば、Blenderで制作した3Dモデルを、Apple Vision Pro実機に持ち込むというプロセスは、実機に至る道のりを眺めると、とても遠く感じられます。BlenderからUnityXcodeへとソフトをまたいでいく際の技術的な課題により、いっそう実機で動かすための道のりが遠く感じます。

実際、自分はBlenderよりもXcodeやUnityを触っている時間が多く、その時間の大部分は、うまく動かない事からくる試行錯誤に費やされました。

特に、UnityのPoly Spatialを活用したApple Vision Proアプリ開発では、Blender, Unity , Xcodeで表現できる事にそれぞれ特色があり「この表現はどのソフトで実現可能なのか?」の模索で、エンジニアと一緒に頭を悩ませました。その際に必要だったのが「3Dを構成する要素の基礎知識 = メッシュ、マテリアル、ポリゴン、テクスチャ、シェーダー、リギング、ポストプロセスとは何か?」といった、本当に基礎的な知識でした。

それまで漠然とイメージしていた自分の役割は「Blenderで完成させた3Dモデルを、UnityやxCodeでエンジニアに動かしてもらう」でしたが、むしろ「プランナーが示したアートワークを、Blender, Unity, xCodeのいずれかの機能で実装し、visionOS上で表現する一員」というのが実際でした。

そのため、以前は「BlenderとUnityではシェーダーに互換性がない」などのソフトウェアごとの差異を「ふーん、そうなんだ」程度の距離感でいましたが、今はBlenderでモデリングした3Dオブジェクトに対して、UnityのShaderGraphを未経験ながらなんとか書いています。そして、BlenderのShaderEditorの経験がすごく活用できました。

Apple Visio Proを通じてBlenderも上達できた

また、Blenderで個人制作していた際に見落としていた3D制作の基礎知識が、UnityやXcodeを強制的に触ることで、復習的に再学習できました。

例えば、テクスチャベイクやSubstancePainterとの連携で、UVの重要性を身にしみるほど実感しました。特にBlender上のUVでやりきれない箇所を、Photoshopで力技的に解決する方法も学べました。

また、データの軽量化を前提とした、トポロジーなどポリゴンの削減などは、Blenderで映像を作っているだけでは、そこまで必要性がなかったので、なかなか手を付けにくい領域でした。今ではポリゴンを注意深く見るようになりました。

リグアニメーションを含めたFBX書き出しと、Unity上での動作確認方法、Unity上でのPrefab化、エンジニアとの連携のためのUnityPackageの作り方など、他のツールに移植する前提のワークフローも学べました。

また、BlenderのShaderEditorやUnityのShaderGraphのようなグラフィカルなシェーダーの裏で動いている、スクリプトもUnityのShaderLabでShaderをつくる際にHLSLを学ぶことで「BlenderのShaderはPythonだとこんな感じで書くのかな」と実感したりもしました。ちなみにApple Vision ProではHLSLは現時点では使えないそうなので、せっかく入門したHLSLは使えませんでした。

メインであるBlenderを離れて違うツールを使うことで、結果的にメインであるBlenderの技術力もアップする効果を実感できました。

プロジェクトでは3Dモデル自体のニーズはほとんどなかった

プロジェクトにチームで参加した際、実は「Blenderで3Dモデリングする役割」的なニーズは、ほとんどなかった点も印象的でした。キャラクターモデリングであれば、主役のようなものなので別かもしれませんが、少なくとも背景や小物などの3Dモデリングニーズはプロトタイプ開発段階ではありませんでした。

特に今回はR&D要素の強いプロジェクトでしたので、エンジニアはLumaAIなどで生成した3Dモデルを使ってデモアプリに活用していました。「生成AIで簡単に3Dモデルが作れるからニーズがない」というよりも、これまでもTurboSquidやBlenderMarketなどで3Dモデルは販売されて活用可能でしたので、もとからニーズはなかったのだと思いました。

プロジェクト参加当初、私は「開発用の3Dモデルを作ります!」と言っていましたが、実際のところ「3Dモデルのニーズはない」と思い直しました。

3Dモデルのニーズはないけど、3Dモデルにまつわる課題解決ニーズはたくさんあった


その一方、特定のエフェクトやアートを表現したい場合、3Dモデルを含む技術的なアプローチを模索し、プロトタイプを作り上げていくニーズはたくさんありました。つまり「3Dモデル自体のニーズはないけど、エフェクトなどで何かを表現したい時に生じる、技術的な課題に対するソリューションのニーズは無数にあった」という事が発見でした。

端的な話「Blenderで作った3Dモデルを、指定されたような表現で、Apple Vision Proで実現するには、多くの課題がある。そのために複数ソフトを併用した解決策が求められている」という事でした。

少し話は変わりますが、このプロジェクトで自分は、BGMとSEも提供しましたが、当初は3Dモデルよりも音源のほうがプロジェクト的には喜ばれました。

これも、オリジナルのBGMそのもののニーズは当初ありませんでした。その一方、Apple Vision Proで表現する空間音楽の特徴を活かした、没入感あるオリジナルBGMにはニーズがありました。

AudioStockなどの音源素材との違いは、xCodeやUnityに配置した3DモデルにAudioClipなどのAudioコンポーネントをアタッチして、音の減衰やパンを表現できることです。具体的には、効果音や楽曲のニーズに応じて、2分の尺で用意したBGMを可変の長さに動的に伸縮できるようなBGMの提供が求められます。これは音源素材では代替できなかったため、オリジナル音源のニーズが生じたのです。

つまり「このプロジェクトをイメージしたBGMを作ります」にはニーズがないのですが、「このアート表現を再現するための技術的ソリューションに即したBGMを提供します」にはニーズがあったのです。

これはBlenderによる3DCG制作にも同じ事が言えました。

「Blenderで3Dモデルをつくります」にはニーズがなく、「AppleVisionProで表現するための3Dモデルと付随する演出」「そのために発生する技術的な課題の解決」にはニーズがあるという点です。

自分のBlenderスキルは何の役に立つのか?を再確認できた

自分はゲーム開発などで3DCG制作業務をしていないので、分業体制みたいな組織で、3DCGを割り当てられるという組織的な恩恵を受けられません。

そのため、Blenderを1つのスキルセットとして見据えた際、「Blenderで3Dモデルを作れます」という点では、周囲にニーズがないことを実感しました。その代わり「visionOS用にRealityKitを使用してアプリに3Dモデルやエフェクトを追加する事に注力しています」というスタンスのほうが、ニーズを満たすと思いました。

今後、Blenderを続けていくうえで、上記のような点を自分の強みや軸にしていけたらと思いました。


Apple Vision Pro向けのアプリ開発を通じていろいろ学びがありましたが、やはりBlenderが好きだし、触っていて楽しいです。「Blenderをやり続けた先に、何をしようか」をモヤモヤ考えていたので、こういった機会に触れられて良かったし、よりBlenderが好きになりました。

Blenderを基盤にしてUnityやxCodeの知識を身に着け、一つの軸を築けたら良いなと考えています。

この記事が気に入ったらサポートをしてみませんか?