How to use SDK
Supported Unity Version
6000.0.xx
Render Pipeline Compatibility
Built-in Render PipelineUniversal Render Pipeline (URP)
Project Setup
- Open
Assets -> ProjectP SDK Settings. - Choose one of the build options:
Build and SaveBuild and Run(requires a valid client executable path)
Notes
- Character and model uploads can also be done directly from the client runtime without using the SDK.
- Supported source formats for models are
.vrm,.fbx, and.glTF. - If a script fails during upload or runtime compilation, check
content/log/script_log.txtin the client. - For the current AI VTuber / YouTube broadcast flow, see AI VTuber Broadcast.
Character Creation
- Add
CharacterDesc.csto the character root object. - Configure the avatar as needed.
- Right click the prefab and choose
Build Character. - Upload the built files from the client with
Menu -> Upload.
World Creation
- Add
WorldDesc.csto the scene. - Save the scene.
- Right click the scene asset and choose
Build World. - Upload the built world files from the client with
Menu -> Upload. - Enable the uploaded world in
P-Linker.
Item Creation
- Add
ItemDesc.csto the item root object. - Configure the basic item fields:
IsLocalAllow DropAttach PointPosition / RotationCustom GUIwhen needed
- Right click the prefab and choose
Build Item. - Upload the built item from the client with
Menu -> Upload.
Character Motion Packs
Use a motion pack when you want an NPC or humanoid object to reuse animation clips.
- Create an SDK item prefab and add
ItemDesc.cs. - Add
AnimationSet. - Add
NpcMotionProfileonly when you need custom word-to-motion mapping. - Build the item and upload it from the client.
- In
P-Linker, attach the uploaded item to the target object as an object plugin item. - Drive playback from
CharacterMotionController.
Notes:
- NPCs should play motions from their custom plugin controller.
- Non-NPC targets should add
CharacterMotionControllermanually. - Motion packs are for Unity humanoid clips.
Synchronization
- Attach
SyncObject.csto any object that should be synchronized across users.