Skip to main content

Step1:资源设计

资源设计,是赋予普通模型/特效资源于变化能力的过程,让它从一个静态的模型“活”起来,而到底怎样才算是“活”起来?把资源对应到现实世界中,让资源具有显示世界中真实的它所具有的能力就是“活”起来。而资源属性就是让资源变成现实世界中样子的方式。

开发者可能会设计的资源类型分别是 Scene场景 资源、InteractiveObject可交互物 资源、UI 资源和 Character角色 资源。

  • Scene场景:是指UE4关卡(Level)资源,在VRaaS™ Engine开发引擎中将其拖入3D视口后,在此基础上,继续搭建所需业务环境场景。

  • InteractiveObject可交互物:同时具有业务属性和直接被VR/AR设备交互能力的资源。

  • UI:拖入后浮在窗口上的2DUI资源。

  • Character角色:带有骨骼动画的人物资源。

那么到底怎么设计资源呢,请往下看 ⬇

资源设计可分为 新建设计文件业务属性设计交互属性设计 三个部分,每个类型的资源设计是全部或前两个的组合。

新建设计文件#

每一个资源都要有一个属于自己的资源设计文件夹,在此之前,先认识一下 VRaaS™ 资源制作工具包 中的示例资源设计文件结构吧。

示例资源设计文件说明#

VRaaS™ 资源制作工具包 (如果没有,点击扫描二维码获取) 中的 0.VRaaS资源制作文档 目录下是四种类型可能会用到的资源设计文件示例。

VRaaS_Assets
└── 0.VRaaS资源制作文档
├── Scene
│ └── 示例资源
│ ├── 01.描述与反馈清单.xlsx
│ ├── 02.参考
│ └── 03.媒体
├── InteractiveObject
│ └── 示例资源
│ ├── 01.描述与反馈清单.xlsx
│ ├── 02.参考
│ └── 03.媒体
├── UI
│ └── 示例资源
│ ├── 01.描述与反馈清单.xlsx
│ ├── 02.参考
│ └── 03.媒体
└── Character
└── 示例资源
├── 01.描述与反馈清单.xlsx
├── 02.参考
└── 03.媒体
关于示例资源文件的说明
  • 每一个资源都需要有一个如 示例资源 一样的文件夹,文件夹名称即为资源名称。

  • 同类型下资源名称不可重复。

  • 01.描述与反馈清单.xlsx 是资源设计的主要产出。
  • 02.参考 文件夹是用来存放一些在资源设计中用到的参考图片/视频/网页等信息的,便于开发人员在进行资源开发时更准确地理解设计原则。
  • 03.媒体 文件夹是用来存放资源设计中用到的音效文件,便于开发人员在进行资源开发时可以直接使用音效。

新建资源设计文件#

了解了资源设计文件的组织结构后,要新建资源设计文件,那就要先确定待设计 资源类型 ,然后在对应资源类型文件夹下 复制 一个 示例资源 文件夹并将其 重命名为资源名称 就完成新建资源设计文件了。

业务属性设计#

每一类资源都会有业务属性,毕竟VRaaS资源的本质就是封装了业务属性的普通美术资源。

资源基础信息#

在开始业务属性设计之前,需要先确认和填写资源的基础信息,不同类型资源的基础信息不同,详见如下说明:


sys

Scene场景资源的基础信息有:

  • 资源名称:确保资源名称是正确的、表意清晰的,且在当前类型下不重名。

  • 资源类型: 确保资源类型是 Scene(场景)

  • 资源描述-可行走范围:确保默认内容没有被修改。

  • 资源美术资源连接:是资源在下 VRaaS资源制作工程.Project 项目工程中的位置,确保其正确。


关于业务属性#

还是那句话 VRaaS资源的本质就是封装了业务属性的普通美术资源,资源的业务属性就是让一个静态模型活过来的方式,把资源对应到现实世界中,让资源具有显示世界中真实的它所具有的能力就是“活”起来。

业务属性设计就是对比把真实世界中的这个资源所具有的能力,变成一个个属性。请对比下方的例子,并理解这个例子。

业务属性设计举例

比如一个汽车资源,现实世界中的汽车轮子可以转、车门可以打开或关上、汽车可以鸣笛等等,这些就是属性。

当然,现实世界中的资源具有非常多且复杂的能力,资源设计只选择需要的部分进行属性设计即可。下图是一个汽车的资源属性设计示例:

sys

业务属性设计#

