跳到主要内容

接入流程

流程A:接入SDK多人同步

📌

接入说明:

玩家多人同步在LBEVR中非常关键,跟角色动作、手势交互、大空间路径、多应用桥接等都存在一定耦合性;因此即使【多人同步】并非接入分发平台的必选项,在内容中无定制多人玩法的情况下,我们仍强烈推荐使用YOMOV Multiplayer Sync 能力,这是由数十款LBEVR及上百个场馆长期验证过的稳定能力,能够最大程度确保多人稳定性,以及极大减少接入中的调试工作量

在以下的接入流程中,会按照接入YOMOV多人同步能力的方式进行阐述;如需使用内容中自己的多人同步能力,具体操作详见:流程B:仅接入LBE分发核心能力

接入流程演示视频:

步骤一:初始化设置

SDK初始化过程主要涉及底层插件加载、配置读取、播控接入、放映鉴权、大空间路径加载等LBE分发核心能力,是接入大空间分发的基础

  1. 在菜单栏YOMOVSDK -> Setting中,勾选Multiplayer Sync选项

  2. 添加YOMOV初始化组件

    1. 打开VR应用的初始化场景,在YOMOV SDK菜单中,点击【Create YOMOVInitial】按钮
    在初始化场景中添加YOMOVInitial组件

    在初始化场景中添加YOMOVInitial组件

    添加YOMOVInitial组件

    添加YOMOVInitial组件

  3. 关联绑定XROrigin功能

    1. 打开创建好的YOMOVInitial预制体变体,将应用中自带的XR Origin物体拖拽到YOMOVInitial -> VRRig下,这里建议使用XRI中的手势交互变体

      XR Origin设置在VRRig节点下

      XR Origin设置在VRRig节点下

    2. 在YOMOVInitial中选中VRRig物体,在AddLBEInterator组件上点击【Add LBE Interactor】按钮,在XROrigin中一键添加大空间路径交互相关组件

      Add LBE Interactor操作入口

      Add LBE Interactor操作入口

      添加完成后效果

      添加完成后效果

    3. 在YOMOVInitial中选中MultiplayerServerConnect物体,在BindXROriginData组件上点击【Bind XROrigin Data】按钮,将XROrigin中位姿与手势数据跟多人同步组件进行绑定关联

      Bind XROrigin Data操作入口

      Bind XROrigin Data操作入口

      绑定完成后效果

      绑定完成后效果

【YOMOVInitial】组件说明:

GameObjects

Components

添加方式

YOMOVInitial

插件&配置读取、放映鉴权、运营系统通信

  • XRSDK Init:初始化读OpenXR、XRI等底层插件库

  • Core Config Manager:数据配置管理

  • XR Component Manager:一键添加并绑定VRRig中组件

    • 绑定按钮:Bind XROrigin Data
  • Yomov Client Manager:事件接收管理

  • Void Boundary:创建虚空空间

  • Yomov Act Manager:路径服务通信建联及数据读取

自动添加

MultiplayerServerConnect

多人服务器建联及数据同步

  • Single Avatar:发送玩家位姿数据给服务器

  • Hand Tracking Data Source:发送手势数据给服务器

  • Bind XROrigin Data:一键绑定XROrigin位姿及手势数据

自动添加

LBETestTool

测试工具

  • Test Tool Manager:测试工具管理器

自动添加

MenuList

自动添加

HandMenuWristButton

  • Hand Menu:手部菜单

自动添加

SceneSelectManager

  • Scene Select Manager:选择切换场景面板

  • Hand Menu Track:绑定手柄位置

自动添加

TimelineSpeedManager

  • Timeline Speed Manager:放映速度管理面板

  • Hand Menu Track:绑定手柄位置

自动添加

VRRig

  • AddLBEInterator:添加大空间交互相关组件

自动添加

XRInteractionManager

  • XR Interaction Manager

手动一键添加

EventSystem

  • Event System

  • XR UI Input Module:手柄数据输入映射管理

手动一键添加

XROrigin

自主创建

MainCamera

HeadTarget

  • VR Boundary Target :玩家或手部靠近边界后回显

手动一键添加

