見出し画像

うどん! RiddleWorldUdonPrefabsの使い方

RiddleWorldUdonPrefabs(BOOTH配布ページ)はVRChatの謎解きワールド向けのPrefabの入ったUnitypackageです。こんな感じのワールド作成できます。

[特徴]
・あなたを謎解きワールド製作者です。
・用意するのは画像ファイルだけ。
・数字とアルファベット、ひらがなの解答入力ができる。
・U#で動くけどU#のコードの記述は不要。
・VRChatのワールドを作成する用途であれば基本的に自由に使ってください。改良を加えての再配布も大丈夫です。報告も必要じゃないです。(何か問題が発生したらここの文言が変わる可能性があるのはご了承ください。)
・あなたを謎解きワールド製作者です。私は謎解きワールド製作者が好きです。

この記事ではRiddleWorldUdonPrefabsを使って、謎解きワールドをアップロードする方法を説明します。VRChatですでにアバターのアップロードをしたことある人向けの説明なので、Unityのインストールやトラスト等の説明は省略してます。

インポート方法

画像1

・まずVRChat SDK3をインポートします。UDONを使うので。

画像2

・次にUdonSharpをインポートします。UdonをC#で記述できるやつです。C#をすでに知ってるひとは仲良くしてね。知らない人でもコード書く必要はないので安心して。最初のページのSetupの章から最新のreleaseページに飛べば、最新のunitypackageがダウンロードできるはずです。
・あとはTMS_RiddleWorldUdonPrefabsをインポート。もうすぐあなたを謎解きワールド製作者です。

画像3

インポートすると以下のファイルが展開されます。
・TeamMomoSteel
┣Editor:エディタ拡張のスクリプトです。Unityを便利にします。
┣Prefabs:VRCのワールドへの設置を想定したPrefabたち。
┃┗SDK3
┃ ┣BGMCube:InteractでBGMのON/OFFを切り替えられる立方体。
┃ ┣Canvas:PNGなどの画像ファイルをワールドに表示する。
┃ ┣HintPanel:InteractでヒントのON/OFFを切り替えられる。
┃ ┣InputPanel:正解を入力するとイベントを発生させるパネル。
┃ ┣Room:シンプルな部屋。16m×16m×10m。
┃ ┣TeleportDoor:別の場所に移動できるドア。
┃ ┗Udon:なんか便利そうなUdonができたら突っ込んでる。
┗RiddleWorld:サンプルワールド。そのままアップロード可能。
・SerializedUdonPrograms:U#から生成されたUdon本体。

ワールドのアップロード

画像4

Assets\TeamMomoSteal\RiddleWorld\UdonWorld をダブルクリックで開くと、VRC_SceneDescriptor記述済みのサンプル用のシーンが開かれます。
メニューの VRChat SDK>Show Control PanelからVRChat SDKのコントロールパネルを開きVRChatのアカウントでログイン、Builderタブを表示してください。

画像5

UnityのLayersの設定がVRChat用になっていない場合は警告メッセージが出るので、VRChat SDKのコントロールパネルに表示される次のボタンを押して、VRChat用の設定に変更します。
・Setup Layers for VR Chat
・Set Colision Matrix

画像6

必要な設定が終わるとVRChat SDKのコントロールパネルのBuilderタブに次のボタンが表示されます。
・Build & Test:ローカルで動作確認ができます。
   ・Force Non-VR:デスクトップモードで動作確認します。
・Build & Publish:ワールドをアップロードします。

画像8

Build & Publishボタンを押すとワールドのアップロード画面になるので、次の情報を記述して必要事項を記入して"The above~"のチェックをONにしてUploadボタンを押せば、ワールドのアップロードができます。
・World Name:ワールド名。
・Player Capacity:同一インスタンス内に入れるプレイヤー上限。
・Descriotion:ワールドの説明文。
・Content Warnings:性的、暴力的な表現が含まれているかどうか。
・The above~:”ウソは書いてません。VRChatにアップロードする権利を持ってます。”
・Publish to Community Labs:ワールドをパブリックで公開するためにCommunity Labsに上げます。

画像7

ワールドのイメージ画像は、HierarchyウィンドウのVRCCamをSceneウィンドウで移動させることで変更できます。

おめでとう! これであなたを謎解きワールド製作者です!

InputPanelがこわれた

2021/01/04 現在最新のSDKとUdonSharpとの組み合わせで、インポート直後のサンプルワールドでInputPanelが正しく表示されない現象を確認しています。現象が発生した場合は以下の手順でUdonSharpの再コンパイルを試してみてください。

画像27

・ProjectウィンドウからAssets>TeamMomoSteel>Prefabs>SDK3>Udonから適当なUdonAssemplyを選択する。
・InspectorウィンドウでCompile All UdonSharp Programsボタンを押す。

Unityの再生ボタンを押して、Sceneウィンドウで画像のようにInputPanelが表示されれば問題は解決されているはずです。

