A WebSocket/JSON (also MessagePack) based VR-Control (Mo-Cap, Emotion, Lip-Sync, General-Control) communication protocol.
VCP stands for Virtual Communication Protocol or Virtual Control Protocol
Other languages: ja
Complete specs: here (WIP)
Note
In VCP, a word API refers "data container specifications".
The author understands it confusing and will change this keyword to some other word (like Schema). However the word are already used widely so refactoring may take long time.
So, under v1 series, the word API will be used as a "data container specification".
WebSocket based communication.
VCP defines some APIs to communicate. See JSON schema.
All communications are written in JSON/MessagePack formats.
JSON Schema : under /schema
, written in yaml.
Belows are some important APIs.
API | Role |
---|---|
handshake | Tell relay server who you are (Sink, Source, Control) |
headPose | Send head pose captured with some face detection program |
fullBody | Send full body tracking data (or a part of them) |
bust | Send spine, arms, head poses (bust and above poses) |
interact | Send interaction control (grab an object, throw it, etc.) |
controlAPI suite | Exchange general purpose controls (includes interation, recordings, lighting controls, etc.) |
+------------------+------------------------------------------------------------+ | API | Role | +==================+============================================================+ | handshake | Tell relay server who you are (Sink, Source, Control) | +------------------+------------------------------------------------------------+ | headPose | Send head pose captured with some face detection program | +------------------+------------------------------------------------------------+ | fullBody | Send full body tracking data (or a part of them) | +------------------+------------------------------------------------------------+ | bust | Send spine, arms, head poses (bust and above poses) | +------------------+------------------------------------------------------------+ | interact | Send interaction control (grab an object, throw it, etc.) | +------------------+------------------------------------------------------------+ | controlAPI suite | Exchange general purpose controls | | | (includes interation, recordings, lighting controls, etc.) | +------------------+------------------------------------------------------------+
VCP also supports MessagePack.
Reference C# VCP implementation supports direct MessagePack communications, which means you can send MessagePack binaries without some JSON handshakes in advance. (The implementation checks every arrived message whether it is text or binary, then convert it in a C# native structure.)
Direct communication is an optional feature and is not required for your implementations.
VCP C# Reference Implementation and VCP Protocol Specification is licensed under MIT License.
See LICENSE