Collider

  • Rigidbody

  • SphereCollider

手动一键添加

EyeBlink

  • Animator

  • Player Blink Controller:切换Act章节自动播控黑场转场特效

手动一键添加

Left Controller

LeftHandTarget

  • VR Boundary Target:玩家或手部靠近边界后回显

手动一键添加

Right Controller

RightHandTarget

  • VR Boundary Target:玩家或手部靠近边界后回显

手动一键添加

步骤二:创建大空间路径

大空间路径设置与管理,是LBEVR SDK中最核心的步骤,需要基于内容体验对路径单元进行合理拆分,并设置其触发切换的逻辑及顺序,是SDK接入的核心开发及调试工作 大空间路径划分设置最佳实践详见:大空间路径设置最佳实践

创建ActBuilder

  1. 点击顶部YOMOV SDK菜单栏,点击Creat ActBuilder选项,在场景中创建ActBuilder组件

    1. ActBuilder中包含二级子物体:Act和Plot,这两个物体后续将用于创建大空间路径
    创建ActBuilder入口

    创建ActBuilder入口

    创建的ActBuilder及子物体

    创建的ActBuilder及子物体

设置Plot参数

Plot是大空间路径系统中的【内容单元】,是决定玩家当前能体验到的内容范围(超出范围则进入虚空环境);多个Plot内容单元将组成Act路径单元。概念解释详见:Plot内容单元说明

  1. 设置Plot类型

    1. 选中Plot物体中【Plot Boundary】组件,找到Plot Type设置

    2. 若当前内容是通过玩家行走的方式进行体验,则Plot Type选择Walking

    3. 若当前内容是通过乘坐载具移动的方式进行体验,则Plot Type选择Vehicle

      1. 在Related Vehicle中,关联对应载具物体;关联后运行内容,Plot边界会随着载具而移动,并在大空间坐标中保持不变

        内容单元类别:行走体验

        内容单元类别:行走体验

        内容单元类别:载具体验

        内容单元类别:载具体验

  2. 绘制Plot范围

    1. 点击【Draw Boundary】按钮,进入绘制边界的编辑状态

    2. 将鼠标在场景关卡中依次点击进行绘制,最后将结束点与开始点收尾相接形成封闭图形,即完成绘制;通过mesh平面检测找到绘制顶点,并以首个顶点高度依次绘制后续点,确保生成平面多边形

      1. 注:若无法看到Plot边界,请检查右上角Gizmos显示是否有打开

                                                      绘制Plot边界操作流程
    3. 点击【Quit Drawing】按钮,或者按两下Esc键,即可退出编辑状态

    4. 点击【Edit Drawing】按钮,将进入编辑状态,可对Plot范围进行二次编辑

      1. 鼠标靠近顶点回显坐标轴,长按拖拉移动进行调整

      2. 鼠标靠近边界回显添加顶点按钮,点击后在多边形中添加顶点,且支持移动修改

      3. 注:删除顶点需在面板中点击删除按钮,若点击Esc会删除整个组件

      编辑边界

      编辑边界

      删除顶点

      删除顶点

  3. 设置玩家体验指引(可选)

    该功能用来告诉并指引玩家,当前需要走到哪个位置进行体验内容,尤其是在单元切换的时候 一般建议不使用该功能,而是通过角色表演或内容原生的交互设计去进行引导提示,告诉玩家当前需要走到哪里,尤其是在单元切换的时候

    • 使用流程跟Plot边界绘制类似,点击【Draw Boundary】按钮进入编辑态,在场景中绘制多边形顶点,并最后收尾形成闭环,完成绘制;最后点击【Quit Drawing】完成绘制

      • 注:内容体验指引需要绘制在Plot范围内,否则会报错提示
    • 在Display Timing中,设置引导范围出现的时间,这个时间是以Plot单元开始回显时进行统计的

  4. 创建多个Plot单元

    1. 允许在1个Act中设置多个Plot。在Act Unit组件中,点击【Create Plot】按钮进行创建,每个Plot的范围及设置操作同上

      1. 注:当一个Act中设置多个Plot时,需确保多个Plot平面高度保持一致,否则会进行报错提示

    2. 多个Plot位置衔接

      1. 单个Act中的多个Plot在物理空间体验上是连续,因此Plot位置在设置时必须相互交叠,才能保证体验不被打断;如果2个Plot之间未两两叠加,系统会进行报错提示

        正确示例:Plot彼此交叠

        正确示例:Plot彼此交叠

        错误示例:Plot不产生交叠

        错误示例:Plot不产生交叠

    3. 多个Plot绘制最佳实践详见多个Plot划分原则及说明

