メタバース内からメタバースへ向けたアプリケーション開発 — Neos & LogiX

この記事は「Eureka Advent Calendar 2021」12日目の記事になります。

前回は弊社のBackend Teamマネージャー山下が贈る「2021-eureka Backend Team振り返り」でした。弊社Backend Teamが一年間試行錯誤してきたマネジメントのノウハウを10分で追える記事になっているのでぜひこちらもご覧ください。

こんにちは!Web Front-end Teamの竹内です。チームメンバーからはHead of VR TeamのBOXPと呼ばれています。

去年のEureka Advent Calendar 2020で書かせていただいたVRChatの記事がありがたいことに好評だったため、今回はまた違った方向でVRに関連した記事を書こうと思い立ちAdvent Calendarに参加することにしました。

そのため、去年の記事に続き今回も普段の弊社での業務とは一切関係のない内容になります、あらかじめご了承ください。

はじめに

今年の11月下旬にFacebook社が社名をMetaと改めてメタバース事業へ参入して以降、メタバースという単語を良く耳にすることとなりました。

2000年代にコンピューター上のもう一つの現実としてブームとなったメタバースですが、当時と比べて一般のユーザーが触る事ができるコンピューターの性能が格段に向上していることと同時に、以前はとても高価で一般的ではなかったVR機器がOculus Quest等のように普及し始めている事を背景に、VR技術も暗黙に含んだものとして話されていると思います。

以前紹介したVRChatもメタバースの一つですが、実は現在のある種のメタバースブーム以前からメタバースであることを強調したVRプラットフォームが存在しており、VRChatには無い「メタバースの中で利用するものは、メタバース内で制作できる」と言うとてもユニークな特徴を持ったサービスとして運営されています。

今回はこのユニーク特徴を持つ「Neos」を実際に制作する映像を交えながら、メタバース内でメタバース内のものを制作する体験がどのようなものなのか紹介していきます。

Chrome Devtoolを丸ごと内蔵したようなNeosのインターフェース

NeosはVRChatなどと同様にユーザーがVR機器を装備した状態で操作する前提でUIが設計されており(もちろんVR機器を使わずマウスとキーボードでも操作できます)、更にNeos内部で利用するほとんどの物を作るのに十分な機能が用意されています。

基本的なUIの操作は空中に浮いたウィンドウに手で照準を操作しクリックする事で行います。

また複雑な操作を可能にするために、Neosでは様々なTooltipを装備する事でコントローラーの操作による作用を入れ替える事ができます。

↑で装備している金色の弾丸のようなTooltipはDeveloper Tooltipといい、Neosで最も基本的なTooltipです。このTooltipを装備すると新しいオブジェクトの作成が出来たり、さながらウェブブラウザのデバッグで利用するChromeのDevToolsのようなInspectorを表示させ、編集することができます。

この様にNeosの中に居ながらTooltipを駆使して操作を行うのがNeosでの基本操作になります。

また、Neosのインターフェースは一部を除いて他のプレイヤーからも閲覧・操作可能となっていて、遠く離れた場所からでも他の人とペアで作業ができるようになっています。これにより初心者の作業を手伝ったり、さながら一つのモニターを二人で確認しながらペアプログラミングをするように作業を進める事ができます。

VRコントローラーでのコーディングに特化したプログラミング言語「LogiX」

Neosでは専用のプログラミング言語として、グラフィカルにプログラミングを行う「LogiX」を使ってプログラミングを行います。

命令のノードとノードをワイヤーでつないでプログラミングを行うグラフィカルなプログラミング言語としてはオーソドックスな作りですが、Neos内でプログラミングを行う都合上、ノードの移動やワイヤーを繋ぐ作業をメタバースの3D空間上で行うのがLogixの特徴です。

基本的な数値計算の命令やif文等のフロー制御をはじめ、HTTPリクエストやWebSocketを扱うノードなど様々な命令を使用して複雑なシステムも実装する事が可能です。

LogiXを組み終わったら、LogiXをオブジェクトの中にしまい込むこともできます。

簡単に2D UIを作成できる「Neos UI」

Neos内で何かしらのアプリを作る際、1からUIを作っても良いですが簡単なものであればNeosで最初から用意されているNeos UIを組み合わせる事で簡単にUIを組む事ができます。

Neos UIで組み上げたUIをLogiXで組まれたプログラムと接続すれば、簡単にアプリケーションが出来上がります。

Neosを実際に体験するために

ここまでで実際のNeosでの開発方法について掻い摘んで説明をしてきましたが、残念ながら実際にNeosを触れるまでのハードルは低くないのが実情です。

ある程度の性能をもつWindowsが動作するパソコンを持っていればVR機器なしでもNeosに触れる事ができますが、Neosの真価はVR機器を使って体験してこそ感じられる部分が多くあると思っています(これは個人の感想です)。ところが今の時点では、NeosをVR機器から体験するためにはOculus Quest等のVR機器の他にある程度のスペックを持ったPCが必要であり、自分で揃えるにはかなり安く見積もっても10万円ほど投資しなければなりません。

もしこの記事を呼んでNeosに触れてみたいと思ったものの、そこまではちょっと…と言う場合には、一旦デスクトップモードで体験して頂くか、もしくはVR機器専門のレンタルサービスを利用するのもおすすめです。PCとVR機器の両方を借りる場合は流石に少し値が張りますが、PCとOculus Quest2のセットで大体2~3万円程度で2週間のレンタルが可能ですので選択肢として一考の余地はあると思います。

Neosを体験できる設備が揃ったら、以下に有志がまとめた”NeosVRの始め方”がまとめられていますので、ぜひここから始めてみてください。

https://neosvrjp.memo.wiki/d/%bb%cf%a4%e1%ca%fd

おわりに

VRChatとも異なるユニークな特徴を持つメタバースのNeosについて、掻い摘んでではありますが紹介してきました。

ユーザーも多く企業の参入も進んでいるVRChatと比べると知名度が低いNeosですが、実際に利用して以来その特徴からくる唯一無二の開発体験に感銘を受けたためこの記事を書くこととなりました。Webアプリケーションを問わず、アプリケーションの開発に興味のある方であれば中々の衝撃を受けることと思いますので、この記事を見て少しでもNeosを触れる方が増えれば幸いです。

謝辞

この記事は著者がNeosを始めた時に快くNeosの基本を教えてくれた全ての方々の助言と、弊社で一緒にNeosを体験してくれたVR Teamの仲間達の言葉を元に纏めることができました。本当にありがとう!

Eureka Engineering

Learn about Eureka’s engineering efforts, product…

Eureka Engineering

Learn about Eureka’s engineering efforts, product developments and more.

BOXP(Keitaro Takeuchi)

Written by

Front-End Engineer at eureka, Inc. / Clojure / Go / TypeScript / https://boxp.tk / aka. BOXP

Eureka Engineering

Learn about Eureka’s engineering efforts, product developments and more.