この記事は、
NeosVR #1 Advent Calendar 2021の10日目(12/10)です。
neosにはVR内でプログラム開発できるLogiXというノード言語があります。
しかしこの記事を書いてる時点で個別に投稿されている講座等はあるものの、順序だてて一気に覚えるような講座や書籍はありません。
基本的に情報はバラバラなので、自力で全てやろうとすると必要なことを地道に調べていく根気が求められます。
そこで今回は私がLogiXを覚えるにあたって実際にやったことをベースに、LogiXを学んで何かを作るまでの簡単な流れと役に立ちそうな情報、どんなことをすれば良いのかなどを書き連ねました。
合間を縫ってざっくり書いたものですが、これから始めようと思ってる方はぜひ参考にしてみてください。
リンク集だけ見たい方は「LogiX開発に役立つサイト一覧」まで飛ばしでください。
質問するのに良い場所
まず一番最初に、質問しやすい場所を把握しておきましょう。
LogiX開発やNeosVRについてわからないことがあれば、以下の場所で尋ねるのがおすすめです。
Twitter(#NeosVR知恵袋タグ)
基本操作の習得
NeosVRの操作方法自体がかなり独特なので、手を動かして慣れましょう。
LogiX開発を始めるにあたってはパッキング(ノードをスロットの中に仕舞う操作)のやり方と挙動、ツールチップの使い方、インスペクタの使い方、コンポーネントの追加、ノードのつなぎ方と切り方、等々覚えることはたくさんです。
2022/04/11 追記
JPクリエイターガイドというワールドが公開されました。
DevTooltipなどの使い方を初歩から学ぶことが出来るワールドです。
操作が全くわからない方はここから初めて見るのも良いと思います。
neosをインストールした状態で下記リンクをクリックでワールドに移動
http://cloudx.azurewebsites.net/open/world/G-Shared-Project-rheni/R-0b0e3732-6f47-45ed-8321-3fc0ff1c10f3
最初はこの動画などを見ながら、見様見真似で簡単なアイテムを制作していくと良いと思います。
[NeosVR解説] 第2回:クリックしたら光る箱を作ってみよう
開発するワールド(場所)について
開発の際は、起動してすぐに表示されるホームを使わずに、都度使い捨てのワールドを建てるのがお勧めです。
展開してワールドの建て方を確認
![スクリーンショット 2021-11-23 122913.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2308792/42aa4700-d3f8-a795-51be-2c07ed904fe3.png) ダッシュメニューのホームから「新規ワールド作成」を選択。 ![スクリーンショット 2021-11-23 123052.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2308792/9ffd8fc7-07a9-46b0-7b67-8442fc3a062f.png) テンプレートから好きなものを選択し、 「ワールドに入れる人」から入室制限を選択して「セッションを開始」でワールドが建ちます。 パブリック設定だと文字どおり誰でも許可なのでいきなり英語圏や韓国語圏の人が入ってきたりもします。コミュ力に自信のない方や作業に集中したい場合は「プライベート」か「フレンド」がおすすめです。後から入室制限を変えることもできます。NeosVR内で動画視聴、Webサイトを見る方法
ちなみに、動画の視聴やWebサイトの閲覧も
NeosVR内で全て完結できるので、参考程度にそのやり方を書いておきます。
展開して動画視聴・Webサイト視聴のやり方を確認(Youtube以外は対応していない場合があります。)
まずはVR内で見たい動画のURLをコピーします。 ![動画のコピー](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2308792/40d842e5-7dd0-33a6-06ad-6abb06733098.png) 次にNeosVRでダッシュメニューを開いて、家のマークの項目内の「クリップボードからペースト」をクリック ![貼り付け操作](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2308792/aa297f52-1ae9-642a-0d01-08f6a9254f64.png) 出てきたウインドウの「ビデオ」を選ぶと動画プレイヤーが出現して 少し待つとロードされるので、あとは好きな位置に置いて再生できます。 ![20211205111956_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2308792/71c50c2f-d4de-d027-7630-076932735e09.jpeg) ![20211205112033_1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2308792/02b61554-f94e-5954-cf4b-3f505cf0d490.jpeg)展開してWebサイト視聴のやり方を確認
PCのデスクトップ画面を操作し確認したいページを表示した状態で NeosVRに戻ります。 そしてダッシュメニューからデスクトップの項目を選ぶと表示されます。 VR内だと文字が読みにくいので、あらかじめ拡大してくおくのがおすすめです。 また、この説明ではneosの画面を表示してますが実際に試す際は最小化しておいた方が良いです。 ![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2308792/a82f1938-e941-9f81-0471-829ed3804613.png)基本操作を覚えるのに役に立つサイト
・基本操作
https://neosvrjp.memo.wiki/d/%c1%e0%ba%ee%c0%e2%cc%c0
・インスペクタについて
https://neosvrjp.memo.wiki/d/%A5%A4%A5%F3%A5%B9%A5%DA%A5%AF%A5%BF%A1%BC%A4%CB%A4%C4%A4%A4%A4%C6
・ツールチップ操作の基礎(動画)
https://www.youtube.com/watch?v=PlRslJGw1Lo
・LogixTipの操作
https://neosvrjp.memo.wiki/d/LogixTip
簡単な処理を自力で実装してみる
操作を覚えたら自力で簡単な実装をくみ上げてみましょう。
例えば動画にあったような
「ボタンを1個作ってそれを押したら何かが起きる」
など、ごく簡単なもので構いません。
出来れば自分が知らない要素(音を鳴らす、ボタンの代わりに他の条件で動くようにする等)を一つ調べて取り入れるとさらに学習がはかどります。
自分で作りながらNeosVRで何が出来るのか理解を深めると、少しずつ自分がやりたいこととの距離が見えてきます。
自力での実装の際の調査に役立つサイト
必要に応じて下記のページを見ながらどんなノードやコンポーネント・テクニックがあるのか調べるのも有効です。
・ノード
https://wiki.neos.com/LogiX/ja
・コンポーネント一覧
https://neosvrjp.memo.wiki/d/%a5%b3%a5%f3%a5%dd%a1%bc%a5%cd%a5%f3%a5%c8%b0%ec%cd%f7
・rheniumさんのお気に入りComponent紹介
https://qiita.com/rhenium_vrc/items/aa271c844acf291ae711
・条件分岐や値の取得等プログラミングにおける要素をLogiXで実装する例の解説
https://nanasai.hatenablog.jp/entry/2021/12/01/220631
・実際のアイテムを例にしたテクニカルな解説
NeosVRJP-Techbook
またNeosVRでは実装したLogiXはそのまま複数人がいる環境でも同じように動かせますが
どのユーザーがどのタイミングで処理してるかについての仕様はかなり癖があるので、先に下記の記事をみておくと良いです。ここを間違えると自分と相手とで見えているものが違うという事が発生します。
私もいまだに引っかかる重要な箇所なのでしっかり覚えましょう。
[NeosVR] 見ている人によって値が違う???
https://qiita.com/Rabbuttz_/items/a30f8992b836a663baff
アイデアを練る
作りたい物を考える
簡単な物をいくつか作ってLogiX開発に慣れてきたら、いよいよ自分が作りたい物決めましょう。
例え既存品の焼き直しや再現だとしてもVR内で自分の体を使って操作すると、ゲームや漫画で見るのとはまた違った体験になります。
また、NeosVR内で誰かが既に作っている物でも、自分なりに考えて作り上げる事に大きな意義があります。
余裕があれば自分なりにアレンジを入れても良いでしょう。
要は、自分のスキルと相談しつつ作りたい物を作りましょうということです。
他の人の制作物を研究する
自分のアイデアを実現するために、既存の作品を研究してみても良いでしょう。
公開されている作品の多くはその場で遊んだり、持ち帰って中のLogiXを展開してコードを見ることが出来ます。
気になる動作をしているアイテムを見つけたらインベントリに保管し持ち帰ってみましょう。
*ワールド作者が意図的に保存できないように制限している場合もあります。
ノードを展開した状態で実際に動かしてどこでどのような処理をしているのかじっくり観察することも出来ます。
参考にしたいアイテム・ワールド
*neosをインストールした状態でリンクをクリックするとワールドに移動します。
The Directory
色んなフォルダを展示しているワールド。
http://cloudx.azurewebsites.net/open/world/U-ProbablePrime/R-9ce872e1-ffb8-4194-bb91-3d3ab5f157a1
NeosFesta3
1か月間作品を投稿して公開するお祭りイベントの跡地。
http://cloudx.azurewebsites.net/open/world/G-Neos-East-Japan/R-f030f0a3-062c-4533-8b19-030f3a7c6fd6
MMC21
制作期間1か月限定作品のコンテスト。下記は全142作品を紹介したツリー。
https://twitter.com/TewiEwi_no96/status/1444447673386373124?s=20
また、インベントリから日本コミュニティの方が作ったアイテムを見ることも出来るのでそちらも参考になるでしょう。
インベントリの初期ディレクトリから
Neos Essentials/Community Public Folders/JP Publics
でアクセスできます。
アイデアが浮かばないときは?
アイデアがどうしても浮かばない場合は、下記を参考に考えてみてください。
この記事を書いてる時点でneosはまだ小さな世界で存在しないものは多くあり、その中にはユーザーが気づいていない物もたくさんあります。
●自分が好きな創作(漫画、小説、映画、アニメ等)に出てくるアイテムを再現したり、その要素を組み合わせる
●他のゲーム内で使われているアイテムや機能と同じ物を作ってみる
●現実世界にあるものを再現してみる
●NeosVRでの不満を解決する手段を開発してみる
●他のサービスやゲームで出来なくて諦めていたことを実装してみる
作ってみる
調査してアイデア纏まったら早速作ってみましょう。
ここまでくるとあとは作るだけなので、
誰かに相談したり記事の上のほうに書いてあるページも駆使しながら頑張って作り上げましょう。
ここでは注意したほうが良い事項を列挙してみます。
・突如アプリが落ちることがあるので、インベントリの容量が許せば保存はこまめに行うことをお勧めします。
・PCが複数台ある方はヘッドレスサーバーを建ててその中で開発することで環境が安定する場合もあります。
・一人で動かしているだけだとわからないバグが結構多いので、可能であればだれかと一緒にデバッグしましょう。
繰り返しになりますが作っていてわからないことが出てきたらDiscordで聞いてみたり、Twitterで「#NeosVR知恵袋」のハッシュタグをつけて質問してみましょう。
相手の都合がつけばNeosVR内で直接出向いて途中経過を見せながら相談しても良いでしょう。
文字であれこれ説明するより簡単かもしれません。
ちなみに私が最初に本格的に作ろうとしたのは「H3VRとかである、銃や銃創を半透明な球体の中にしまえるシステムをアイテムで再現(+体のどこにでもくっつけられるようにカスタム)」でした。
使う分には至極単純な機能ですが、低スキルな状態で強引に作ったので数週間から1か月近くかかった記憶があります。 この次の年にほぼ完全上位互換品を作ったので今はこのアイテムは使ってないです。 また今思い返してみると無駄実装とバグの塊なので解析にも向いていないしょぼいアイテムですが、スキルの向上という点では大きく役に立ったと思います。体の好きな部分に装着して簡易インベントリを追加する
— e1ght3 (@e1ght3) December 12, 2020
「クイックインベントリ(Quick Inventory)」
NeosFestaの会場にて配布中です。複数装着もOK
*フェスタ会場内限定で動かないバグがある為、試す場合は他のワールドかローカル内でお願いします。#NeosFesta #NeosVRhttps://t.co/eyRSMk3BJB
↓
最初から上手く作れる人はいません。
車輪の再発明・劣化品・失敗上等の気持ちで、とにかくチャレンジみる事が大事です。
失敗例↓
公式が物理エンジンを入れ替える前の時代の失敗作バイク。
マウンテンバイクみたいに坂道を駆け上がるものを作ろうとしたが
普通に走るだけで気味の悪いバウンドを繰り返し、偶に着地に失敗して床をすり抜けるゴミが完成。
しかしLogiXを学ぶ上ではこういう無駄も大事なステップだと私は考えます。
何とかバイクでジャンプできるようになった。
— e1ght3 (@e1ght3) December 31, 2020
ずっと走ってるとなぜか傾くし
着地判定も機能不全でどういう理屈か着地が上手くいかないケースがあるのでお世辞にも実用的な制作物ではないが。
疲れたので後日他のと併せてソースコードだけ置いておくワールドに展示して終わりにするかも。#NeosVR pic.twitter.com/ukdEUQAlNS
公開してみる
作った物はみんなに使ってもらってこそなので公開してみましょう。
ワールドを作成してそこに設置するのも良いですが、ここでは共有フォルダを設定してそのリンクを取得する方法を解説します。
公開フォルダの作成の仕方
公開したいフォルダを選択し、メールアイコンをクリック
で、共有できるようになります。
公開をやめる場合は、その横の手のアイコンを2回クリック。
*フォルダ作成自体は通常の手順と同じで、横の+ボタンから作成。
共有フォルダURLの取得
上記の操作でメールのアイコンをクリックした際に出てきたオレンジ色の四角を掴んでコンテキストメニューを出し、
「リンクをコピー」を選択。
そうすると、このような形式のリンクを取得できるので、これを張り付けて告知することで第三者に自分の作品を公開することが出来ます。
neosrec:///U-e1ght3/R-b16b87ca-1750-4ae8-9d58-d2038a1f401a
共有フォルダの取得方法
他の方が公開しているURLを見つけたら、まずURLをコピー。
次にダッシュメニューを開いて、家のマークの項目内の「クリップボードからペースト」をクリック
オレンジ色の四角が現れるのでそれをインベントリに保存。
あとは普通のフォルダと同じようにダブルトリガー(ダブルクリック)で開けます。
共有フォルダ(パブリックフォルダ)に置いてあるアイテムの扱いについて
neosではいろんな人が色んなアイテムを公開しています。
その扱いについて明確にルールがあるわけではありませんが、特に注意書きがない場合
「neos内に限っては自由に使用・解析・改造・無償での公開をしても良い。(有償公開はNG)」
と解釈して問題ないと思います。気になる場合は作者本人に連絡してみましょう。
*3Dモデルや音声については版権物や現実にある製品を模したものが使われているケースもあるので注意が必要です。
逆に何かしらの制限を設けたい場合は、フォルダの中に日本語と英語で注意書きを添えたテキストを一緒に入れておきましょう。ただしテキストを置くのはあくまで注意を促すだけで強制力があるわけではないので注意してください。
また、既存品を改造して制作した場合は元の作者さんの名前もアイテム名に入れてあげると良いと思います。
公開するアイテム名に元の製作者の名前を併記するか、
アイテムのSlotの直下Creditという名前の空のSlotを作り、その中に
Metadata>License
のコンポーネントを追加して、関係する方の名前を書いておくと尚良いでしょう。
欄が足りない場合はLicenseコンポーネントを複数追加しても問題ありません。
一緒に作業して新しい刺激を取り入れる
一人でずっと同じことをしているとどうしても詰まってしまうことがあります。
そういうときは気分転換して違うことをやってみましょう。
neosはもともと教育用途を想定して開発されているため、
同じワールド内で複数人同時作業も簡単にできます。
そしてその性質を生かしたイベントも実施されているので、新しい刺激を取り入れ知見を広げるために積極的に参加してみましょう。
そこで聞いた話や雑談から新しい道が開けるかもしれません。
多人数で自由にLogiXを開発する際は、影響範囲に細心の注意を払いましょう。
実装を間違えると他のユーザーや領域、作成中のアイテムにも影響が及んでしまうため
慣れないうちは1アクションで完結する実装(ボタンを押すと1回だけ何かが起きる、条件を満たすと1回だけ処理が走る。等)を心がけると良いと思います。
講習などの場合は講師の指示に従っていれば特に気にする必要はありません。
NMC モデリングクラブ
毎週水曜日の21時頃開催。
初心者レベルからでも参加できる講座型のイベント。
講師も合わせて50人規模を超えることもある。
講師の話を聞きながらその場でモデリングや簡単なLogiX実装が行えて質問も出来るので、スキルに自信がない方はこのイベントから参加してみると良いと思います。
CreatorJam
毎週日曜日14時から開催される創作イベント。
お題に沿ってみんなで一つのワールドを制作する。
用意されたアセット置くだけ等、どのスキルレベルでも参加可能なのが特徴。
日本人だけではなく海外の人とも一緒に作業をするが、
翻訳ツールを駆使すれば簡単なコミュニケーションは可能なので気になる方はぜひ挑戦してみてください。
ちょっぱやワールド
不定期に開催され、お題に沿って数時間でワールドを一つ作るイベント。
作りたいなって思う人が多ければ開催される。というとても軽いイベント。
LogiX開発に役立つサイト一覧
NeosOnakaForce(Youtube)
動画でLogiXのテクニックを学ぶことが出来る
LogiXチュートリアル(日本語)
基本的な事柄が少し紹介されています。
LogiXチュートリアル(英語)
チュートリアル記事へのリンク集(英語)
Twitter(#NeosVR知恵袋タグ)
過去の質問などを閲覧できます。
Qiita(NeosVRタグの記事)
Qiita内のNeosVRタグの記事。
技術的な話が多く役に立つ。
NeosVRJP-Techbook
主に中級者向け。具体的な作品を例にどのような技術が使われているのか解説されている。
LogiXのテクニック等のチュートリアル動画(英語)
項目ごとに詳細な解説と作成を教えてくれる。英語に抵抗がなければ非常にお勧め。
NeosVR開発用メモ書き
拙作サイト。文字通り乱雑なメモ書きだけどもしかしたら何か役に立つかもしれません。
ノード解説記事へのリンク
メニューからリンククリックで各ノードについての簡単な解説が確認できる。
コンポーネント一覧
全コンポーネント一覧。名前からほしい機能があるかあたりをつけたり、どこから取得するか思い出せないときにどうぞ。
rheniumさんのお気に入りComponent紹介
動画付きコンポーネントの解説。効果がわかりやすいのでお勧め。
最速で駆け抜けるLogix入門
条件分岐や値の取得等プログラミングにおける基本的な処理をLogiXで実装する際の作例の解説
neosでゲームを作るときに困ったことと解決策
タイトル通り、NeosVRでゲームを作る際に引っかかりやすい箇所とその解決策がまとまっています。
Mathのあれこれ
LogiXの数学的な処理を行うノードの解説。
最後に
LogiXはその仕様上かなり独自部分が多いですが、やれることが増えると一気に自由度が増して自分のいる世界をその場で自由自在に作り替える体験が出来ます。
VRの疑似現実感と合わさるとかなりのインパクトがあり、それを味わえるだけでもLogiXを学ぶ価値は十分にあると思っています。
その際に努力して一生懸命勉強するのも良いですが、やはり続けるには楽しむことが一番大事だと思うので自分が楽しいと思える事や物に向かって進んでいくと長続きしやすいと思います。
実際私がNeosVRを1年以上かつ1500時間以上も続けているのは
「VRでこんなことが出来たらきっと更に楽しくなる」
と思いながら色々作ってるからだと思います。
最期まで読んでいただきありがとうございます。
NeosVR #1 Advent Calendar 2021の次の記事は、
マサユイ(masayui2588)さんの
「VR中にお茶」
です。
おまけ(拙作のアイテム一覧)
この記事を書いている時点で大体1年ぐらいneosで開発していますが、
それだけやりこんで何が出来るようになったかという具体例として
私が過去に作ったアイテム等の一部を列挙しておきます。
既存品の改造品もありますが、自由に色々やれることがわかると思います。
量が多いので別記事にしました。
下記からご覧ください。
https://qiita.com/e1ght3/items/8addca486d7decdbf3eb