设置Act参数

Act边界是多个Plot边界的总和,是基于Plot范围生成的,自己本身不支持修改范围; Act路径单元是LBEVR路径分发适配的最小单元,Plot内容单元是内容体验(虚空边界)的最小范围 概念解释详见:Act路径单元说明

  1. 自动生成Act范围

    1. 绘制完成Plot后,会基于该Act下所有Plot并集范围自动生成Act范围(下图绿色边界)

    2. 提示:Act路径单元任意边长尺寸超过7*10m,会警告提示尺寸过大不利于线下分发,但SDK不会在绘制过程中进行拦截

      10*7范围内

      10*7范围内

      长宽(任一)超过10*7范围

      长宽(任一)超过10*7范围

  2. 设置路径单元核心参数

    📌

    后续在LBEVR分发过程中,需要将一系列离散的路径单元(Act),通过首尾相连的方式组合成可连续体验的路径,适配不同的场馆地图;因此需要在Act中设置进入区(Entrance Area)退出区(LeavingArea),用于给到高坪效算法作为路径连接计算输入,概念说明详见:大空间核心概念

    同时,在一些难以避免超出场地边界的情况下,我们希望能确保玩家的核心体验路径不会被阻塞,而一些探索区域可以被舍弃掉;因此需要设置核心体验区(CoreArea),作为更高权重的Act边界等级输入给到算法

    1. 设置核心体验区范围

      1. 绘制完成Plot后,会基于Act在CoreArea Boundary字段下,点击【Create Boundary】按钮,可基于Act边界自动向内缩2m,生成默认核心区边界范围;

        生成核心区边界

        生成核心区边界

        自动生成的核心区边界

        自动生成的核心区边界

      2. 如果自动生成的核心区边界,跟玩家在VR中的核心体验路径不符合,支持进行二次编辑;操作逻辑跟Plot边界操作方式一致:即点击【Edit Boundary】按钮进入编辑态,支持调整、添加及删除顶点位置

    2. 设置进入区范围

      1. 在 EntranceArea Boundary 字段下,点击【Draw Boundary】按钮,进行绘制

      2. 操作方法:点击【Edit Boundary】按钮进入编辑态,鼠标在场景关卡中依次点击进行绘制,最后将结束点与开始点收尾相接形成封闭图形,即完成绘制

        绘制按钮

        绘制按钮

      进入区范围效果

      进入区范围效果

    3. 设置退出区范围

      1. 在LeavingArea Boundary字段下,击【Draw Boundary】按钮,进行绘制

      2. 操作方法:点击【Edit Boundary】按钮进入编辑态,鼠标点击后将生成一个半径为2m的圆形,作为退出区范围,点击【Quit Editing】按钮退出编辑进行保存

      3. 修改方法:进入编辑态后,移动圆心位置(圆形半径默认保持不变)

        绘制按钮

        绘制按钮

  3. 添加转场效果

    1. 设置Act单元的转场效果,下拉可选择3种方式:

      1. 无转场效果

      2. 黑场转场+持续时间:在Act切换时候执行黑场渐入渐出的转场效果(推荐)

      3. 白场转场+持续时间:在Act切换时候执行2s白场渐入渐出的转场效果

    2. 设置转场时间:默认为2s,支持进行修改;若选择无转场效果,则不生效

      转场效果

      转场效果

      持续时间

      持续时间

  4. 创建多个Act单元

    1. 允许1个场景中可支持创建多个Act单元。操作方式:选中ActBuilder组件,点击【Create Act】按钮,即可创建Act组件(目录下自带Plot组件)

    2. 多个Act绘制建议

      开发建议:在单个场景中设置多个Act,运行时Act单元基于地图进行适配,玩家体验时会有原地旋转或者平移的感觉;因此这里建议需要配合上转场效果整体设计,让玩家体验更加顺畅

      1. 最佳实践方式详见:超大关卡划分多个Act单元原则

