「クラウド・スポーン」の作り方(ゼロからのスタート)
注意点: これは公式ではサポートされていないため、将来のアップデートで壊れることが予想されます。本格的な実装は https://github.com/Neos-Metaverse/NeosPublic/issues/1478 が実装されるまでお待ちください(とはいえ、実際に実装されるときは大々的に教えてくれるとは思うけどね) また、信頼できる URI のみを使用してください。
この処理を作るには、「出現させるためのボタン」「出現させたいアイテム」が必要です。これには2つの大きなステップがあります。アイテムのAssetUriを見つけることと、アイテムをインポートするためのボタンを設定することです。
- アイテムのAssetUriを取得 Neos Util Console( https://util.neos.love/inventory/v1/top )を使用し、欲しいアイテムの階層まで移動します。 もし自分の欲しいファイルがここから到達できない場合は、Neos内からインベントリを開き、公開フォルダをフォルダを出現させた後、コンテキストメニューから「URIをコピー」で取得した上で[neosrec:///U-xxxx/R-xxxx]と書かれているところに張り付けて[Open]で開けます。 移動したら、欲しいファイルの右側「…」をクリックし、「Copy AssetUri」をクリックすることでコピーできます。 コピーしたUriは例えば次の通りです。 DevToolTip: neosdb:///1a018baa26fcb64fb8c313c285917ffbc4a308e6264f9175ee469fd512bf6096.7zbson
- アイテムを出現(技術的にはインポート)させるためのボタンを設定 アイテムを「クラウド・スポーン」することは、技術的には.7zbsonファイルをUriよりインポートすることになります。そのため、ファイルをインポートするためのボタンを設定する必要があります。 まず、アイテムを生成するためのボタンを設定します。 これはNeosButton、Physical Button、UIX Button、Context Menu Item Sourceといった、ほぼすべての種類のボタンが可能です。
次に、空スロット(EmptyObject)を作成し、StaticBinary(Assetsにあります)と、FileMetadata(Dataにあります)をそれぞれインスペクタより追加します。 Sync Methodsを表示するMODを使用している場合は、この時点でFileMetaDataにButtonEventHandler "OnImportFile" と記載された項目を作成したボタンのPressedなど、動かしたい部分に掴んで移動させると動作するようになります。
Modを使用していない場合の取得方法です。 コンテキストメニューを開き、「Import File」ボタンが表示されていることを確認します。次に、Inspectorで「自分のユーザ」>「ContextMenu」>「Visual」>「Radial Menu」>「ArcLayout」と進み、コンテキストメニューの「Import File」ボタンに対応する円弧を見つけます。円弧の「Text」子セクションを見れば見つかります。そのArcスロットのすぐ下に、ButtonRelayがあり、ButtonPressedフィールドにOnImportFile ButtonEventが入力されています。そのButtonEventを使用してもらえれば問題ありません。
最後に、StaticBinary の URL フィールドに 先ほど取得した Uri を貼り付けます。繰り返しになりますが、URI は信頼できるもの、それが何であるかを知っているものだけを使用してください。そして FileMetadata から、ファイル名を好きなものの最後に.7zbsonと追加したものに設定します。例えば、私のツールでは、LexTool.7zbsonとします。これで、ボタンを押すたびに、設定したアイテムが生成されるはずです!