虚拟实验室-Unreal 版本

虚拟实验室的Unreal 版本,第一个版本主要是以《探究通电螺线管外部的磁场分布》颗粒为例,设计和开发一个正式版本。


交互和表现-概要设计

<p>[toc]</p> <table> <thead> <tr> <th>作者</th> <th>Zyy/QFord</th> </tr> </thead> <tbody> <tr> <td>更新日期</td> <td>2024-6-15</td> </tr> <tr> <td>版本</td> <td>V1.0.0</td> </tr> </tbody> </table> <h1>1 软件设计说明</h1> <h2>1.1 整体功能</h2> <h3>一 概述</h3> <p>基于虚拟实验室现有的交互和表现架构和功能,提供一套新的交互和表现,该交互和表现不仅面向unreal平台。还面向用户编辑器,可以通过用品编辑器配置交互和表现功能,从而减少用品人员的开发工作量。</p> <p>此概要设计文档针对上述功能,从主要业务流程,组件,接口方面进行程序设计,作为详细设计的前置依据,以及指导程序开发事务。</p> <h3>二 功能拆解</h3> <table> <thead> <tr> <th>功能点编号</th> <th>功能点名称</th> <th>依赖功能点编号称</th> <th>功能点内容描述</th> </tr> </thead> <tbody> <tr> <td>F001</td> <td>自由移动</td> <td></td> <td>没有约束的移动,可以在场景中自由变换位置</td> </tr> <tr> <td>F002</td> <td>移动约束</td> <td></td> <td>对自由移动施加约束,限制移动平面或者移动区间</td> </tr> <tr> <td>F003</td> <td>自由旋转</td> <td></td> <td>没有约束的旋转,可以朝任意方向旋转</td> </tr> <tr> <td>F004</td> <td>旋转约束</td> <td></td> <td>对自由旋转施加约束,限制移旋转轴或者旋转区间</td> </tr> <tr> <td>F005</td> <td>投掷</td> <td></td> <td></td> </tr> <tr> <td>F006</td> <td>触碰</td> <td></td> <td></td> </tr> <tr> <td>F007</td> <td>点击</td> <td></td> <td></td> </tr> <tr> <td>F008</td> <td>拼接</td> <td></td> <td></td> </tr> <tr> <td>F008</td> <td>倾倒</td> <td></td> <td></td> </tr> <tr> <td>F008</td> <td>震荡</td> <td></td> <td></td> </tr> <tr> <td>F008</td> <td>闻</td> <td></td> <td>通过挥动手,触发闻交互,弹出气味文字</td> </tr> <tr> <td>F008</td> <td>抓取矫正</td> <td></td> <td>抓取对象时,重设目标对象的位置和角度</td> </tr> </tbody> </table> <table> <thead> <tr> <th>功能点编号</th> <th>功能点名称</th> <th>依赖功能点编号称</th> <th>功能点内容描述</th> </tr> </thead> <tbody> <tr> <td>F001</td> <td>火焰表现</td> <td></td> <td></td> </tr> <tr> <td>F002</td> <td>液体表现</td> <td></td> <td></td> </tr> <tr> <td>F002</td> <td>绳索表现</td> <td></td> <td></td> </tr> </tbody> </table> <h2>1.2 核心类图</h2> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=37ff3608b3cf55c0bff4f64712a2a8be&amp;amp;file=file.png" alt="" /></p> <p>[在线编辑链接](<a href="https://www.processon.com/diagraming/6515297a094a1d332a3a4ba6">https://www.processon.com/diagraming/6515297a094a1d332a3a4ba6</a> &quot;在线编辑链接&quot;)</p> <h2>1.3 组件图</h2> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=ceacdf871d773e5c7adcca71acc08e69&amp;amp;file=file.png" alt="" /></p> <h2>1.4 时序图</h2> <h3>倾倒示例时序图</h3> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=31bcf51f52475f8583e19e93f043a8a2&amp;amp;file=file.png" alt="" /></p> <h3>电场线绘制时序图</h3> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=d01783c934ef6e2a83add77055eff801&amp;amp;file=file.png" alt="" /></p> <h2>1.5 非功能需求</h2> <p>性能指标: PC帧率达到&gt;=30FPS Android帧率达到&gt;=30FPS</p> <h2>1.6 其他备注</h2> <p>unity和unreal是属于两个差异比较大的开发平台,例如unity支持xlua,而unreal只支持ulua,unity中使用c#作为开发语言,unreal使用的封装后的UC++,unity中能使用的插件,在unreal中也需要另寻替代方案。 因此要将unity版本的虚拟实验室移植到unreal平台方面,不完全丢弃的话需要添加必要的中间胶水层。比如原先的化学引擎组件,可以通过尝试增加一个c++调用c#的胶水层,减轻重新开发引擎的成本。</p> <h1>2 接口设计说明</h1> <h2>2.1 接口整体设计</h2> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=e15a04e6db99e2e1b8bb0da19f3b67e2&amp;amp;file=file.png" alt="" /></p> <pre><code>ComponentBase.h(通用基础接口) :定义了基本功能,包括初始化,功能开启/关闭,挂载的器材根节点 AbilityCommonBase.h(交互能力基础接口) :继承通用接口ComponentBase.h,包含了交互能力通用的功能 EffectCommonBase.h(表现基础接口) : 继承通用接口ComponentBase.h,包含了表现通用的功能 InterAbility.h(交互能力专用接口) :定义了各交互能力专用的功能,比如移动能力包含了开始移动,移动中,移动结束。 EffectAbility.h(表现专用接口) : 定义了各表现能力专用的功能,比如火焰的颜色</code></pre> <h2>2.2 接口明细</h2> <table> <thead> <tr> <th>接口签名</th> <th>描述</th> <th>参数</th> </tr> </thead> <tbody> </tbody> </table>

页面列表

ITEM_HTML