设置路径切换

建议完成所有场景关卡的路径范围设置后,再来设置其切换逻辑与顺序,会大幅提升开发效率 路径切换需跟内容逻辑的切换进行紧密关联,并随内容逻辑一起生效

  1. 调用路径切换方法

    1. 内容中已设置完成切换逻辑。以下将以TimelineSignal组件关联组件的方式为例进行讲解

    2. 通过Add Component入口,在场景中添加【Plot Switch】组件

    3. 将带有【Plot Switch】的组件关联到SignalReceiver中,并选择【LoadNextPlot】方法

      1. Act路径单元切换是通过Plot切换来进行实现的,即Act中最后的Plot进行切换,则默认切换到下个Act

                                              调用【Plot Switch】方法实现路径切换
  2. 设置路径切换顺序

    📌

    注意:

    应用最后实际运行时的逻辑顺序,基于【BuildSetting场景顺序】+【Hierarchy Act&Plot】顺序,通过管理面板中【Update Act Sequence】按钮,创建出的路径播放顺序列表

    1. 在场景中,按照内容运行逻辑,从上到下设置Act及Plot组件顺序;将设置好路径组件的场景添加到Build Setting面板,同样按运行顺序从上到下设置

      Build Setting-将场景按实际运行顺序从上到下设置

      Build Setting-将场景按实际运行顺序从上到下设置

      场景内-将Act&Plot按运行顺序从上到下设置

      场景内-将Act&Plot按运行顺序从上到下设置

    2. 在YOMOV SDK菜单栏 -> Setting -> LBEPath面板中,点击【Update Act Sequence】按钮,将所有Act&Plot序列数据按上述规则更新到Act Units Panel中,并作为内容真实的运行顺序

      1. 注:后续场景中Act&Plot组件增减或修改顺序,务必要在该面板中手动点击更新

        更新路径放映顺序

        更新路径放映顺序

    3. Act及Plot中缺少设置或参数异常,会在管理面板中进行报错提示,需依照反馈进行解决

      路径配置报错提示

      路径配置报错提示

配置交互效果

应用中会默认读取YOMOV大空间路径的标准交互效果,可通过配置文件进行快速替换,实现内容的定制化效果

  1. (可选)在YOMOV SDK菜单栏 -> Setting -> Act Setting ->Act Runtime Effect中,更改配置文件

    路径交互效果-配置面板

    路径交互效果-配置面板

  2. 支持配置类型

配置名称

中文名称

素材类型

效果示意

Map Boundary

地图边界效果

贴图

Plot Boundary

内容边界效果

贴图

Shown On Approach

靠近后回显

打开/关闭

打开-靠近回显30%透明度内容边界

打开-靠近回显30%透明度内容边界

关闭-靠近不回显内容边界提示

关闭-靠近不回显内容边界提示

Plot Return Guide Arrow

返回内容指引箭头

贴图

Plot Return Guide Statue

返回内容中心特效

shader

Void Space Skyball

虚空层天空球

天空球

Void Space Ground

虚空层地面效果

贴图

Ending Credits

片尾谢幕

文字

运行调试

完成以上设置后,可在编辑器进行运行调试。

  1. 任意场景开始运行

    1. 打开需要调试的场景,点击菜单栏中【Play】按钮,开始以大空间模式运行内容

    2. 注意:

      1. 因为需提前加载初始化中LBEPath相关能力,因此不能直接点击Unity引擎中的放映按钮,需点击【Play】按钮

      2. 放映前需要在YOMOV SDK -> Setting -> LBEPath中,点击【Update Act Sequence】按钮,生成真实读取的放映序列

  2. 从初始化场景开始运行

    1. 打开初始化场景,点击Unity运行按钮

    2. 注意:

      1. 测试时务必在YOMOVSDK -> Builder中,在Packaging Type中选择Test类型,MultiPlayer Mode中选择为SinglePlayer类型,才能以单人模式启播(否则要连接服务器)

      2. 这里需要点击Unity的运行按钮,而不是【Play】按钮,原因是初始化场景已经自带了LBEPath的初始化能力