打开 01.描述与反馈清单.xlsx 文档,根据业务需求 新增资源属性行 ,定义属性分组、属性名称、属性展示类型、属性值范围、属性默认值、属性反射类型、属性描述。

sys

关于 01.描述与反馈清单.xlsx 格式的说明
  • 必须严格按照文档格式执行,否则会导致资源开发自动化过程错误!

  • 黑色粗外框 之内不可以自行添加列,只能在 资源属性 表头下自行添加行,一行对应一个资源属性。

  • 所有资源属性行和对应前六列 (属性分组、属性名称、属性展示类型、属性值范围、属性默认值、属性反射类型) 必须在红色虚线内,红色虚线必须完整闭合,且红色虚线内不能有空白单元格。

  • 文档中所有 [ ] 内均需替换成最终信息。

关于业务属性各字段的说明如下:

  • 属性分组 :用于对属性进行分组,自行填写,默认命名格式为 [场景名称]状态,如果有其他组,则根据业务信息进行命名,要足够准确地表述分组含义。

  • 属性名称 :属性的名字,自行填写,不要超过6个汉字。命名格式会受 属性展示类型 影响,如下说明:

    • 属性展示类型 = Ctl_CheckBox(单选框): 属性命名格式为 是否[XXX][XXX]可[XX]
    • 属性展示类型 = Ctl_DropdownList(下拉列表):属性命名格式为 [XXX]状态
    • 属性展示类型为其他: 用足够准确、表意明确的名词或短语命名。
  • 属性展示类型:表示属性的类型,只可从既定选项中选取,每个类型的说明如下:


三维向量类型属性,用于如位置、缩放等。

最终应用效果:

sys


  • 属性值范围 :可以选择使用的属性值范围描述,不同的属性类型,范围描写方式是不一样的,具体说明如下:
    属性值范围必须严格按照以下说明填写,不然会导致资源开发自动化过程错误。
    • Ctl_Vector(向量):任意。
    • Ctl_CheckBox(单选框):是/否 。
    • Ctl_SpinBox(数值框):[最小值]至[最大值]。
    • Ctl_DropdownList(下拉列表):[值1]、[值2]、[值3]、...
    • Ctl_Text(文本):任意。
    • Ctl_TextBox(文本输入框):任意。
    • Ctl_ColorPicker(颜色选择器):任意。
    • Ctl_WinFileSelector(Windows文件选择器):如果是音效文件的话,范围为“音效文件|.mp3;.wav”,否则为“任意”。
  • 属性默认值 :是指属性值范围中默认选中的值。默认值的设定规则是,设定默认值后资源为常规状态,没有特殊信息的展示。
  • 属性反射类型(建议): 属性反射类型有三种,使用说明如下:
    • 普通:业务属性一般都是普通反射类型。
    • 变量反射属性展示类型 = Ctl_SpinBox(数值框) 的业务属性一般为变量反射类型。
  • 资源属性-属性值描述:是指属性值范围下所有值对应的确切含义,一般是指生效于模型上的业务效果,要描述清楚 每一个属性值下需要程序让具体的模型呈现出什么样的变化效果

另外,设计过程中需要引用的参考文件均放在 02.参考 文件夹中,资源需要使用的音效文件均放在 03.媒体 文件夹中,确保开发人员在资源开发过程中能准确的获取设计意图并准确地获取相关文件。

交互属性设计#

交互属性是让资源具备能与VR化身交互的能力的属性,没有交互属性的话,资源是无法与VR化身发生直接交互的。

关于交互#

在设计交互属性之前,需要先 理解交互 的概念。

①. InteractiveObject交互物自身不能直接被化身交互,化身是通过与交互物上设定好的交互点进行的交互。

②. 一个交互物可以有多个交互点。

③. 一个交互点可以是交互物自身,也可以是交互物的某个部件。

④. 交互点可以是虚拟的看不见的,也可以和物体的可见部分一致。

⑤. 示例:

⑤-①. 杯子,杯子作为一个交互物资源,整个交互物就是一个交互点,此时整个杯子任意位置都可以用来交互;或者只有杯子手柄是交互点,那么就只有杯子手柄可以用来交互。

sys

⑤-②. 门,门作为一个交互物资源,只能通过门把手来打开,所以门把手是一个交互点。

sys


交互属性设计#

示例的 01.描述与反馈清单.xlsx 文档中已经列出了所有元交互,所以只需要根据需求,将当前资源设计文档中的交互属性行进行 必要的删减 然后对保留行按需定义属性分组、属性名称、属性展示类型、属性值范围、属性默认值、属性反射类型、属性描述即可。

