开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

教程分享

关注:690

当前位置:游戏蛮牛 技术专区 教程分享

查看: 2672|回复: 15

[入门教程] 手机虚拟现实游戏开发入门教程

[复制链接]  [移动端链接]
抢楼 抢楼 本帖为抢楼帖,欢迎抢楼! 
3偶尔光临
266/300
排名
8877
昨日变化
8

2

主题

82

帖子

266

积分

Rank: 3Rank: 3Rank: 3

UID
54802
好友
0
蛮牛币
548
威望
0
注册时间
2014-11-11
在线时间
88 小时
最后登录
2017-10-12
QQ
发表于 2015-4-29 12:59:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
在qq群看到很多朋友对开始制作移动端的虚拟现实游戏感到迷茫。我接触这个也有一段时间了,在cardboard刚出的时候自己也尝试着做了一个简单的虚拟现实的开发环境,向大家提供一点入门的经验(语死早凑活着看..还有我水平很渣。。所以发的入门教程,大神勿喷..)

我说的是移动端的游戏开发,也就是暴风魔镜之类的手机眼镜盒子可以玩的游戏,不是oculus rift的。

经过这段时间的发展,现在已经有不少sdk可以直接使用了,比如谷歌就有cardboard的sdk(这个需要翻墙下,推荐用这个,但是据说新版的屏蔽了点击),高通也有针对增强现实的eyewear的sdk(就是给gearVR做的,可以在现实场景中显示3d虚拟物体并且可以用虚拟按钮提供交互,搜vuforia)oc也有针对gearVR的sdk,大家可以选择自己需要的下(不要问我要..我们这vpn按流量算的,我自己也没下..想下的翻墙去下)


下面是正题,重点说一说如果自己去实现这个要怎么做。
我们要解决的就是两个问题
1.让眼睛看到的虚拟物体是3d的
2.让摄像机跟着头转动

首先来说1.的解决,要让眼睛看到的东西是3d的只需要两只眼睛看到的图像有一定差别(大脑会自动给你处理成3d)
假设我们在unity中放两个摄像机A和B,先让相机A和B看到的东西相同,然后把B往右平移一小段距离(很小就行),那么A与B看到的图像就像是现实中左右眼看到的图像一样产生了差别,之后再把A相机在屏幕左边渲染,B相机在屏幕右边渲染,这样左眼只看到A相机的图像,右眼只看到B相机的图像,打包成apk后,戴上暴风魔镜,我们看到的东西就是3D的了。
步骤如下
1.创建两个在相同位置的相机

2.把CameraB向右平移一点距离


3.把CameraA参数如下设置:View Rect 的W改为0,5

4.CameraB的设置,w与x也改为0.5


5.把CameraB设置成A的子物体(目的就是让B跟着A一起转,为下一步做准备)

这一步到此完成
接下来实现第二步:让相机跟着头一起转
现在的手机都是带陀螺仪的,而Unity又可以直接使用陀螺仪的数据,所以这一步基本上还没做什么就已经解决了,就开启陀螺仪,然后让camera的rotation=gyro的attitude就行
贴上不知道哪位大大的代码(前面那一大段都是在为手机横屏竖屏做适配,只有最后一点是真正的转)
把这个挂在cameraA上就好啦
private var gyroBool : boolean;
private var gyro : Gyroscope;
private var rotFix : Quaternion;


function Start() {

var originalParent = transform.parent; // check if this transform has a parent
var camParent = new GameObject ("camParent"); // make a new parent
camParent.transform.position = transform.position; // move the new parent to this transform position
transform.parent = camParent.transform; // make this transform a child of the new parent
camParent.transform.parent = originalParent; // make the new parent a child of the original parent

gyroBool = Input.isGyroAvailable;

if (gyroBool) {

gyro = Input.gyro;
gyro.enabled = true;

if (Screen.orientation == ScreenOrientation.LandscapeLeft) {
camParent.transform.eulerAngles = Vector3(90,90,0);
} else if (Screen.orientation == ScreenOrientation.Portrait) {
camParent.transform.eulerAngles = Vector3(90,180,0);
}

if (Screen.orientation == ScreenOrientation.LandscapeLeft) {
rotFix = Quaternion(0,0,0.7071,0.7071);
} else if (Screen.orientation == ScreenOrientation.Portrait) {
rotFix = Quaternion(0,0,1,0);
}
//Screen.sleepTimeout = 0;
} else {
print("NO GYRO");
}
}


function Update () {
if (gyroBool) {
var camRot : Quaternion = gyro.attitude * rotFix;
transform.localRotation = camRot;
}
}
到此就完成了。
之后需要开车啊或者人走啊飞机啊啥的,把cameraA变成车的,人头的,飞机的子物体就行

