FPS中受伤UI在VR游戏中的实现思路
FPS中受伤UI在VR游戏中的实现思路
希望实现的效果
这几天一直在尝试各种解决方案,现在算是不完美的解决啦,记录一下心路历程,思路有了算法都比较简单。
V_1
玩家胶囊体指向的方向作为正方向,计算出受击点位置在玩家胶囊体指向的方向的相对坐标系下的位置,把位置点做XY平面的投影,得直线ShadowXY,求ShadowXY,与指向方向在XY平面投影直线的夹角A,最后把A作为旋转UI的角度。
但是!玩家的位置事实上是玩家的HMD,那么就不能使用胶囊体啦,接下来V_2。
V_2
获取玩家摄像机Transform,计算出受击位置在玩家摄像机Transform的相对坐标,RLoc,和上面一样做XY平面的投影,计算夹角。
但四!这种情况成立的情况,仅限玩家的视角是水平的,抬头和低头都会让UI的显示方向错误!
V_3
磷光一闪,可能是大脑做的最后挣扎,我感觉UI的方向显示本质上来说,是反映一个点在玩家视野的哪个位置,那么一个点,相对于你的眼睛正方向有多少个方位呢?
“老师我知道,是14个”
- 小明
正方向有6个,分别为:
正前
正后
正左
正右
正上
正下
其他组合8个,分别为
前左上
前左下
前右上
前右下
后左上
后左下
后右上
后右下
那么在计算出,攻击点位置,相对于摄像机坐标系的坐标之后,判断方位,根据方位计算出合理的UI角度,就是个简单易懂的方案了。
每一种方位都有特定的角度。
最后的效果
相对坐标转换节点
最后效果,还可以接受,如果有更好的方案,希望您能指导指导我,谢谢。
FPS中受伤UI在VR游戏中的实现思路的更多相关文章
- Unity优化方向——优化Unity游戏中的脚本(译)
原文地址:https://unity3d.com/cn/learn/tutorials/topics/performance-optimization/optimizing-scripts-unity ...
- 走进VR游戏开发的世界
http://geek.csdn.net/news/detail/76504 我们组在2014年下半年尝试开发了一款Xbox One平台的体感游戏,2015年上半年进行收尾工作的同时,结合之前积累的体 ...
- Unity使用UGUI进行VR游戏的界面开发
原文链接:http://gad.qq.com/article/detail/7181505 本文首发腾讯GAD开发者平台,未经允许,不得转载 我不知道有多少同学是跟我一样,在开发VR游戏中,是使用的面 ...
- 虚拟现实外包公司—VR游戏你不知道的以及你该知道的WebVR
VR基础——原理其实很简单 我们地球人之所以能够看到立体的景物,是因为双眼可以各自独立看东西,也就是左眼只能看到左眼的景物,而右眼只能看到右眼的景物.因为人类左右两眼有间距,造成两眼的视角有些细微的差 ...
- GOOGLE VR SDK开发VR游戏,VR播放器之中的一个
近期一年来,VR虚拟现实和AR增强现实技术的宣传甚嚣尘上.事实上VR,AR技术非常早就有了,一直没有流行开来.不可否认价格是影响技术推广的最大壁垒. 谷歌对VR最大的贡献是提供了便宜的谷歌眼镜,依照G ...
- 在FPS游戏中,玩家对音画同步感知的量化与评估
前言 在游戏测试中,音画同步测试是个难点(所谓游戏音画同步:游戏中,音效与画面的同步程度),现在一般采用人工主观判断的方式测试,但这会带来2个问题: 无法准确量化,针对同一场景的多次测试结果可能会相反 ...
- 在Unity中创建VR游戏
添加VR插件为了为您选择的平台创建VR游戏,我们需要下载几个插件.出于本教程的目的,我将向您展示如何上传到Android平台.要上传到iOS,您需要下载 Xcode. 现在让我们下载Unity的Goo ...
- 对使命召唤OL游戏中队友能相互救治的动作设定的感慨
很偶然的在网吧看到有人在玩一个枪战游戏,场景特别真实特别吸引人,后来留意到是使命召唤OL.我使用QQ帐号(是腾讯代理)玩了一次,觉得游戏做的确实精致,子弹打击效果和人物被子弹击中的效果特别真实,大家可 ...
- 关于VR开发中的穿墙问题随想
在VR开发中,用户将以第一人称的视角进入虚拟世界,即用户同时身处两个坐标系:1. 现实世界坐标系(如房间的坐标系),用户的身体处于这个坐标系 2. VR世界坐标系,用户的感官处于这个坐标系,即用户觉得 ...
随机推荐
- easycwmp的交叉编译
原创作品,转载请注明出处 copyright:weishusheng 2015.3.18 email:642613208@qq.com 平台: Linux version 2.6.32-279.e ...
- 获取公网IP
private static string GetIP() { string tempip = ""; try { WebRequest wr = WebRequest.Creat ...
- 【转】怎么让VS2015编写的程序在XP中顺利运行
1. 概述 默认配置下VS2015编写的应用程序只能在Win8/Win10上运行.但幸好还保留了生成XP程序的设置项.XP和Win2003的用户还是大量存在的,我们程序软件的发布不能不考虑他们.另外X ...
- python之错误和异常
错误 分为语法错误和逻辑错误,如下: 语法错误指示软件的结构上有错误,导致不能被解释器解释或编译器编译. 逻辑错误可能是由于不完整或是不合法的输入所致,或者是无法生成.计算.或是输出结果需要的过程无法 ...
- java读取文件内容
获取文件内容 picurl = "http://www.baidu.com/data.txt"; URL urlfile = new URL(picurl); BufferedRe ...
- IntentService
http://developer.android.com/training/run-background-service/index.html IntentService 只是简单的对Service做 ...
- powerdesigner导出word
1.网上下载word模板,或者是自制模板 2.报告->导出,选择刚才下载的模板,导出即可
- ruby生成随机成绩
生成16个86到99范围内的值,并且每个成绩打印一行,这样就可以复制粘贴到Excel中! 16.times {|x| puts (86..99).to_a.sample}
- Building GCC 4.1.2 in CentOS 7 for Maya API development
Following the official guid: http://help.autodesk.com/cloudhelp/2015/ENU/Maya-SDK/files/Setting_up_y ...
- Use Visual studio 2010 build Python2.7.10
http://p-nand-q.com/python/building-python-27-with-vs2010.html