从产品需求到技术实现,从零开始做VR
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这个课题是一个典型的先定义技术再寻找需求的项目。其背后本质就是为技术合适的使用场景。因此,在产品设计阶段我们使用了大量的“头脑风暴”来收集创意。经过反复讨论后,我们将产品目标初步设定为:为即将步入的校园的新生打造一款能够解决实际需求的VR校园产品。
1. 画像(Persona)
为便于问题探索,我们制作了三类用户画像:
准大学生王晓丽
心疼女儿的父亲王老伯
忙碌的辅导员张老师2. 价值主张(Value Proposition)
有没有一个价值能够满足这三类人群的需求呢?
满足三者需求
经过分析和讨论,我们最终提出的价值主张如下:
新生在家就能身临其境地完成预报到:
通过趣味游戏的方式,让学生了解校园环境
在家熟悉校园环境和报到流程
确保学生的安全:避免来校当天走失和迷路的情况
提升报到的效率,减少老师的工作量
使用场景举例:
在收到入取通知书后,新生用手机扫一扫通知书上的二维码,就可以下载到迎新的APP并安装;学生将通知书中附带的卡纸制作成VR眼镜;
把装好APP的手机装入眼镜盒即可身临其境地浏览校园环境;
通过做任务和讲解,能够全方位了解关于学校和报道的情况和问题。
最终,当新生真正到学校的时候,其实已经对自己学校有较为熟悉的了解。
3. 功能规划(Feature Defining)
针对所提的价值主张和主要用户角色,我们提了如下几个用户故事:
P0 识别校园中的建筑物:作为一名新生,我需要在校园场景中了解到每个建筑物的信息,以便我在家就能知道学校的环境。
P1 校园中移动穿行:作为一名新生,我需要在校园常用道路上走一走,以便于熟悉学校的地理环境。
P3 导览解说:作为一名用户,我希望能听到生动讲解,这样我就可以腾出双眼观察周遭。
P4 做报到任务获奖励:作为一名新生,我需要做点任务,例如,从机场/火车站到学校的任务,去宿舍报到的任务,这样我可以提前了解到去学校时需要的注意的问题。
而识别建筑物是最基础和最核心的功能,因此其优先级最高,也是本期要完成的目标,其它功能后续进行迭代。
二、技术选型(Technical Proposal )
目前许多厂商都推出了自己的VR解决方案,综合考虑制作成本和学习难度之后,我们选择了性价比最高的 Google Cardboard 的方案。
目前,基于谷歌的VR方案,内容制作有两种方式:摄影合成,程序开发。下面我们一一介绍一下:1. 通过拍摄合成
拼接多台摄影设备进行拍摄,在拍摄完成后合成3D的全景的视频。目前,欧美和岛国小电影已经率先尝试。
某片拍摄现场
从上图可以看出,这对拍摄和环境的要求极高。硬件成本也在几万到上百万不等,录制的后期合成
也要花费多人力成本。如果买不起那么多专业摄影设备,也可以考虑使用3D打印的支架把多
台GoPro拼接在一起。一个GoPro 相机在4000元左右。如下图:
谷歌官方推荐的Jump是由16个GoPro 4组成的360圆盘。
2. 通过程序开发
如果没有钱投入硬件,那就只能玩软件了。Google提供了Daydream SDK和Cardboard SDK。用这两个SDK,可以帮助我们事半功倍。
Daydream 是谷歌新发布的VR方案,从硬件上看Daydream相比于Cardboard就是多了个手柄和舒适度较高的遥控器。需要硬件支持Daydream和VR Play Store。按照目前情况来看,头套+手柄的售价在500多元。
配图源自新浪科技
而Cardboard SDK 实际上是Unity3D的素材库,提供了现成的用于VR制作相关素材和脚本。因此这对熟悉Unity3D的开发者门槛较低。而且Unity3D的脚本主要使用了简化的C#和JavaScript,对于有一定编程经验的开发者也是非常简单便捷的。比Daydream更好的就是兼容Android和iOS。
综合考虑,在原型制作阶段我们可以使用Cardboard进行低成本简单的虚拟场景制作,等Daydream 成熟之后可以考虑再迁移以获得更好的体验。而后期条件宽裕的时候可以使用摄影的方式进行制作。
三、技术实施(Developing)
根据前面的讨论和分析,我们需要使用Cardboard实现在查看建筑物建筑物介绍的产品原型。也就
1. 导入Google Cardboard SDK,选择 GoogleVRForUnity.unitypackage后点击import
导入Cardboard SDK
2. 创建在Assets中创建一个新的文件夹 MyAssets。这个文件夹主要用来放置我们自定义的素材。
3. 在MyAssets中创建Scene文件夹,用来存放我们的场景文件。点击保存按钮(command+s),将文件当前文件存储,命名为stage。
3. 创建物体
(1)创建地面
1)右键点击3D Object,选择Plane。
2)选择平面,将其命名为 Ground,Transform中的参数Scale 设置为x=10,y=0,z=10
(2)创建建筑
1)建筑可以从3dsMAX、SketchUp或者Maya导入。为了简化操作我们用Unity自带的长方体代替。点击右键选择3D Object,选择Cube:
2)设置Cube的参数:
名称:教学楼
Position:x=0,y=1,z=0;
Scale: x=1,y=2,z=1;
3)将“教学楼”复制出3个出来,调整不同的位置、高度和大小以示区分,注意调整Y坐标高度使底部贴地
4)分别命名为体育馆、宿舍楼、食堂
(3)添加素材
我们现在要给场景中的物体附上材质,让地面、建筑物有不同的颜色:
1)在“MyAssets”中创建名为“Materials”文件夹: