实体(人体)观察

更新记录

版本 日期 修改人 修改内容
1.0.0 2021年10月13日 蔺浪(510525) 新建文档

概述

  • 以下标注“(沿用)”字样的对象为项目中原有,非新增设计。
  • 以下标注“(据了解)”字样的条例为通过其它同学反馈或跟踪代码理解所得结论,非亲自经手。

策划案

http://33h.co/w1jft

https://e6orzq6o96.feishu.cn/sheets/shtcntOj3Ys4QBB1wKACmeZd6Mc?table=tblHWaeWUH9IBs61

功能预览

核心代码

http://git.sdp.nd/app-u3d/3d_labplayer.git

特性

feature/ShiTiGuanCha2.0-1

集成CommonUI

feature/1.2.1-Fobservation
VLabCommonUI

VLabPlayerView3D
feature/ShiTiGuanCha2.0-1

PlayerCore

feature/1.17.0-Fobserve2.0

  • IEquipObserver.cs EquipObserver.cs
//切换动画(string equipGuid, string animName)
bool SwitchAnim(string equipGuid, string animName);

//切换动画阶段(string equipGuid, string stageName)
bool SwitchAnimStage(string equipGuid, string stageName);

//开关动画阶段播放状态(string equipGuid, int status)
//status:0,暂停播放;1,继续播放;
bool ToggleAnimStage(string equipGuid, int status);

//注册动画阶段状态变化事件(string equipGuid, string stageName, int status)
//status:0,播放开始;1,播放结束
void RegisterAnimStageStatusChangedEvent(Action<string, string, int> callback);
  • IEquipObserverAC.cs EquipObserverAC.cs
  • EquipObserveData.cs
  • EquipModelAnim.cs

PlayerCoreAC

feature/1.8.0-Fobserve2.0

  • AgentComponent_EquipObserver.cs
//注册切换动画事件(string entityID, string animName)
public void RegisterSwitchAnimEvent(LuaFunction callback);

//注册切换动画阶段事件(string entityID, string stageName)
public void RegisterSwitchAnimStageEvent(LuaFunction callback);

//注册开关动画阶段播放状态事件(string entityID, int status)
//status:0,暂停播放;1,继续播放;
public void RegisterToggleAnimStageEvent(LuaFunction callback);

//通知动画阶段状态变化(string entityID, string stageName, int status)
//status:0,播放开始;1,播放结束
public bool NotifyAnimStageStatusChanged(string entityID, string stageName, int status);
  • IEquipObserverAction.cs EquipObserverAction.cs

关联代码

VLabPlayerView3D

TDPlayer

配置文件

  • https://www.showdoc.com.cn/VLab/4991873536394120
  • ShiTiGuanChaConfig.json
    {
      "ModelAnimations":[
          {
              "Name":"动画资源名称",                                //【必选字段】
              "Desc":"动画资源介绍",                                //【必选字段】
              "Icon":"动画图标.png",                                //【必选字段】 相对路径,器材资源包Images目录下
              "LookAt":"子节点名称/孙子节点名称",        //【可选字段】 若不配置字段或者留空,则使用“视图默认位置(即初始位置)”
              "Stages":[                                                    //【可选字段】 若无阶段区分,则无需配置
                  {
                      "Name":"阶段名称",
                      "Labels":[                                            //【可选字段】 无阶段标签则无需配置
                          {
                        "DisplayName": "",                    //【必选字段】 标签的名称(需要适配国际化)
                        "LabelId": "",                            //【必选字段】 标识标签的唯一ID
                        "Path": "",                                    //【必选字段】 标签所关联的UI显示的路径(空节点即可)
                        "Quadrant": 1,                            //【必选字段】 标签UI所在象限(1-4)
                        "Introduce": "",                        //【必选字段】 标签的介绍
                        "PartPath": ""                            //【必选字段】 部位观察镜头的聚焦位置(空节点即可)
                          },
                      ]
                  }
              ]
          }
      ]
    }
    

数据流

  • 实体观察数据
    • 器材Lua从器材包中ShiTiGuanChaConfig.json提取数据,必要时Override数据;(据了解)
    • 应用通过AC接口从器材Lua获取 实体观察数据;

交互流

  • 进入模型动画

    • 应用通过AC接口通知Lua 进入模型动画,Lua处理淡入;
    • 应用依据配置观察点信息适配观察镜头;
  • 播放/切换动画阶段(片段)

    • 应用通过AC接口通知Lua 播放/切换动画阶段(片段);
  • 播放状态通知

    • Lua通过AC接口通知应用,动画阶段(片段)播放完成;
    • 应用刷新UI并切换动画阶段(片段);即Lua不会自动连播,连播由应用控制实现;
  • 退出模型动画

    • 应用通过AC接口通知Lua 退出模型动画,Lua处理淡出;
    • 应用依据配置观察点信息适配观察镜头;

设计

接口设计

数据设计

其它

干系人

干系人 干系
蔺浪 支援二期功能开发,梳理文档
罗迪 二期功能开发
杨凌峰:(135057) 器材生产/配置
张庆:(182413) 器材美术资源
林梦恬(布莱妮)(930306) UI美术
刘春光 参与需求澄清
许靖妍(天竺葵)(118921) 策划
梁仁晓 交互体验
李成 版本负责人