接入流程
流程A:接入SDK多人同步
接入说明:
玩家多人同步在LBEVR中非常关键,跟角色动作、手势交互、大空间路径、多应用桥接等都存在一定耦合性;因此即使【多人同步】并非接入分发平台的必选项,在内容中无定制多人玩法的情况下,我们仍强烈推荐使用YOMOV Multiplayer Sync 能力,这是由数十款LBEVR及上百个场馆长期验证过的稳定能力,能够最大程度确保多人稳定性,以及极大减少接入中的调试工作量
在以下的接入流程中,会按照接入YOMOV多人同步能力的方式进行阐述;如需使用内容中自己的多人同步能力,具体操作详见:流程B:仅接入LBE分发核心能力
接入流程演示视频:
步骤一:初始化设置
SDK初始化过程主要涉及底层插件加载、配置读取、播控接入、放映鉴权、大空间路径加载等LBE分发核心能力,是接入大空间分发的基础
-
在菜单栏YOMOVSDK -> Setting中,勾选Multiplayer Sync选项
-
添加YOMOV初始化组件
- 打开VR应用的初始化场景,在YOMOV SDK菜单中,点击【Create YOMOVInitial】按钮
在初始化场景中添加YOMOVInitial组件
添加YOMOVInitial组件
-
关联绑定XROrigin功能
-
打开创建好的YOMOVInitial预制体变体,将应用中自带的XR Origin物体拖拽到YOMOVInitial -> VRRig下,这里建议使用XRI中的手势交互变体
XR Origin设置在VRRig节点下
-
在YOMOVInitial中选中VRRig物体,在AddLBEInterator组件上点击【Add LBE Interactor】按钮,在XROrigin中一键添加大空间路径交互相关组件
Add LBE Interactor操作入口
添加完成后效果
-
在YOMOVInitial中选中MultiplayerServerConnect物体,在BindXROriginData组件上点击【Bind XROrigin Data】按钮,将XROrigin中位姿与手势数据跟多人同步组件进行绑定关联
Bind XROrigin Data操作入口
绑定完成后效果
-
【YOMOVInitial】组件说明:
GameObjects | Components | 添加方式 | ||||
|---|---|---|---|---|---|---|
YOMOVInitial
|
| 自动添加 | ||||
MultiplayerServerConnect
|
| 自动添加 | ||||
LBETestTool
|
| 自动添加 | ||||
MenuList | 自动添加 | |||||
HandMenuWristButton |
| 自动添加 | ||||
SceneSelectManager |
| 自动添加 | ||||
TimelineSpeedManager |
| 自动添加 | ||||
VRRig |
| 自动添加 | ||||
XRInteractionManager |
| 手动一键添加 | ||||
EventSystem |
| 手动一键添加 | ||||
XROrigin | 自主创建 | |||||
MainCamera | ||||||
HeadTarget |
| 手动一键添加 | ||||
Collider |
| 手动一键添加 | ||||
EyeBlink |
| 手动一键添加 | ||||
Left Controller | ||||||
LeftHandTarget |
| 手动一键添加 | ||||
Right Controller | ||||||
RightHandTarget |
| 手动一键添加 | ||||
步骤二:创建大空间路径
大空间路径设置与管理,是LBEVR SDK中最核心的步骤,需要基于内容体验对路径单元进行合理拆分,并设置其触发切换的逻辑及顺序,是SDK接入的核心开发及调试工作 大空间路径划分设置最佳实践详见:大空间路径设置最佳实践
创建ActBuilder
-
点击顶部YOMOV SDK菜单栏,点击Creat ActBuilder选项,在场景中创建ActBuilder组件
- ActBuilder中包含二级子物体:Act和Plot,这两个物体后续将用于创建大空间路径
创建ActBuilder入口
创建的ActBuilder及子物体
设置Plot参数
Plot是大空间路径系统中的【内容单元】,是决定玩家当前能体验到的内容范围(超出范围则进入虚空环境);多个Plot内容单元将组成Act路径单元。概念解释详见:Plot内容单元说明
-
设置Plot类型
-
选中Plot物体中【Plot Boundary】组件,找到Plot Type设置
-
若当前内容是通过玩家行走的方式进行体验,则Plot Type选择Walking
-
若当前内容是通过乘坐载具移动的方式进行体验,则Plot Type选择Vehicle
-
在Related Vehicle中,关联对应载具物体;关联后运行内容,Plot边界会随着载具而移动,并在大空间坐标中保持不变
内容单元类别:行走体验
内容单元类别:载具体验
-
-
-
绘制Plot范围
-
点击【Draw Boundary】按钮,进入绘制边界的编辑状态
-
将鼠标在场景关卡中依次点击进行绘制,最后将结束点与开始点收尾相接形成封闭图形,即完成绘制;通过mesh平面检测找到绘制顶点,并以首个顶点高度依次绘制后续点,确保生成平面多边形
-
注:若无法看到Plot边界,请检查右上角Gizmos显示是否有打开
绘制Plot边界操作流程
-
-
点击【Quit Drawing】按钮,或者按两下Esc键,即可退出编辑状态
-
点击【Edit Drawing】按钮,将进入编辑状态,可对Plot范围进行二次编辑
-
鼠标靠近顶点回显坐标轴,长按拖拉移动进行调整
-
鼠标靠近边界回显添加顶点按钮,点击后在多边形中添加顶点,且支持移动修改
-
注:删除顶点需在面板中点击删除按钮,若点击Esc会删除整个组件
编辑边界
删除顶点
-
-
-
设置玩家体验指引(可选)
该功能用来告诉并指引玩家,当前需要走到哪个位置进行体验内容,尤其是在单元切换的时候 一般建议不使用该功能,而是通过角色表演或内容原生的交互设计去进行引导提示,告诉玩家当前需要走到哪里,尤其是在单元切换的时候
-
使用流程跟Plot边界绘制类似,点击【Draw Boundary】按钮进入编辑态,在场景中绘制多边形顶点,并最后收尾形成闭环,完成绘制;最后点击【Quit Drawing】完成绘制
- 注:内容体验指引需要绘制在Plot范围内,否则会报错提示
-
在Display Timing中,设置引导范围出现的时间,这个时间是以Plot单元开始回显时进行统计的
-
-
创建多个Plot单元
-
允许在1个Act中设置多个Plot。在Act Unit组件中,点击【Create Plot】按钮进行创建,每个Plot的范围及设置操作同上
-
注:当一个Act中设置多个Plot时,需确保多个Plot平面高度保持一致,否则会进行报错提示
-
-
多个Plot位置衔接
-
单个Act中的多个Plot在物理空间体验上是连续,因此Plot位置在设置时必须相互交叠,才能保证体验不被打断;如果2个Plot之间未两两叠加,系统会进行报错提示
正确示例:Plot彼此交叠
错误示例:Plot不产生交叠
-
-
多个Plot绘制最佳实践详见:多个Plot划分原则及说明
-
设置Act参数
Act边界是多个Plot边界的总和,是基于Plot范围生成的,自己本身不支持修改范围; Act路径单元是LBEVR路径分发适配的最小单元,Plot内容单元是内容体验(虚空边界)的最小范围 概念解释详见:Act路径单元说明
-
自动生成Act范围
-
绘制完成Plot后,会基于该Act下所有Plot并集范围自动生成Act范围(下图绿色边界)
-
提示:Act路径单元任意边长尺寸超过7*10m,会警告提示尺寸过大不利于线下分发,但SDK不会在绘制过程中进行拦截
10*7范围内
长宽(任一)超过10*7范围
-
-
设置路径单元核心参数
📌后续在LBEVR分发过程中,需要将一系列离散的路径单元(Act),通过首尾相连的方式组合成可连续体验的路径,适配不同的场馆地图;因此需要在Act中设置进入区(Entrance Area)、退出区(LeavingArea),用于给到高坪效算法作为路径连接计算输入,概念说明详见:大空间核心概念
同时,在一些难以避免超出场地边界的情况下,我们希望能确保玩家的核心体验路径不会被阻塞,而一些探索区域可以被舍弃掉;因此需要设置核心体验区(CoreArea),作为更高权重的Act边界等级输入给到算法
-
设置核心体验区范围
-
绘制完成Plot后,会基于Act在CoreArea Boundary字段下,点击【Create Boundary】按钮,可基于Act边界自动向内缩2m,生成默认核心区边界范围;
生成核心区边界
自动生成的核心区边界
-
如果自动生成的核心区边界,跟玩家在VR中的核心体验路径不符合,支持进行二次编辑;操作逻辑跟Plot边界操作方式一致:即点击【Edit Boundary】按钮进入编辑态,支持调整、添加及删除顶点位置
-
-
设置进入区范围
-
在 EntranceArea Boundary 字段下,点击【Draw Boundary】按钮,进行绘制
-
操作方法:点击【Edit Boundary】按钮进入编辑态,鼠标在场景关卡中依次点击进行绘制,最后将结束点与开始点收尾相接形成封闭图形,即完成绘制
绘制按钮
进入区范围效果
-
-
设置退出区范围
-
在LeavingArea Boundary字段下,击【Draw Boundary】按钮,进行绘制
-
操作方法:点击【Edit Boundary】按钮进入编辑态,鼠标点击后将生成一个半径为2m的圆形,作为退出区范围,点击【Quit Editing】按钮退出编辑进行保存
-
修改方法:进入编辑态后,移动圆心位置(圆形半径默认保持不变)
绘制按钮
-
-
-
添加转场效果
-
设置Act单元的转场效果,下拉可选择3种方式:
-
无转场效果
-
黑场转场+持续时间:在Act切换时候执行黑场渐入渐出的转场效果(推荐)
-
白场转场+持续时间:在Act切换时候执行2s白场渐入渐出的转场效果
-
-
设置转场时间:默认为2s,支持进行修改;若选择无转场效果,则不生效
转场效果
持续时间
-
-
创建多个Act单元
-
允许1个场景中可支持创建多个Act单元。操作方式:选中ActBuilder组件,点击【Create Act】按钮,即可创建Act组件(目录下自带Plot组件)
-
多个Act绘制建议
开发建议:在单个场景中设置多个Act,运行时Act单元基于地图进行适配,玩家体验时会有原地旋转或者平移的感觉;因此这里建议需要配合上转场效果整体设计,让玩家体验更加顺畅
- 最佳实践方式详见:超大关卡划分多个Act单元原则
-
设置路径切换
建议完成所有场景关卡的路径范围设置后,再来设置其切换逻辑与顺序,会大幅提升开发效率 路径切换需跟内容逻辑的切换进行紧密关联,并随内容逻辑一起生效
-
调用路径切换方法
-
内容中已设置完成切换逻辑。以下将以TimelineSignal组件关联组件的方式为例进行讲解
-
通过Add Component入口,在场景中添加【Plot Switch】组件
-
将带有【Plot Switch】的组件关联到SignalReceiver中,并选择【LoadNextPlot】方法
-
Act路径单元切换是通过Plot切换来进行实现的,即Act中最后的Plot进行切换,则默认切换到下个Act
调用【Plot Switch】方法实现路径切换
-
-
-
设置路径切换顺序
📌注意:
应用最后实际运行时的逻辑顺序,基于【BuildSetting场景顺序】+【Hierarchy Act&Plot】顺序,通过管理面板中【Update Act Sequence】按钮,创建出的路径播放顺序列表
-
在场景中,按照内容运行逻辑,从上到下设置Act及Plot组件顺序;将设置好路径组件的场景添加到Build Setting面板,同样按运行顺序从上到下设置
Build Setting-将场景按实际运行顺序从上到下设置
场景内-将Act&Plot按运行顺序从上到下设置
-
在YOMOV SDK菜单栏 -> Setting -> LBEPath面板中,点击【Update Act Sequence】按钮,将所有Act&Plot序列数据按上述规则更新到Act Units Panel中,并作为内容真实的运行顺序
-
注:后续场景中Act&Plot组件增减或修改顺序,务必要在该面板中手动点击更新
更新路径放映顺序
-
-
Act及Plot中缺少设置或参数异常,会在管理面板中进行报错提示,需依照反馈进行解决
路径配置报错提示
-
配置交互效果
应用中会默认读取YOMOV大空间路径的标准交互效果,可通过配置文件进行快速替换,实现内容的定制化效果
-
(可选)在YOMOV SDK菜单栏 -> Setting -> Act Setting ->Act Runtime Effect中,更改配置文件
路径交互效果-配置面板
-
支持配置类型
配置名称 | 中文名称 | 素材类型 | 效果示意 |
|---|---|---|---|
Map Boundary | 地图边界效果 | 贴图 | ![]() |
Plot Boundary | 内容边界效果 | 贴图 | ![]() |
Shown On Approach | 靠近后回显 | 打开/关闭 |
打开-靠近回显30%透明度内容边界
关闭-靠近不回显内容边界提示 |
Plot Return Guide Arrow | 返回内容指引箭头 | 贴图 | ![]() |
Plot Return Guide Statue | 返回内容中心特效 | shader | ![]() |
Void Space Skyball | 虚空层天空球 | 天空球 | ![]() |
Void Space Ground | 虚空层地面效果 | 贴图 | ![]() |
Ending Credits | 片尾谢幕 | 文字 | ![]() |
运行调试
完成以上设置后,可在编辑器进行运行调试。
-
任意场景开始运行
-
打开需要调试的场景,点击菜单栏中【Play】按钮,开始以大空间模式运行内容
-
注意:
-
因为需提前加载初始化中LBEPath相关能力,因此不能直接点击Unity引擎中的放映按钮,需点击【Play】按钮
-
放映前需要在YOMOV SDK -> Setting -> LBEPath中,点击【Update Act Sequence】按钮,生成真实读取的放映序列
-
-
-
从初始化场景开始运行
-
打开初始化场景,点击Unity运行按钮
-
注意:
-
测试时务必在YOMOVSDK -> Builder中,在Packaging Type中选择Test类型,MultiPlayer Mode中选择为SinglePlayer类型,才能以单人模式启播(否则要连接服务器)
-
这里需要点击Unity的运行按钮,而不是【Play】按钮,原因是初始化场景已经自带了LBEPath的初始化能力
-
-
步骤三:玩家角色配置
玩家角色配置是用于实现多人体验中玩家形象、组别、显隐、位置与动作表现的相关能力 玩家角色模型涉及到跟IK动作、手势交互、多人同步等多个维度进行关联耦合,是确保玩家顺利体验LBEVR的核心特性,但同时又是LBEVR接入及调试最耗时的工作,强烈建议按照文档要求规范仔细执行,将大幅缩减后续的调试成本
[图片暂不可用]
同队玩家角色
同队玩家定义:在线下LBEVR体验时,通过组队功能在一个队伍中启播放映的玩家
- 同队玩家放映时,支持玩家选择不同的角色形象读取,玩家形象全地图显示
非同队玩家定义:在线下LBEVR体验时,不在同批次队伍启播放映的玩家
- 非同队玩家(包含相同内容及不同内容)仅回显默认相同的角色形象,仅在靠近玩家5m内进行显示
-
在YOMOV SDK -> Setting -> Avatar -> Team Player Avatar中,点击添加按钮,创建生成同队伍玩家角色Prefab变体,并自动完成配置关联
角色管理面板-添加角色
-
Prefab中还需绑定模型资产,按如下流程进行操作:
-
打开同队玩家Prefab预制体,将内容中角色模型(已绑定标准Humanoid骨骼)拖拽到Prefab中
-
选中父节点物体【TeamPlayer】,找到【Custom Avatar Manager】组件,将刚才添加进来的玩家角色模型,进行关联绑定
关联角色模型
-
点击【Bind Avatar IK】按钮,一键完成对角色IK进行绑定
一键绑定IK
IK绑定完成
-
-
创建多个同队玩家角色形象
在部分LBEVR内容体验中,每个玩家能够选择不同的角色去体验VR内容,这时候可以添加配置多个玩家形象,放映时通过启播参数中玩家选择角色配置名称,动态生成角色模型
-
在YOMOV SDK菜单栏 -> Setting -> Avatar -> Team Player Avatar,多次点击添加角色按钮,创建并关联多个角色预制体;后续替换模型流程同上
-
注:创建多个玩家角色需确保角色预制体的名称不同(系统创建时会自动进行区分),否则后续选角色无法进行准确对应
角色管理面板-创建多个同队玩家角色
-
-
非同组玩家角色
-
在YOMOVLBE SDK菜单栏 -> Setting -> Avatar -> NonTeam Player Avatar,点击添加按钮,生成非同队伍玩家角色Prefab模型,并自动完成配置
创建非同队玩家角色
-
Prefab中绑定模型资产步骤同上
- 注:非同队玩家仅支持创建1个角色
步骤四:服务端设置
内容服务端主要包含2个功能:玩家多人同步,桥接服务通信(实现多内容混播&转发播控指令)
-
在YOMOVLBE SDK菜单栏中点击【Create YOMOVLBEServer】组件,创建YOMOVLBEServer预制体变体,该物体中组件将包含多人服务及桥接通信能力
YOMOVLBEServer Prefab变体
流程B:不接入SDK多人同步
接入说明:
- 接入YOMOV LBEVR分发平台的必选功能:播控系统通信、放映鉴权、大空间路径、多应用桥接通信
适用场景:
VR应用中有开发特定的多人同步玩法
开发团队具有较好的技术实现及调试能力
一、初始化设置
SDK初始化过程包括:底层插件加载、系统配置读取、播控系统接入、应用放映鉴权、大空间路径加载等LBE分发核心能力,是接入大空间分发的基础
-
在菜单栏YOMOVSDK -> Setting中,关闭Multiplayer Sync选项
-
默认会勾选开启,关闭后则默认不使用YOMOV的多人同步功能
-
-
添加YOMOV初始化组件
-
打开VR应用的初始化场景,在YOMOV SDK菜单中,点击【Create YOMOVInitial】按钮
在初始化场景中添加YOMOVInitial组件
添加YOMOVInitial组件
-
-
关联绑定XROrigin功能
-
打开创建好的YOMOVInitial预制体变体,将应用中自带的XR Origin物体拖拽到YOMOVInitial -> VRRig下,这里建议使用XRI中的手势交互变体
XR Origin设置在VRRig节点下
-
在YOMOVInitial中选中VRRig物体,在AddLBEInterator组件上点击【Add LBE Interactor】按钮,在XROrigin中一键添加大空间路径交互相关组件
Add LBE Interactor操作入口
添加完成后效果
-
在YOMOVInitial中选中MultiplayerServerConnect物体,在BindXROriginData组件上点击【Bind XROrigin Data】按钮,将XROrigin中位姿与手势数据跟多人同步组件进行绑定关联
Bind XROrigin Data操作入口
绑定完成后效果
-
【YOMOVInitial】组件描述:
GameObjects | Components | 添加方式 | ||||
|---|---|---|---|---|---|---|
YOMOVInitial
|
| 自动添加 | ||||
MultiplayerServerConnect
|
| 自动添加 | ||||
LBETestTool
|
| 自动添加 | ||||
MenuList | 自动添加 | |||||
HandMenuWristButton |
| 自动添加 | ||||
SceneSelectManager |
| 自动添加 | ||||
TimelineSpeedManager |
| 自动添加 | ||||
VRRig |
| 自动添加 | ||||
XRInteractionManager |
| 手动一键添加 | ||||
EventSystem |
| 手动一键添加 | ||||
XROrigin | 自主创建 | |||||
MainCamera | ||||||
HeadTarget |
| 手动一键添加 | ||||
Collider |
| 手动一键添加 | ||||
EyeBlink |
| 手动一键添加 | ||||
Left Controller | ||||||
LeftHandTarget |
| 手动一键添加 | ||||
Right Controller | ||||||
RightHandTarget |
| 手动一键添加 | ||||
二、创建大空间路径
详见:创建大空间路径
三、服务端设置
内容服务端主要包含2个功能:玩家多人同步,桥接系统通信(多内容混播&实现播控指令);这里仅需要接入多应用桥接通信
-
如果应用采用其他类型的多人服务插件,可在YOMOVCore -> Sample中,找到BridgeClient文件,即内容服务器与桥接服务器通信代码示例,基于该示例自主修改完成内容服务器与桥接服务器通信相关代码
- 通信代码示例:详见SDK内代码






