如何运用Unity制作VRunity3d vr 全景视频漫游

完成启动画面后,可以开始制作主场景了。主场景是一个360度照片查看器,可以用按钮来选择一系列的360度全景图片。
在本期教程中,你将学到:
·在Unity&项目中增加第二个场景
·使用脚本将启动画面过渡到主场景
1)使用替代场景
建议用上一期教程中制作的启动场景作为本期教程的起点。但如果你想用一个“干净”的文件来开始本期教程,也可以使用Unity自带的替代场景。
A.返回Unity。
B.在Project窗口,找到/Assets/Workshop/Scenes/CatchUpScenes文件夹,打开2_Splash.unity文件。
C.在菜单中选择File
& Save Scene as…。在Save
Scene对话框,将文件名设为Splash.unity并保存到/Assets/Workshop/Scenes文件夹。系统提示时,选择覆盖已存在的Splash.unity文件。
2)创建主场景
A.在菜单中,选择File
& Save Scene as…。
Scene对话框,将文件命名为Main.unity并保存到Unity项目中的/Assets/Workshop/Scenes文件夹。
C.在Hierarchy窗口,选择Box_Inv和Logo_1,右击并选择Delete。
D.在Project窗口,打开/Assets/Workshop/Meshes文件夹,将Sphere_Inv拖到Hierarchy窗口。
Sphere_Inv是一个反转的球面网格,用来放置主场景的背景。在完成后的app中,用户可以切换显示在这个球面上的360度图片。
E.在Inspector窗口,找到Mesh
Renderer部分,展开Materials,把/Assets/Workshop/Materials/Main_Sphere.mat文件拖到Element
F.在Hierarchy窗口,选择Create
& Create Empty。
G.在Inspector窗口,将这个物件的名称改为Buttons。按Enter以确认这个更改。
H.在Project窗口,打开/Assets/Workshop/Meshes文件夹将Button_Advance.FBX文件拖到Hierarchy窗口中Buttons上。
I.在Inspector窗口,为Transform&设定如下参数:
·Position:
(1.2,0,10)
·Rotation:
(-90,-180,0)
Renderer部分,展开Materials。找到Element
0,点击Target按钮以选择材质。
K.在Select
Material窗口,在搜索栏中输入button并选择&the
Button_0_Trim材质。你可以看到Inspector窗口中的Element
0中的内容已更新。
-K步,将Button_1_Recess材质加入Mesh
Renderer & Materials & Element 1。
M.在Hierarchy窗口,右击Button_Advance并选择Duplicate。
N.在Inspector窗口,将第二个Button_Advance
(1)改名为Button_Decrement。
O.为Transform&设定以下参数:
·Position:
(-1.2,0,10)
(-1,1,1)
P.在Project窗口,打开/Assets/Workshop/Prefabs文件夹将Button_Slideshow文件拖到Hierarchy窗口里的Buttons上。
Q.在Inspector窗口,确认Transform部分的参数设为一下数值:
·Position:
(0,0,10)
·Rotation:
(-90,-180,0)
R.在Hierarchy窗口,多选Button_Advance,Button_Decrement,和Button_Slideshow。
S.在Inspector窗口,点击Add
Component按钮,选择Physics
& Mesh Collider。
T.保存场景。
3)创建StartApp物件
A.在Property窗口,打开/Assets/Workshop/Scenes/Splash.unity文件。
B.在Hierarchy窗口,选择Create
& Create Empty。
C.在Inspector窗口,将物件名从GameObject改为StartApp,并回车确认更改。
这个物件将被用来创建一个计时器,控制启动画面的播放时长。
Component按钮,选择Scripts
& Start App。
这一步将为StartAPP加入脚本。
App部分,双击StartApp脚本,可以在Unity的代码编辑器MonoDevelop中打开文件,查看代码内容。
F.在MonoDevelop中查看StartApp脚本。
你可以看到在脚本顶部定义了一些变量。脚本中的公共变量可以在Unity
UI里调整,而私人变量则不允许。这对多人协同开发的情况很有用。开发人员可以在代码中设置变量,让设计人员在Unity里调整数值。这个脚本,以及所有其他在这里要用到的脚本都有详细的注释,可以了解每个部分在app里起到的作用。
G.关闭MonoDevelop,返回Unity。
H.在菜单中,选择File
& Build Settings…。
I.在Project窗口,将/Assets/Workshop/Scenes/Main.unity文件拖到Build
Settings&窗口。
App里的每个场景都有一个编号。编号为0的场景会第一个显示,编号为1的第二个显示,以此类推。这个app里第一个场景是启动场景。
J.关闭Build
Settings窗口。
K.在Inspector窗口中查看Start
这个脚本将启动场景的显示时间定为2.5秒,之后将切换到编号为1的主场景。
L.通过把MSplash
Duration的数值设为5秒来延长启动场景的显示时间。
M.保存场景。
4)创建并运行这个应用
A.通过USB将手机连接到电脑。
B.在菜单中,选择File
& Build Settings…并点击Build
小技巧:你也可以点击Build按钮。这样的话会创建APK文件,但不会把app推送到手机。这个方法会更快一点。如果你有DropBox账号,你可以直接将APK创建到DropBox,而在手机上可以马上从DropBox安装和运行APK文件。
Android对话框,给你的APK命名并点击Save。
D.Unity创建好app后,你会在手机上看到Insert
device对话框。这时可以断开与电脑的连接,将手机插入Gear
VR运行你的场景。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5311次
排名:千里之外
转载:18篇1471人阅读
Unity3D(46)
要做全景视图,当然先要找一张全景图片(360°鱼眼镜头的)
接着全景视图的转换软件,如果可以的话自己做也行。&
这里推荐 pano2VR
图片转换好之后得到一组立方体面片。
在UNITY3D里面添加天空盒材质,加入到相机,然后材质选择我们刚刚得到的六面,就可以看到漂亮的全景视图了
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:44502次
排名:千里之外
原创:27篇
转载:28篇
(1)(2)(2)(2)(4)(2)(9)(4)(1)(1)(2)(1)(1)(1)(22)令人更想不到的是,车上居然还坐着一车“妖魔鬼怪”。
北京电影学院2017年度招考开始,考场外帅哥美女如云。
声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
方法一:通过6张小图搭建的VR场景
方法二:通过一张全景图来搭建VR场景
  最后搭建场景的方法是相同的,可以小图或者全景来充当场景。
  软件环境
  Unity5.3.1 X64: /cn/get-unity/download/archive
  PTGui[可选]: 把全景图转成6个立方小图 /download.html
  Google VR SDK For Unity: /googlevr/gvr-unity-sdk
  全景图片一张:自行拍摄或者google查找
  切立方体图
  1、运行PTGui,选择 Tools C Convert to QTVR/Cubic
  2、点击 Add Files,添加全景文件
  3、选择 cube faces,6 separate files 立方体表面,6个单独文件,可以选择 Cube Face Names ,设置每个文件的后缀
  4、点击 Convert ,输出文件和你的全景图片在同一个目录
  切图结果
  6张立方体图设置
  1、导入 GoogleVRForUnity.unitypackage 如果已有,可忽略
  2、导入切好的6张小图,选中这6张图,统一设置图片的属性如下:
  3、创建一个mat,命名为scene_cubes
  4、修改scene_cubes的shader为 skybox/6 sided
  5、把6张小图根据名字放入相应的区域
  6、现在你的资源看起来应该如下
  全景图设置
  1、导入 GoogleVRForUnity.unitypackage 如果已有,可忽略
  2、导入全景图未切割的大图,设置属性如下:
  3、创建一个mat,命名为scene
  4、修改scene的shader为 skybox/cubemap,并把步骤2的全景图,拖动到CubeMap中
  4、现在你的资源看起来如下
  搭建场景
  1、拖动gvr sdk自带的GvrMain.prefab到场景中,当然也可以自已创建,注意:结构要和GvrMain一样,组件也要绑定。
  2、修改Main Camera 的 Clear Flags为SkyBox,而不是原来的 Solid Color,修改后左右相机也会保持一致。
  3、选中 左右镜头,给他们添加 SkyBox,并把 scene_cubes.mat 或 scene.mat 赋值 [可省略]
  4、点击 Window C Lighting 打开Lighting窗口,在Scene 中设置SkyBox为 scene_cubes.mat 或 scene.mat
  运行结果
  按住Alt键,移动鼠标模拟头部运动
  参考资料
  QuickTime VR(也被称为QTVR)是苹果公司的QuickTime支持的一种文件格式。可以用它观看、制作可拖拽的全景照片,并通过在不同角度拍摄的图像来观察物体。它作为QuickTime播放器的插件工作,也可以以web浏览器的QuickTime插件方式工作。
  QuickTime VR可以在Windows系统中也可以在苹果系统中工作。
  虚拟全景图是环绕着观众的全景图(在内,向外),使人产生置身其中的感觉。通过“拼接”几张正常照片或者是两张采用了180度鱼眼镜头拍摄的照片来制作,或使用具有专门功能的全景相机,甚至使用三维建模的场景渲染的两张图片。