但是要说明一点,把手机绑头上以后能用的交互方式只剩转头了,连走路都不行。想交互还得买个蓝牙手柄
虚拟现实要用手机;虚拟现实的开发;虚拟现实游戏的出现;虚拟现实游戏开发;虚拟现实怎么入门;unity和高通增强现实;oculus unity 教程;unity 陀螺仪相机;oculus unity sdk;暴风魔镜与unity;vuforia unity sdk;3d虚拟现实眼镜的手机;魔镜虚拟现实3d;魔镜虚拟现实;谷歌虚拟现实眼镜好吗;虚拟现实长线买什么;虚拟现实走路;虚拟现实结合摄像机;虚拟现实眼镜gearvr;虚拟现实眼睛的手机;虚拟现实眼睛是什么;虚拟现实暴风魔镜;虚拟现实暴风;虚拟现实手机屏;虚拟现实手机应用;虚拟现实手机啥意思;虚拟现实手机;虚拟现实对手机要求;手机虚拟现实;手机上虚拟现实怎么用;加个手机就是虚拟现实;什么是虚拟现实手机;什么叫虚拟现实手机;虚拟现实用什么开发;虚拟现实怎么开发;虚拟现实开发;虚拟现实应用开发;如何开发虚拟现实应用;如何开发虚拟现实;虚拟现实游戏有哪些;虚拟现实游戏是什么;虚拟现实游戏怎么样;虚拟现实游戏应用;虚拟现实游戏吧;虚拟现实游戏又叫啥;虚拟现实游戏什么意思;虚拟现实游戏;虚拟现实应用游戏;真正的虚拟现实游戏;现在的虚拟现实游戏;现在有虚拟现实游戏吗;游戏和虚拟现实;有虚拟现实游戏吗;在虚拟现实游戏;什么是虚拟现实游戏;怎么开发虚拟现实游戏;如何开发虚拟现实游戏;虚拟现实入门;unity 高通 增强现实;unity oculus 教程;unity相机陀螺仪;unity oculus sdk;oculus sdk unity;unity暴风魔镜;vuforia sdk unity;3d虚拟现实眼镜放手机;虚拟现实手机3d眼镜;手机3d虚拟现实眼镜;虚拟现实3d魔镜;虚拟现实魔镜;谷歌虚拟现实眼镜;买哪种虚拟现实好;可以走路虚拟现实;虚拟现实摄像机是什么;虚拟现实摄像机;gearvr虚拟现实眼镜;虚拟现实眼睛手机;虚拟现实眼睛怎么用的;虚拟现实眼睛又什么用;虚拟现实眼睛;虚拟现实的眼睛;虚拟现实对眼睛;比较好的虚拟现实眼睛;哪种虚拟现实眼睛好;暴风魔镜虚拟现实;暴风魔镜有虚拟现实;暴风魔镜与虚拟现实;暴风虚拟现实;虚拟现实对手机屏幕;大神3d虚拟现实
更多图片 小图 大图
组图打开中,请稍候......

本帖被以下淘专辑推荐:


回复

使用道具 举报

7日久生情
3175/5000
排名
1079
昨日变化
2

71

主题

724

帖子

3175

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
45146
好友
6
蛮牛币
279
威望
0
注册时间
2014-9-16
在线时间
1562 小时
最后登录
2017-10-19
QQ
发表于 2015-4-29 16:20:42 | 显示全部楼层
你这图也太小了吧{:86:}{:86:}

回复

使用道具 举报

3偶尔光临
185/300
排名
9000
昨日变化
3

0

主题

27

帖子

185

积分

Rank: 3Rank: 3Rank: 3

UID
95535
好友
0
蛮牛币
246
威望
0
注册时间
2015-4-26
在线时间
66 小时
最后登录
2017-8-17
QQ
发表于 2015-4-29 17:06:11 | 显示全部楼层
好厉害,最近正在学习做收集眼镜的游戏,顶楼主!

回复

使用道具 举报

2初来乍到
147/150
排名
9349
昨日变化
5

0

主题

27

帖子

147

积分

Rank: 2Rank: 2

UID
89531
好友
0
蛮牛币
230
威望
0
注册时间
2015-4-5
在线时间
35 小时
最后登录
2017-5-7
发表于 2015-4-30 00:07:55 | 显示全部楼层
看一下,学习一下。。。。。。

回复

使用道具 举报

7日久生情
2489/5000
排名
323
昨日变化

1

主题

110

帖子

2489

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
46282
好友
2
蛮牛币
4082
威望
0
注册时间
2014-9-23
在线时间
928 小时
最后登录
2017-10-20
QQ
发表于 2015-4-30 09:14:37 | 显示全部楼层

