Programming in VRChat

VRChat でのプログラミングについて調べたことの書き溜め

VRChat SDK ファイル単位 差分 VRCSDK-2018.04.24.07.59

VRChat SDK 差分
バイナリ比較でファイル単位で表示
VRCSDK_new: VRCSDK-2018.04.24.07.59
VRCSDK_old: VRCSDK-2018.02.28.21.21

Differ  VRCSDK_new/Dependencies/OSPNative/scenes/materials/SpatializedObject1.mat
Differ  VRCSDK_new/Dependencies/OSPNative/scenes/materials/SpatializedObject2.mat
Only in VRCSDK_old/Dependencies: SQLite
Differ  VRCSDK_new/Dependencies/VRChat/Editor/AccountEditorWindow.cs
Only in VRCSDK_new/Dependencies/VRChat/Editor: ApiCacheEditor.cs
Differ  VRCSDK_new/Dependencies/VRChat/Editor/DLLMaker.dll
Differ  VRCSDK_new/Dependencies/VRChat/Editor/EnvConfig.cs
Differ  VRCSDK_new/Dependencies/VRChat/Editor/OldTriggerEditors.cs
Differ  VRCSDK_new/Dependencies/VRChat/Editor/SDKUpdater.cs
Differ  VRCSDK_new/Dependencies/VRChat/Editor/VRCContentManagerWindow.cs
Differ  VRCSDK_new/Dependencies/VRChat/Editor/VRCObjectSyncEditor.cs
Only in VRCSDK_new/Dependencies/VRChat/Editor: VRC_AvatarVariationsEditor.cs
Differ  VRCSDK_new/Dependencies/VRChat/Editor/VRC_SdkControlPanel.cs
Differ  VRCSDK_new/Dependencies/VRChat/Editor/VRC_SyncVideoPlayerEditor.cs
Differ  VRCSDK_new/Dependencies/VRChat/Editor/VRC_TriggerEditor.cs
Differ  VRCSDK_new/Dependencies/VRChat/Editor/VRC_WebPanelEditor.cs
Differ  VRCSDK_new/Dependencies/VRChat/Materials/BlueprintCam.mat
Differ  VRCSDK_new/Dependencies/VRChat/Resources/VRCSDKWorld.prefab
Differ  VRCSDK_new/Dependencies/VRChat/Scripts/ApiFileHelper.cs
Differ  VRCSDK_new/Dependencies/VRChat/Scripts/AvatarValidation.cs
Differ  VRCSDK_new/Dependencies/VRChat/Scripts/RuntimeAPICreation.cs
Differ  VRCSDK_new/Dependencies/VRChat/Scripts/RuntimeBlueprintCreation.cs
Differ  VRCSDK_new/Dependencies/VRChat/Scripts/RuntimeWorldCreation.cs
Only in VRCSDK_new/Dependencies/VRChat/Scripts: VRCTriggerPlaymakerAction.cs
Only in VRCSDK_new/Dependencies/VRChat/Scripts: VRC_PlaymakerHelper.cs
Differ  VRCSDK_new/Dependencies/VRChat/VRCCore-Editor.dll
Differ  VRCSDK_new/Dependencies/VRChat/VRCCore-Standalone.dll
Differ  VRCSDK_new/Dependencies/VRChat/VRCSDK2.dll
Only in VRCSDK_old/Examples/Sample Assets/Animation: Rotater.controller
Differ  VRCSDK_new/Examples/Sample Assets/Materials/MirrorReflection.mat
Differ  VRCSDK_new/Examples/Sample Assets/Materials/SlideShowMaterial.mat
Differ  VRCSDK_new/Examples/Sample Assets/Materials/arial22-sdk.mat
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Materials: NavyGrid.mat
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Materials: NavySmooth.mat
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Materials: PinkGrid.mat
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Materials: PinkSmooth.mat
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Materials: YellowGrid.mat
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Materials: YellowSmooth.mat
Differ  VRCSDK_new/Examples/Sample Assets/Prototyping/Materials/prototype_blue_grid.mat
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: BlockPrototype04x04x04.fbx
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: CubePrototype02x02x02.fbx
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: CubePrototype04x04x04.fbx
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: CubePrototype08x08x08.fbx
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: FloorPrototype08x01x08.fbx
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: FloorPrototype64x01x64.fbx
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: HousePrototype16x16x24.fbx
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: JoinInnerPrototype01x06x01.fbx
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: JoinMidPrototype04x06x01.fbx
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: JoinOuterPrototype02x06x02.fbx
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: Materials
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: PickupPrototype01x01x01.fbx
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: PillarPrototype01x02x01.fbx
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: PillarPrototype02x08x02.fbx
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: PlatformPrototype02x01x02.fbx
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: PlatformPrototype04x01x04.fbx
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Models: RampPrototype04x02x02.fbx
Differ  VRCSDK_new/Examples/Sample Assets/Prototyping/Models/prototype_floor_4x1x4.FBX
Differ  VRCSDK_new/Examples/Sample Assets/Prototyping/Models/prototype_pickup.fbx
Differ  VRCSDK_new/Examples/Sample Assets/Prototyping/Models/prototype_platform_8x1x8.FBX
Differ  VRCSDK_new/Examples/Sample Assets/Prototyping/Models/prototype_steps_4x2x2.FBX
Differ  VRCSDK_new/Examples/Sample Assets/Prototyping/Models/prototype_wall_8x8x1.FBX
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Textures: GridEmissive.png
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Textures: SwatchMauveAlbedo.png
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Textures: SwatchNavyAlbedo.png
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Textures: SwatchNavyDarkAlbedo.png
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Textures: SwatchOrangeAlbedo.png
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Textures: SwatchPinkDAlbedo.png
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Textures: SwatchTealAlbedo.png
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Textures: SwatchTurquoiseAlbedo.png
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Textures: SwatchWhiteAlbedo.png
Only in VRCSDK_new/Examples/Sample Assets/Prototyping/Textures: SwatchYellowAlbedo.png
Differ  VRCSDK_new/Examples/Scenes/Example-Actions.unity
Differ  VRCSDK_new/Examples/Scenes/Example-Avatar.unity
Only in VRCSDK_new/Examples/Scenes: Example-Playmaker.unity
Differ  VRCSDK_new/Examples/Scenes/Example-Prefabs.unity
Differ  VRCSDK_new/Examples/Scenes/Example-Triggers.unity
Differ  VRCSDK_new/Examples/Scenes/Example-VideoPlayerSync.unity
Differ  VRCSDK_new/version.txt

