63
43

More than 3 years have passed since last update.

VRChat Udon (OPEN ALPHA) ことはじめ

Last updated at Posted at 2019-12-20

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をインポート

Cubeを動かす

sin(time)でCubeをx方向に動かしてみます

  • Hierarchy上で右クリックしてCubeを生成
    image.png

  • シーンにCubeを置いてUdon Behaviourをアタッチ
    image.png

  • New Programをクリック
    image.png

  • Cube Udon Graph Program Assetが生成される
    image.png

  • Open Udon Graphをクリック
    image.png

  • Udon Graphウィンドウが開かれる
    image.png

  • Spaceキーを押してノード選択
    image.png

  • 検索フィールドにFixedUpdateと入力してFixedUpdateノードを生成

    • 毎フレーム処理を行うためのノードです image.png
  • Events > FixedUpdateと階層をたどって選択することもできます
    image.png

  • Transform.Translateノードを生成

    • オブジェクトを平行移動させるノードです image.png
  • Fixed UpdateTransform Translateを接続
    image.png

  • Transform Translateの入力を(float, float, float)にします
    image.png

  • Time.get fixedTime(float)を生成
    image.png

  • Mathf.Sin(f)を生成
    image.png

  • Time Get Fixed TimeMathf Sinを繋ぎます
    image.png

  • float.Multiplication(flaot, float)を生成
    image.png

  • Op Multiplicationの一方の入力欄に0.1を入力
    image.png

  • Mathf SinOp Multiplicationのもう一方の入力欄に接続
    image.png

  • Op MultiplicationTransform Translateのxに接続
    image.png

  • これでノードは完成です。Ctrl+Sでシーンを保存してからCtrl+PでPlayModeに移行するとCubeが動きます。
    cube.gif

所感

  • Unityのイベント関数やクラスがを使えるのでUnityの知識があれば活かすことができます。

    • かなりの数のUnityEngineのコンポーネントにアクセスできます。ヤバイ。 image.png
    • 使い方がわからないクラスはUnityのマニュアルを読めば使い方が分かるようになると思います。

参考記事

備考

  • 今までTransformクラスのメソッドにアクセスできなかった反動から、ついTransform.Translateノードを使っていますが、位置を直接指定したい場合はTransform.set postitionノードが使えます。
63
43
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
63
43