单列全景,用一个水平行的照片。
多行全景,与在不同倾斜角度拍摄的多行照片。
  虚拟现实全景进一步分为包含顶部和底部,称为立方体或者球形全景,那些不包括顶部和底部的通常称为柱形全景。
  单个全景,也称为节点,是从空间的独立的一个点拍摄到的。通过连接多节点或多对象的影片,使观众可以从一个地点转移另一个地点。这种多节点的QuickTime VR影片被称为场景。
  苹果公司的 QuickTime VR文件格式的对全景图节点有两种表达方式:
圆柱形(由围绕观众而成一个360度的图像)
立方(由环绕观众的六张图片两两90 && 90&正交构成的立方体 )
  他们中的每一个通常被细分或者平铺成几个较小的图像,并被储存到一个特殊格式的QuickTime影片。
  热点可嵌入全景,当选中它们时可以调用一些动作,例如移到全景图的另一个热点。
  相比于在一个地点以不同的角度向外拍摄而成的全景图,对象是指是对同一物体在不同视角进行拍摄。
  最简单的对象全景图是在单排上捕捉的,通常在一个物体的赤道方向上抓取拍摄。这通常会使用一个旋转的转盘使拍摄变得便利。对象被放置在转盘上,并且通过固定在三脚架上的相机以平均递增的角度进行拍摄(通常是10 &)。
  捕捉一个多行拍摄的对象影片则需要更精细的设置,因为相机必须在对象的赤道的上下方倾斜一定的角度。
