2019/12/20時点での情報になります。
(追記2019/12/20) packageのインポート順が逆になっていたため修正
(追記2019/12/20) 公式フォーラムへの誘導を追加
(追記2019/12/21) Current Udon Statusの引用を追加
はじめに
VRChat運営チームより、Udonを始めるにあたって以下の投稿を一読することが推奨されております。この記事を読み進める前にリンク先の投稿をお読みください。
Getting Started with Udon
以下、Udonの現在のステータスに関して、上記リンク先の投稿より一部を抜粋した引用文の機械翻訳を貼り付けておきます。
うどんの現状
うどんは現在OPEN ALPHAです。どういう意味ですか?
オープン:基本的にうどんのすべてを自由に共有できます!投稿、ストリーミング、動画の作成などを行います。ただし、うどんを共有する際には、次の2つの点を考慮していただけると嬉しいです
お使いのプラットフォームに該当する場合は、#MadeWithUdonハッシュタグを使用して作業を共有してください!
VRChat Udonの作品を共有する場合は、視聴者/読者にUdonがまだアルファ版であり、まだ完全に機能していないものがあることを通知してください。これは、うどんの最終的な状態ではありません。
誰かがうどんを試したいときは、ファイルを送らないで、このスレッドに送ってください!ファイルを頻繁に更新し、すばやく繰り返します。また、Discordの#open-beta-notificationsチャンネルで、新しいバージョンがプッシュされ、このスレッドが更新されることを発表します。 #open-beta-infoチャンネルの緑色のCommunity Labs反応をクリックして、必ずOpen Betaの役割を選択してください。
アルファ:うどんは機能が完全ではなく、バグがあるため、アルファ状態と見なされます。やるべきことがたくさんあります。特に、Udon Syncはまだ完全には完了していません。つまり、変数と状態の同期はまだ完全には機能していません。これは、同期を必要とするSDKの内容にも影響します。詳細については、以下の既知の問題のセクションをご覧ください。
また、これは、重大な変更が発生した場合にUdon SDKを更新し、Udonを使用したワールドを再アップロードする必要があることを意味します。うどんの世界を「アップグレード」するには、さらに手順が必要になる場合があります。グラフの再構築を余儀なくされるような完全に破壊的な変更を回避しようとしていますが、これが発生しないことを保証することはできません。
最後に、まだ夢のメガプロジェクトを構築しようとしないでください。私たちはまだアルファにいるので、物事が壊れたり、修正されたり、追加されたり、削除されたりする可能性があります。バグの発見、問題点の文書化、ワークフローの確立に焦点を当てたいと思います。あなたが本当に私たちを助けたいのであれば、コア機能をテストしてみて、いくつかの「リミックス可能な」例を構築してみてください。あなたが基本的な世界のクリエーターだった場合、あなたの助けとなるシーンに簡単にコピー&ペーストしたいものは何ですか?そのようなものを構築してみてください。
導入
- UnityHubをインストール (詳細割愛)
- Unity 2018.4.14f1をインストール (詳細割愛)
- Unity 2018.4.14f1で新規プロジェクトを作りVRCSDK3、UDON SDKの順でUnity Packageをインポート
- VRCSDK3、UDON SDKは以下のリンクからDL
Cubeを動かす
sin(time)でCubeをx方向に動かしてみます
-
検索フィールドに
FixedUpdate
と入力してFixedUpdate
ノードを生成 -
Transform.Translate
ノードを生成 -
これでノードは完成です。
Ctrl+S
でシーンを保存してからCtrl+P
でPlayModeに移行するとCubeが動きます。
所感
- Unityのイベント関数やクラスがを使えるのでUnityの知識があれば活かすことができます。
-
使い方がわからないクラスはUnityのマニュアルを読めば使い方が分かるようになると思います。
参考記事
- Getting Started with Udon - Udon - VRChat Udon Discussion Forum
- Getting Started with VRChat Udon - YouTube
備考
- 今まで
Transform
クラスのメソッドにアクセスできなかった反動から、ついTransform.Translate
ノードを使っていますが、位置を直接指定したい場合はTransform.set postition
ノードが使えます。