点击可以看大图,而且能看清的哦

回复

使用道具 举报

排名
21852
昨日变化
17

0

主题

28

帖子

53

积分

Rank: 2Rank: 2

UID
63211
好友
0
蛮牛币
4
威望
0
注册时间
2014-12-23
在线时间
13 小时
最后登录
2016-2-24
QQ
发表于 2015-5-1 14:32:15 | 显示全部楼层
然后让camera的rotation=gyro的attitude就行,你好,前面这句话不懂,求解

回复

使用道具 举报

排名
21852
昨日变化
17

0

主题

28

帖子

53

积分

Rank: 2Rank: 2

UID
63211
好友
0
蛮牛币
4
威望
0
注册时间
2014-12-23
在线时间
13 小时
最后登录
2016-2-24
QQ
发表于 2015-5-1 14:33:47 | 显示全部楼层
还有那些代码直接复制然后新建一个script,再黏贴进去吗?

回复

使用道具 举报

3偶尔光临
266/300
排名
8877
昨日变化
8

2

主题

82

帖子

266

积分

Rank: 3Rank: 3Rank: 3

UID
54802
好友
0
蛮牛币
548
威望
0
注册时间
2014-11-11
在线时间
88 小时
最后登录
2017-10-12
QQ
 楼主| 发表于 2015-5-1 19:54:38 | 显示全部楼层
design_hy 发表于 2015-5-1 14:32
然后让camera的rotation=gyro的attitude就行,你好,前面这句话不懂,求解

attitude是手机的姿态,你了解一下四元数和欧拉角再把input.gyro.attitude在ui里显示出来,转着手机看看他的变化就能很好的理解了

回复

使用道具 举报

排名
38787
昨日变化
154

0

主题

3

帖子

13

积分

Rank: 1

UID
96797
好友
0
蛮牛币
11
威望
0
注册时间
2015-5-1
在线时间
6 小时
最后登录
2017-6-22
发表于 2015-5-2 21:09:22 | 显示全部楼层
好东西好东西

回复

使用道具 举报

5熟悉之中
963/1000
排名
2334
昨日变化
2

2

主题

299

帖子

963

积分

Rank: 5Rank: 5

UID
30704
好友
0
蛮牛币
2868
威望
0
注册时间
2014-6-22
在线时间
190 小时
最后登录
2017-4-7

VIP

发表于 2015-5-8 08:15:55 | 显示全部楼层
                       给赞声

回复

使用道具 举报

排名
790
昨日变化

2

主题

292

帖子

1719

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
11079
好友
1
蛮牛币
3504
威望
0
注册时间
2013-12-25
在线时间
421 小时
最后登录
2017-10-11
发表于 2015-5-9 11:53:41 | 显示全部楼层
很好的教程,支持一下,感谢分享

回复

使用道具 举报

排名
32192
昨日变化
22

0

主题

19

帖子

34

积分

Rank: 1

UID
120920
好友
0
蛮牛币
17
威望
0
注册时间
2015-9-3
在线时间
9 小时
最后登录
2017-2-22
发表于 2015-9-3 18:21:46 | 显示全部楼层
哇,好,这个不错,哇,好,这个不错,哇,好,这个不错,哇,好,这个不错,哇,好,这个不错,哇,好,这个不错

回复

使用道具 举报

5熟悉之中
982/1000
排名
1863
昨日变化
1

0

主题

87

帖子

982

积分

Rank: 5Rank: 5

UID
114123
好友
0
蛮牛币
2705
威望
0
注册时间
2015-7-18
在线时间
317 小时
最后登录
2017-10-15
QQ
发表于 2015-11-30 13:33:55 | 显示全部楼层
很好的教程,支持一下,感谢分享

回复

使用道具 举报

5熟悉之中
982/1000
排名
1863
昨日变化
1

0

主题

87

帖子

982

积分

Rank: 5Rank: 5

UID
114123
好友
0
蛮牛币
2705
威望
0
注册时间
2015-7-18
在线时间
317 小时
最后登录
2017-10-15
QQ
发表于 2015-11-30 13:34:18 | 显示全部楼层
很好的教程,支持一下,感谢分享

回复

使用道具 举报

5熟悉之中
982/1000
排名
1863
昨日变化
1

0

主题

87

帖子

982

积分

Rank: 5Rank: 5

UID
114123
好友
0
蛮牛币
2705
威望
0
注册时间
2015-7-18
在线时间
317 小时
最后登录
2017-10-15
QQ
发表于 2015-11-30 13:34:37 | 显示全部楼层
很好的教程,支持一下,感谢分享
[发帖际遇]: matrix889 在网吧通宵,花了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表