欢迎举报抄袭、转载、暴力色情及含有欺诈和虚假信息的不良文章。
请先登录再操作
请先登录再操作
微信扫一扫分享至朋友圈
搜狐公众平台官方账号
生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者
搜狐网教育频道官方账号
全球最大华文占星网站-专业研究星座命理及测算服务机构
奇酷学院是奇酷动力旗下专注于Unity3D和HTML5/...
主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓
主演:尚格?云顿/乔?弗拉尼甘/Bianca Bree
主演:艾斯?库珀/ 查宁?塔图姆/ 乔纳?希尔
baby14岁写真曝光
李冰冰向成龙撒娇争宠
李湘遭闺蜜曝光旧爱
美女模特教老板走秀
曝搬砖男神奇葩择偶观
柳岩被迫成赚钱工具
大屁小P虐心恋
匆匆那年大结局
乔杉遭粉丝骚扰
男闺蜜的尴尬初夜
客服热线:86-10-
客服邮箱:&VR辅导老师&在VR应用中,360°全景图片是最简单的VR体验,感兴趣的同学也可以自己动手使用Unity3D来制作,参考王文刚老师写的制作流程总结。&在VR应用中,有一个相对简单的虚拟现实体验,那就是360°全景照片浏览器, 它可以使手机拍照的”全景”照片,& 得以”恢复”当时拍照的场景全貌,& 这个创意的确比单纯的2d图片更有震撼力一些,故本文就制作360全景照片的过程进行简单小结。&Step 1:预期需求可以通过手机的陀螺仪,在魔镜中查看360°图片;不用依赖任何蓝牙输入,仅通过Gaze Input进行选择下一张360°图片(盯着缩放图2s,进度条旋转完成后,就切换图片;用Gear VR的磁铁触发功能也可以实现选择下一张图片)。&Step 2: 准备材料硬件:暴风魔镜4& + 小米Note顶配版(2K屏幕)SDK:魔镜手柄、反畸变SDK_Unity版,或者&Google cardboard-unity,本文使用的是Googe CardBoard&Step 3: 创建材质球360°照片,展开看就是一个投影的2D照片,这个在初中学习世界地理的时候将类似投影球形地图到2维平面上,原理类似,只不过一个360°照片的投影失真会小很多。为了复原,需要建立一个3D Object\Sphere, 我们通过把图片贴到这个球体上,从内侧看效果。 然后拖放照片到Sphere上,球体放大10倍; 这个时候,发现一个问题在Game视图中看不到东西了,因为Camera没有在球心位置,修改Camera坐标为(0,0,0)位于球心。我们依然看不到图片,因为Spere默认用的是Unlit/Transparent Shade,他为了渲染高效,把背面给剔除了,而在这里,我们洽洽需要渲染背面,故得从新写个shade–关闭cull off。DoubleSided.Shader文件Shader “Unlit/DoubleSided”&{&&&& Properties&&&& {&&&&&&&& _Color(“Main Color”, Color) = (1,1,1,1)&&&&&&&& _MainTex(“Texture”, 2D) = “white” {}&&&& }&&&&&&&& SubShader&&&& {&&&&&&&& //Ambient pass&&&&&&&& Pass&&&&&&&& {&&&&&&&&&&&& Name “BASE”&&&&&&&&&&&& Tags {“LightMode” = “Always” /* Upgrade NOTE: changed from PixelOrNone to Always */}&&&&&&&&&&&& Color[_PPLAmbient]&&&&&&&&&&&& SetTexture[_BumpMap]&&&&&&&&&&&& {&&&&&&&&&&&&&&&& constantColor(.5,.5,.5)&&&&&&&&&&&&&&&& combine constant lerp(texture) previous&&&&&&&&&&&& }&&&&&&&& SetTexture[_MainTex]&&&& {&&&&&&&& constantColor[_Color]&&&&&&&& Combine texture * previous DOUBLE, texture *constant&&&& }&&&&&&& }&&&&&&& //Vertex lights&&&&&&&& Pass{&&&&&&&& Name “BASE”&&&&&&&& Tags {“LightMode” = “Vertex”}&&&&&&&& Material&&&& {&&&&&&&& Diffuse[_Color]&&&&&&&& Emission[_PPLAmbient]&&&&&&&& Shininess[_Shininess]&&&&&&&& Specular[_SpecColor]&&&& }&&&&&&& SeparateSpecular On&&&&&&&& Lighting On&&&&&&&&&cull off&&&&&&&& SetTexture[_BumpMap]&&&&&&&& {&&&&&&&&&&&& constantColor(.5,.5,.5)&&&&&&&&&&&& combine constant lerp(texture) previous&&&&&&&& }&&&&&&&& SetTexture[_MainTex]&&&&&&&& {&&&&&&&&&&&& Combine texture *previous DOUBLE, texture *primary&&&&&&&& }&&&& }&&& }&&&&&&& FallBack “Diffuse”, 1&}&替换了新的Shade后,效果好了很多了,唯一有问题的是我们看到的照片是反的,故修改Spere的.Z为-10.&通过在Unity.Editor上Play效果,已经很不错了,至此完成了大部分的工作,下面开始”移植”到VR设备上&Step 4: 添加VR Camera先禁用掉默认的MainCamera、light。然后添加VR摄像机—导入Google的CardboardSDKForUnity.unitypackage后,拖入CardboardMain.prefab到场景中。 这时候点击Play启动UnityEditor,即可看到双VR Camera的效果,点击调试快捷键:Alt + 移动鼠标,即可看到模拟的陀螺仪效果。这个时候打包为apk,安装到手机,用真机的陀螺仪体验,效果更酷。&Step 5: 添加Gaze-and-Tap 用户界面完成《Step 4: 添加VR Camera》后,实际上已经完成了360°全景照片功能,但是这个仅仅是一个demo,有一个致命的痛点:只有1张照片,如果我有4张照片,每次独立打包为一个apk,这显然不合理。 故需要做一些VR交互。这里,我们添加4个Plane。添加Plane,坐标修改如下:添加一个脚本,实现响应EventSystem,可通过2种办法方法1: 添加Event Trigger脚本,响应PointerEnter、PointerExit等方法,如图方法2:脚本直接继承IPointerDownHandler、IPointerExitHandler等接口,这个看起来更符合程序员胃口&我们通过控制Plan的Color.a来实现高亮选择,代码如下public void SetGazeAt(bool gazeAt)&&&& {&&&&&&&& Debug.Log(“SetGazeAt: ” + gazeAt);&&&&&&&& Renderer render = this.GetComponent&Renderer&();&&&&&&&& Color cor = render.material.&&&&&&&& cor.a = gazeAt ? 1f : 0.5f;&&&&&&&& render.material.color =&&&& }&另外,当Gaze 2s后,会动态替换material的Texture来实现替换360°照片,代码如下public void OnClick()&{&&&& Renderer renderSrc = this.GetComponent&Renderer&();&&&& Renderer renderDst = pano.GetComponent&Renderer&();&&&& Texture tex = renderSrc.materials[0].GetTexture(“_MainTex”);&&&& renderDst.materials[0].SetTexture(“_MainTex”, tex);&}&备注:360°全景照片,非常大,有好几M,这个对手机app来说会造成文件太大,实际商用中,需要采用AB(AssetBundle)实现动态从网络侧更新360图片,那样会更酷一些(轻量级)。&本文用到的完整的 demo Git地址:&Git.OSChina.net&昨天网上一个朋友问了一个VR问题:可否像3D Max那样,动态替换材质,如替换房间地板材质,实现全景照片替换?回答:不行,只能动态替换整个的全景照片;我昨晚细细思索,好像还是不行,除非建立3D模型,采用动态换装才能实现动态换360°照片中的大树、地板吧。本文来源:VR必修课StrongVR(StrongVR) 
 文章为作者独立观点,不代表大不六文章网立场
StrongVR虚拟现实孵化器热门文章最新文章StrongVR虚拟现实孵化器&&&&违法和不良信息举报电话:183-
举报邮箱:
Copyright(C)2016 大不六文章网
京公网安备78

我要回帖

更多关于 unity vr全景 的文章

 

随机推荐