步骤三:玩家角色配置

玩家角色配置是用于实现多人体验中玩家形象、组别、显隐、位置与动作表现的相关能力 玩家角色模型涉及到跟IK动作、手势交互、多人同步等多个维度进行关联耦合,是确保玩家顺利体验LBEVR的核心特性,但同时又是LBEVR接入及调试最耗时的工作,强烈建议按照文档要求规范仔细执行,将大幅缩减后续的调试成本

[图片暂不可用]

同队玩家角色

同队玩家定义:在线下LBEVR体验时,通过组队功能在一个队伍中启播放映的玩家

  • 同队玩家放映时,支持玩家选择不同的角色形象读取,玩家形象全地图显示

非同队玩家定义:在线下LBEVR体验时,不在同批次队伍启播放映的玩家

  • 非同队玩家(包含相同内容及不同内容)仅回显默认相同的角色形象,仅在靠近玩家5m内进行显示
  1. 在YOMOV SDK -> Setting -> Avatar -> Team Player Avatar中,点击添加按钮,创建生成同队伍玩家角色Prefab变体,并自动完成配置关联

    角色管理面板-添加角色

    角色管理面板-添加角色

  2. Prefab中还需绑定模型资产,按如下流程进行操作:

    1. 打开同队玩家Prefab预制体,将内容中角色模型(已绑定标准Humanoid骨骼)拖拽到Prefab中

    2. 选中父节点物体【TeamPlayer】,找到【Custom Avatar Manager】组件,将刚才添加进来的玩家角色模型,进行关联绑定

      关联角色模型

      关联角色模型

    3. 点击【Bind Avatar IK】按钮,一键完成对角色IK进行绑定

      一键绑定IK

      一键绑定IK

      IK绑定完成

      IK绑定完成

  3. 创建多个同队玩家角色形象

    在部分LBEVR内容体验中,每个玩家能够选择不同的角色去体验VR内容,这时候可以添加配置多个玩家形象,放映时通过启播参数中玩家选择角色配置名称,动态生成角色模型

    1. 在YOMOV SDK菜单栏 -> Setting -> Avatar -> Team Player Avatar多次点击添加角色按钮,创建并关联多个角色预制体;后续替换模型流程同上

      1. 注:创建多个玩家角色需确保角色预制体的名称不同(系统创建时会自动进行区分),否则后续选角色无法进行准确对应

        角色管理面板-创建多个同队玩家角色

        角色管理面板-创建多个同队玩家角色

非同组玩家角色

  1. 在YOMOVLBE SDK菜单栏 -> Setting -> Avatar -> NonTeam Player Avatar点击添加按钮,生成非同队伍玩家角色Prefab模型,并自动完成配置

    创建非同队玩家角色

    创建非同队玩家角色

  2. Prefab中绑定模型资产步骤同上

    1. 注:非同队玩家仅支持创建1个角色

步骤四:服务端设置

内容服务端主要包含2个功能:玩家多人同步,桥接服务通信(实现多内容混播&转发播控指令)

  1. 在YOMOVLBE SDK菜单栏中点击【Create YOMOVLBEServer】组件,创建YOMOVLBEServer预制体变体,该物体中组件将包含多人服务及桥接通信能力

    YOMOVLBEServer Prefab变体

    YOMOVLBEServer Prefab变体

流程B:不接入SDK多人同步

📌

接入说明:

  • 接入YOMOV LBEVR分发平台的必选功能:播控系统通信、放映鉴权、大空间路径、多应用桥接通信

适用场景:

  • VR应用中有开发特定的多人同步玩法

  • 开发团队具有较好的技术实现及调试能力

一、初始化设置