关于交互属性设计格式的说明
  • 必须严格按照文档格式执行,否则会导致资源开发自动化过程错误!

  • 黑色粗外框 之内不可以自行添加列,只能在 资源属性 表头下自行添加行,一行对应一个资源属性。

  • 所有资源属性行和对应前六列 (属性分组、属性名称、属性展示类型、属性值范围、属性默认值、属性反射类型) 必须在红色虚线内,红色虚线必须完整闭合,且红色虚线内不能有空白单元格。

  • 文档中所有 [ ] 内均需替换成最终信息。

  • 示例资源中列出了一个交互点的所有交互属性,如果不需要其中某些可以直接删掉属性所在行。

  • 交互触发时默认逻辑 是指当交互属性行存在且物体发生对应交互时需要有特殊业务效果要求,则需要描述出来,开发会根据此处的描述在资源开发时用代码完成效果要求。如果物体发生对应交互时无任何业务要求,则不需要填写。

  • 一个交互点必须有一个交互总开关,即 可被交互 属性,如下图所示示例:

    sys

关于交互属性各字段的说明如下:

  • 属性分组 : 交互属性的属性分组命名格式必须为 交互点-[交互点名称]

    交互点属性分组命名格式必须严格按照规则执行,否则会导致资源开发自动化过程错误!
  • 属性名称 :交互属性的属性名称是定义好的,在下拉列表选项选择即可,不可以任意修改。

  • 属性展示类型:交互属性的属性展示类型只能是 Ctl_CheckBox(单选框)

  • 属性值范围 :与 属性展示类型 交互属性的属性值范围只能是 是/否

  • 属性默认值 :交互属性的属性默认值都是

  • 属性反射类型(建议): 。交互属性的属性反射类型必须是 交互反射

  • 资源属性-属性值描述:黑色字体部分保持默认,但红色字体部分要根据资源的需求具体填写。

    可参考下图示例:

    sys

另外,交互属性设计过程中需要引用的参考文件均放在 02.参考 文件夹中,资源需要使用的音效文件均放在 03.媒体 文件夹中,确保开发人员在资源开发过程中能准确的获取设计意图并准确地获取相关文件。

Scene场景资源设计#

Scene场景:是指UE4关卡(Level)资源,在VRaaS™ Engine开发引擎中将其拖入3D视口后,在此基础上,继续搭建所需业务环境场景。

Scene场景设计是指给UE4关卡(Level)设计满足业务需求的属性,让本来是纯美术呈现的关卡具有业务属性,最终在VRaaS™ Engine中使用。

关于Scene场景资源的说明

—— 也许你会想问 “VRaaS™ Engine开发引擎既然可以搭建场景,那为什么还需要Scene场景资源?”

—— 这个问题的答案是:“VRaaS™ Engine开发引擎注重于更高效的无代码开发业务功能,并不是一款要彻底替代传统3D引擎的软件。因此,就业务需求来说,对于天生属于环境信息的元素才会作为场景中的一部分,除此之外的元素就应该升维到其他类型的VRaaS资源, 最终在VRaaS™ Engine开发引擎中以Scene场景资源为基础,结合其他类型VRaaS资源,通过流即可快速开发业务功能。"

PS:VRaaS资源是各自独立、可以相互组合使用的,但资源自身不可以拆分使用。故场景资源的制作粒度,也可以从这个角度来权衡。

Scene场景资的设计包含 新建资源设计文件夹业务属性设计 两部分。

Scene场景资源不包含基础属性 位置旋转缩放可见性

InteractiveObject可交互物资源设计#

InteractiveObject可交互物:是指可交互的VRaaS资源,具有业务属性或交互能力。

InteractiveObject可交互物设计是指给普通美术模型/特效设计满足业务需求的属性,让本来是纯美术资源具有业务属性 和 交互能力,最终在VRaaS™ Engine中使用。因此,InteractiveObject可交互物资源设计包含 新建设计文件业务属性设计交互属性设计

InteractiveObject可交互物资源是包含基础属性 位置旋转缩放可见性的,因此一定要保留基础属性组。

UI资源设计#

UI资源是指可以拖入的2DUI界面,且拖入后浮在窗口上的2DUI资源,UI资源设计包含 新建资源设计文件夹业务属性设计 两部分。

UI资源基础属性中只有 位置缩放可见性 三组,其中 位置缩放是二维向量,不是三维的。

Character角色资源设计#

角色资源本质上也是可交互物,只是多了骨骼动画。Character角色资源设计包含 新建设计文件业务属性设计交互属性设计