問題の変更方法

ワールドのアップロードはできましたが、サンプルの問題しかないワールドなので何の面白みもありません。圧倒的オリジナリティが足りない。
ここからはオリジナルの問題を追加する方法を説明します。

〇問題画像の差し替え

画像11

画像11

用意した画像ファイルをUnityのProjectウィンドウにドラッグ&ドロップして、Unityのプロジェクトに追加します。InspectorウィンドウからTextureTypeをDefaultからSprite(2D and UI)に変更してください。

画像12

TeamMomoSteel>Editor>EditorChangeTextureTypeがインポートされているので、先ほどの操作は、画像右クリック>Change TextureType>Spriteでも同じことができます。こっちならまとめて複数のファイルを変更できるので便利です。

画像9

画像13

画像のサイズは4の倍数(4,8,12,16, ... , 90×4=360, 150×4=600など)でないと「Only textures with width/height being multiple of 4 can be compressed to DXT1 format」と警告が出るので、画像サイズは4の倍数にしておいたほうが無難です。

画像14

HierarchyウィンドウでUdonWorld>RiddleRoom>Riddle1>Canvasを選択して、Inspectorウィンドウから、Image(Script)コンポーネントのSource Imageに先ほどのProjectに追加した画像ファイルをドラッグ&ドロップすると、問題画像を差し替えることができます。

画像23

同様の手順でHierarchyウィンドウでUdonWorld>RiddleRoom>Riddle1>HintPanelの子のTitle(クリック前表示),Hint(クリック後表示)を選択して、Inspectorウィンドウから、Image(Script)コンポーネントのSource Imageを切り替えれば、ヒントを置くことができます。

〇解答の変更

画像16

画像17

解答はInputPanelのAnsewerで設定できます。HierarchyウィンドウでUdonWorld>RiddleRoom>Riddle1>InputPanelを選択して、Inspectorから、Udon Behaviour(Script)コンポーネントにAnswerの項目があります。

〇入力ボタンの変更(テンキー配置)

画像17

初期設定だと入力ボタンには0~9の数字しか配置されていません。HierarchyウィンドウでUdonWorld>RiddleRoom>Riddle1>InputPanelの子のLayoutButtonで入力ボタンの内容を変更できます。Inspectorから、Udon Behaviour(Script)コンポーネントのTextに「,(半角カンマ)」で区切って入力ボタンに配置したい文字を入力してください。

画像18

「1,あ,A,2,い,B,3,う,C,4,え」とTextに設定した場合は上のような順番で配置されます。設定できるボタンは「0~9の数字、あいうえお~のひらがな、A~Z(a~z)のアルファベット」です。

画像19

設定できるボタンと一覧と対応する画像はHierarchyウィンドウでUdonWorld>RiddleRoom>Riddle1>InputPanelの子のSpritesで変更、確認できます。Inspectorから、Udon Behaviour(Script)コンポーネントに画像の一覧が表示されるので好きな画像に変更することもできます。

〇入力ボタンの変更(キーボード配置)

画像20

画像21

テンキー配列だけでなく幅10個分のキーボードっぽい配置も可能です。HierarchyウィンドウでUdonWorld>RiddleRoom>Riddle1>InputPanelの子のLayoutButtonを選択してInspectorから、Udon Behaviour(Script)コンポーネントのTextを初期化(右端の矢印↷ボタンで初期化できます)、TenkeyのチェックをOFFにすると、アルファベットのキーボードっぽくなります。

画像22

「1,2,3,4,5,6,7,8,9,0,あ,い,う,え,お,が,ぎ,ぐ,げ,ご,か,き,く,け,こ,ざ,じ,ず,ぜ,ぞ,さ,し,す,せ,そ,だ,ぢ,づ,で,ど,た,ち,つ,て,と,ば,び,ぶ,べ,ぼ,な,に,ぬ,ね,の,ぱ,ぴ,ぷ,ぺ,ぽ,は,ひ,ふ,へ,ほ,ぁ,ぃ,ぅ,ぇ,ぉ,ま,み,む,め,も,っ,ゃ,ゅ,ょ,ゎ,や,ゐ,ゆ,ゑ,よ,わ,を, ,ん, ,ら,り,る,れ,ろ, , , 」と設定したらこんなかんじ。
※今は「ー」が上手く動かないので使わないほうが良いかもです。

おめでとう! これであなたをオリジナル謎解きワールド製作者です!

問題の追加方法

※執筆中なので説明が雑だよ。

画像24

・RiddleをCtrl+Dで複製。適当な距離(50m)まで離す。

画像25

・TeleportDoorsをCtrl+Dで複製。それぞれのドア(DoorNext/Back)とワープ先(Next/BackDestination)の位置を変更。

画像26

・StartのWarpを複製。対応するDoorNextのShortcutに登録。同じワープ先に飛べるボタンがスタートの部屋に出現するようになります。

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