SDK初始化过程包括:底层插件加载、系统配置读取、播控系统接入、应用放映鉴权、大空间路径加载等LBE分发核心能力,是接入大空间分发的基础

  1. 在菜单栏YOMOVSDK -> Setting中,关闭Multiplayer Sync选项

    1. 默认会勾选开启,关闭后则默认不使用YOMOV的多人同步功能

  2. 添加YOMOV初始化组件

    1. 打开VR应用的初始化场景,在YOMOV SDK菜单中,点击【Create YOMOVInitial】按钮

      在初始化场景中添加YOMOVInitial组件

      在初始化场景中添加YOMOVInitial组件

      添加YOMOVInitial组件

      添加YOMOVInitial组件

  3. 关联绑定XROrigin功能

    1. 打开创建好的YOMOVInitial预制体变体,将应用中自带的XR Origin物体拖拽到YOMOVInitial -> VRRig下,这里建议使用XRI中的手势交互变体

      XR Origin设置在VRRig节点下

      XR Origin设置在VRRig节点下

    2. 在YOMOVInitial中选中VRRig物体,在AddLBEInterator组件上点击【Add LBE Interactor】按钮,在XROrigin中一键添加大空间路径交互相关组件

      Add LBE Interactor操作入口

      Add LBE Interactor操作入口

      添加完成后效果

      添加完成后效果

    3. 在YOMOVInitial中选中MultiplayerServerConnect物体,在BindXROriginData组件上点击【Bind XROrigin Data】按钮,将XROrigin中位姿与手势数据跟多人同步组件进行绑定关联

      Bind XROrigin Data操作入口

      Bind XROrigin Data操作入口

      绑定完成后效果

      绑定完成后效果

【YOMOVInitial】组件描述:

GameObjects

Components

添加方式

YOMOVInitial

插件&配置读取、放映鉴权、运营系统通信

  • XRSDK Init:初始化读OpenXR、XRI等底层插件库

  • Core Config Manager:数据配置管理

  • XR Component Manager:一键添加并绑定VRRig中组件

    • 绑定按钮:Bind XROrigin Data
  • Yomov Client Manager:事件接收管理

  • Void Boundary:创建虚空空间

  • Yomov Act Manager:路径服务通信建联及数据读取

自动添加

MultiplayerServerConnect

多人服务器建联及数据同步

  • Single Avatar:发送玩家位姿数据给服务器

  • Hand Tracking Data Source:发送手势数据给服务器

  • Bind XROrigin Data:一键绑定XROrigin位姿及手势数据

自动添加

LBETestTool

测试工具

  • Test Tool Manager:测试工具管理器

自动添加

MenuList

自动添加

HandMenuWristButton

  • Hand Menu:手部菜单

自动添加

SceneSelectManager

  • Scene Select Manager:选择切换场景面板

  • Hand Menu Track:绑定手柄位置

自动添加

TimelineSpeedManager

  • Timeline Speed Manager:放映速度管理面板

  • Hand Menu Track:绑定手柄位置

自动添加

VRRig

  • AddLBEInterator:添加大空间交互相关组件

自动添加

XRInteractionManager

  • XR Interaction Manager

手动一键添加

EventSystem

  • Event System

  • XR UI Input Module:手柄数据输入映射管理

手动一键添加

XROrigin

自主创建

MainCamera

HeadTarget

  • VR Boundary Target :玩家或手部靠近边界后回显

手动一键添加

Collider

  • Rigidbody

  • SphereCollider

手动一键添加

EyeBlink

  • Animator

  • Player Blink Controller:切换Act章节自动播控黑场转场特效

手动一键添加

Left Controller

LeftHandTarget

  • VR Boundary Target:玩家或手部靠近边界后回显

手动一键添加

Right Controller

RightHandTarget

  • VR Boundary Target:玩家或手部靠近边界后回显

手动一键添加

二、创建大空间路径

详见:创建大空间路径

三、服务端设置

内容服务端主要包含2个功能:玩家多人同步,桥接系统通信(多内容混播&实现播控指令);这里仅需要接入多应用桥接通信

  1. 如果应用采用其他类型的多人服务插件,可在YOMOVCore -> Sample中,找到BridgeClient文件,即内容服务器与桥接服务器通信代码示例,基于该示例自主修改完成内容服务器与桥接服务器通信相关代码

    1. 通信代码示例:详见SDK内代码

流程C:接入【小空间游戏】