生成 one liner:

LANG=C diff -q -r VRCSDK_new/  VRCSDK_old/ | sed -e '/.meta differ$/d' diff.log | sed -e '/.meta$/d' | sed -e 's/ and .* differ//' | sed -e 's/^Files VRCSDK_new/Differ  VRCSDK_new/'

雑な調査・考察

リリースノートに書いていないもの探し:

  • VRC_AvatarVariations
    • マテリアルなどを入れ替えたバリエーションを指定するのか?
  • VRC_WebPanel
  • VRC_SyncVideoPlayer
    • リストがドラッグで入れ替えられるようになった。
    • "VideoSearchRoot" という項目の追加
      • VRCVideoSync prefab での初期値が http://youtube.com になってるけど、つまりどういうこと?
  • VRC_PlaymakerHelper
    • Playmakerで作った定義( PlayMakerFSM )の中に、 VRChat 内で使えないものが無いかの検査をする機能など。
    • 例えばマウス操作など奪われたら困るので、素の Playmaker ならば本来作れるものを制限する必要があるのだと思われる。
    • いつ検査を実行するのかは謎
  • VRCTriggerPlaymakerAction
    • Playmaker 側から VRC のトリガーシステムのカスタムトリガーを駆動するためのもの
    • Playmaker 側環境に取り込んで使うと思われる。
    • FsmStateAction を継承している。
    • 状態遷移してとあるステートに入った時に実行されるものとのこと。
  • VRC_TriggerEditor の差分の主なところ:
    • アクションのメニュー表示順が名前辞書順に
    • AnimationInt の計算シリーズの対応
    • Playmaker 側を呼ぶアクションの追加(配布状態だと無効?)
    • ("ParameterBytes" の所は布石か?意味が読み取れなかった)
  • スクリプト以外
    • モデル、マテリアル、テクスチャが追加。
    • これは Playmaker での作例サンプルに使う奴予定の奴?

Playmaker はつまりとりあえず「動作アクションから相手のトリガー機構を引く」というのが双方向に出来るようになるようだ。 VRChat 側はカスタムトリガーで受ける。 逆は SendRPC のような感じでパラメタで指定した Playmaker 側のイベントを発火できるアクション PlaymakerEvent が追加になる模様。