1.Htc Vive安装教程

在把你的头显与控制器连到电脑上之前,我们首先要做的是先安好基站。基站的背面和低端各有一个固定孔,这样你可以把基站钉在墙上或者买支架将其撑起。大三角架安装示意图

Lighthouse基站会追踪头戴式显示器和控制器的感应器,请勿遮挡LED镜头。建议将基站安装在高于您头部的三角支架、天花板或墙上,为了追踪精确,请确保两个基站的直线距离不要超过5m.

上图中还有一个注意事项,就是基站的高度必须超过你的身高。然后用支架上的扣将其扣紧。基站安装好后上面的指示灯应该亮起表示工作正常,并且显示主基站B、辅基站C两个小字表示工作在无线同步模式(不是的话可能出现定位器无论怎样摆放都会出现定位十分不稳定的情况)。如果不用无线同步而是用线缆同步的话,需要用A通道,从后面按钮去调整工作通道。

设置好游玩区域后,移动基站位置或改变了角度,需要重新设置游玩区。为了获得最佳的体验,请移开游玩区中可能阻挡你自由行走的物体,移走或遮住镜子和可反射光的平面。下来就是要连头显和电脑了,这二者是通过重要组件联接器连到一起的,如下图。

联接器上明确写了哪边连VR哪边连PC。PC端电源小园口接墙或接线板(别搞反了)、USB方口接电脑USB口、HDMI六边形口接显卡;VR那端也是一样。因为各种口形状不同,基本不用担心会连错。

到开始游戏为止还有一些设置过程

设备连好了并不代表立刻就可以开始玩了,因为Vive不是台灯那么简单的设备,但它又没复杂到能引导一台计算机系统启动并自动做好各种设置的地步。必须通过在PC段做一些相应的配置,整套系统才能真正供游戏使用。

具体步骤如下:

1、 下载安装Steam程序,创建一个 Steam账户,然后前往“库”标签页来

安装SteamVR应用程序。

你可以创建一个SteamVR的快捷方式,或者进入Steam的客户端的主窗口点击VR按钮来启动。

2、 上述步骤安装如果没有出问题,打开SteamVR应用程序,五项设备应该显示绿色,准备就绪!

如果有设备检测不到,指示灯为红色,通常的解决办法是:

1 .确保你的硬件放置在游玩区内,拔下串流盒的电源,等待几秒再插上电源。如果还不行,那就重启SteamVR应用程序。

2.有时需要俩个手柄同时在定位区域才能显示出来。

3.手柄在没电时也可能会出现模型显示不出来的问题。

4.有可能需要跟新驱动,此时需要更新驱动的设备下方会出现感叹号,具体方法可以参考说明书。

5.头盔连接不上,可能是电脑HDMI,或USB口有问题。

3、 运行SteamVR应用程序,然后点击上图SteamVR标题旁边的“▼”按钮,运行房间设置(Room Setup)。

SteamVR的设置动画非常有趣且简明易懂,跟着做就是了。

手柄按键如下图

2.使用SteamVR 和VRKT进行开发

 1.导入SteamVR ,VRKT插件

可以直接从Unity 商店下载,注意版本问题。否则可能会报各种错,下面是Unity 5.6.6可用的俩个插件连接:

链接:https://pan.baidu.com/s/1hrxVmEllY-Sz7FU9WSgS7A 
  提取码:zccf

进入 VRKT示例场景 :

   002_Controller_Events 复制下面物体到自己的场景

把原场景摄像头删除了,运行一下基本就可以头盔看的场景了。平台会自动进行选择为SteamVR ,需要啥功能都可以复制粘      贴。

      003_Controller_SimplePointer 

发出一个射线:

 004_CameraRig_BasicTeleport   直线位移

   +  

   005_Controller_BasicObjectGrabbing  基本物体的抓取

物体:    +  手柄  

 006_Controller_UsingADoor    继承 Intervatable Object  use 方法的扩展,如何使用一个门。这里可以对自己的任何与物体交互     的需求进行扩展

物体:     +   手柄   

007_CameraRig_HeightAdjustTeleport      适应高度的位移

物体:  +       

008_Controller_UsingAGrabbedObject   使用物体的扩展   

重写可交互物体组件

009_Controller_BezierPointer   曲线位移

010_CameraRig_TerrainTeleporting 带地形的位移:   

      +

011_Camera_HeadSetCollisionFading   头盔碰撞物体后变色 ,忽略tag exculudeTeleport 物体

012_Controller_PointerWithAreaCollision    带有碰撞区域的射线

013_Controller_UsingAndGrabbingMultipleObjects   同时使用抓取和use 

014_Controller_SnappingObjectsOnGrab    含有固定点的抓取

015_Controller_TouchpadAxisControl    控制汽车移动,跳跃,复位。

GetComponent<VRTK_ControllerEvents>().TriggerAxisChanged += new ControllerInteractionEventHandler(DoTriggerAxisChanged);   // 
            GetComponent<VRTK_ControllerEvents>().TouchpadAxisChanged += new ControllerInteractionEventHandler(DoTouchpadAxisChanged);

GetComponent<VRTK_ControllerEvents>().TriggerReleased += new ControllerInteractionEventHandler(DoTriggerReleased);
            GetComponent<VRTK_ControllerEvents>().TouchpadTouchEnd += new ControllerInteractionEventHandler(DoTouchpadTouchEnd);

GetComponent<VRTK_ControllerEvents>().ButtonTwoPressed += new ControllerInteractionEventHandler(DoCarReset);  //菜单键

private void DoTouchpadAxisChanged(object sender, ControllerInteractionEventArgs e)
        {
            rcCarScript.SetTouchAxis(e.touchpadAxis);// 轴向值
        }

private void DoTriggerAxisChanged(object sender, ControllerInteractionEventArgs e)
        {
            rcCarScript.SetTriggerAxis(e.buttonPressure);    //压力值
        }

private void DoTouchpadTouchEnd(object sender, ControllerInteractionEventArgs e)
        {
            rcCarScript.SetTouchAxis(Vector2.zero);
        }

private void DoTriggerReleased(object sender, ControllerInteractionEventArgs e)
        {
            rcCarScript.SetTriggerAxis(0f);
        }

private void DoCarReset(object sender, ControllerInteractionEventArgs e)
        {
            rcCarScript.ResetCar();
        }

016_Controller_HapticRumble   手柄震动:

017_CameraRig_TouchpadWalking        用TouchPad 行走

018_CameraRig_FramesPerSecondCounter    显示FPS 

019_Controller_InteractingWithPointer     射线和物体交互  勾选最小面选项即可

020_CameraRig_MeshTeleporting           不规则Mesh 物体上的行走

021_Controller_GrabbingObjectsWithJoints   使用不同的链条关节,在手柄和可交互物体间添加各种连接方式

            有碰撞效果, 关节类似

           有碰撞效果,关节

         弹簧

       子物体,可能会穿透模型

   022_Controller_CustomBezierPointer   自定义Bezier 曲线

 023_Controller_ChildOfControllerOnGrab   设为子物体的抓取方式

   024_CameraRig_ExcludeTeleportLocations    选择人物在那些区域不能移动

 tag 是ExcludeTeleport 和挂这个名字的脚本都不能是可行走区域

025_Controls_Overview          都继承自VRTK_Control  的一些可交互物体 还没研究过

         

       

026_Controller_ForceHoldObject        初始化抓取一个物体

027_CameraRig_TeleportByModelVillage    抓取物体,移动到传送点

略:、、、、、、、

028_CameraRig_RoomExtender    家具  抽屉,盒子,,门  的实现

使用rotatorTrack  和Hinge joint 制作门

弹簧抽屉

029_Controller_Tooltips      手柄按键提示功能:

                 

030_Controls_RadialTouchpadMenu    环形菜单

                   

031_CameraRig_HeadsetGazePointer    头盔发射射线

。。。

032_Controller_CustomControllerModel     自定义手柄模型

033_CameraRig_TeleportingInNavMesh 使用Navmesh 导航控制可行走区域

034_Controls_InteractingWithUnityUI          和UI 交互

Canvas 上添加TRTK UIcanvas       手柄添加  VRTK UI Pointer       注册事件和PC一样,

包括:  射线交互方式,和碰撞交互方式,及不常用的头盔交互方式

     

035_Controller_OpacityAndHighlighting    手柄按键后,透明高亮处理

          

 037_CameraRig_ClimbingFalling   实现爬山,爬梯效果

                        每个攀爬点添加交互物体组件

038_CameraRig_DashTeleport       有运动过程的快速位移

039_CameraRig_AdaptiveQuality   设置一些场景内头盔的参数,如抗锯齿, 画面质量。

040_Controls_PanelMenu     3d 的Panle 示例 。。

041_Controller_ObjectSnappingToDropZones     带吸附固定区域的放置效果

物体         +       区域:  

 042_CameraRig_MoveInPlace         通过按下按钮,上下,挥动手柄实现人物的移动控制

           

043_Controller_SecondaryControllerActions   物体交互时的:二级连动方式 :三种

1.双手持握                                                       2 双手放大                                               3 可以双手交换物题                                   如:               冲锋枪                                                         地图                                                            灭火器

                          

3 Tracker 的使用:

1 简介:

VIVE Tracker是VIVE VR系列产品的配件,可以通过绑定现实世界中的物体,来追踪物体的位置。从使用的角度来看,它更像是一个阉割版的手柄,因为它具备手柄一样的位置追踪而没有实体按键,由于体积小巧和便携,它可以被绑定在任意物体上,将现实的物体带入VR环境。

基站可以追踪多个Tracker,所以场景中可以存在多个Tracker ,外观结构  ,如下图,从右往左:

位置1:LED指示灯,用来指示Tracker的状态,与手柄相同,如蓝色灯闪烁,则表示该设备尚未配对;如绿色灯亮,则开始工作并正常;如红灯,则表示电量低。

位置2:设备开关。

位置3:与手柄类似,用来接收基站信号的传感器。

位置4.1:1/4英寸螺丝孔,可以将其固定在标准三脚架云台上,与单反相机同。

位置4.2:用来加强稳定的针槽。

位置4.3:弹簧针,6位。

位置5:USB接口,一方面用来充电,一方面用来与PC通信,比如更新固件等。

关于4.3位置的6位弹簧针,玩家可以通过自己制作一些电器开关之类的外设与其通信,发送电信号,达到像手柄一样向PC发送按键触发事件的效果。下图为6个针位分别对应的按键信号名称。由此可见,的确是个阉割版的手柄,或者说,像是一个没有按键只有键位开关的键盘。

6针位弹簧针

2 使用场景

Tracker有很多应用场景,首先比较常用的就是追踪物体,你可以将它绑定到一些物体上,比如球棒、球拍、球杆、座椅等等,在传统行业里,可以绑定一些维修用的工具,扳手、锤子等,从而达到更加真实的体验。

另外,我们知道Tracker有弹簧针和USB 端口,还可以制作一些符合特定使用场合的外设,以更加符合外设的使用习惯,比如现在比较典型的PPGun,通过USB端口通信,将原来手柄的按键映射到了枪体相关的功能部件上,如Trigger键对应着枪的扳机,Touchpad映射到了枪体的摇杆等等。

另外,Tracker可以作为动作捕捉设备。我们知道,以现有的VR设备,只有手柄和头盔,很难实现全身的动作捕捉,那么使用Tracker,配合一些反向动力学插件,比如FINAL-IK,我们就能实现在VR中的全身动作捕捉。基站可以跟踪多个Tracker设备,所以就可以将多个设备绑定在人的关键部位,比如双脚、膝盖、腰部等等,设备越多,捕获的动作就越精确。

还有做好的插件:https://assetstore.unity.com/packages/tools/animation/mocap-vr-131687

https://github.com/JamesBear/vive_ik_demo

参考资料:http://gad.qq.com/article/detail/27127

初次使用Tracker

Tracker包装中包含一个无线接收器,当你需要在使用手柄的同时使用Tracker,那么需要将此无线接收器连接到PC,用来接收Trakcer的信号,在使用时,需要将两个手柄同时打开;如果不使用无线接收器,则系统将Trakcer认为是一个像手柄一样的控制器。

初次使用Tracker,需要进行设备的配对,当按下开关以后,蓝色灯会闪烁,表示设备正在等在配对,在SteamVR Runtime中右键(注意,这是是SteamVR运行时,我们在之前的课时里也区分过SteamVR SDK和SteamVR运行时),选择“设备”-“配对控制器”完成设备的配对。配对成功后,即可看到代表了Tracker的图标,如下图。

    在Unity中使用Tracker  

推荐视屏:https://www.youtube.com/watch?v=MCiGpOSZM8A&t=3s

下载开发指南: https://developer.vive.com/cn/vive-tracker-for-developer/

学习下:https://blog.csdn.net/qq_15029743/article/details/83278870

youtuobe 貌似有想关视屏

1  如下层级创建空物体, 添加SteamVR_TrackedObject 脚本,下方放置要跟踪的物体模型,方便调整位置

                  

2.为将空物体拖拽值如下图说示例的物体上,trancker 实现跟踪

.           3

3 .外接按键

目前市面上没有固定的外接方式

1 .可以使用USB通讯协议,按开发文档发送格式数据,如PPGUN

额。。。

2.使用PogoPin  高低电频控制,从而确定对应按键 ,依据参考书或者上图的按键,用一个根导线,接通地线和按键对应的引脚,进行按键映射测试:

方法1:

1.可能由于只tracker 作为控制器输入时,HTC只能最多支持同时俩个手柄作为控制器,因此,需要关闭一个或者俩个控制器的连接,在进行测试才能得到测技结果,否则可能测试没有输出结果。

                 

2.把脚本添加到,tracker 和俩个控制器,物体上,进行测试。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TrackerPogoPIN : MonoBehaviour {private SteamVR_TrackedObject trackedObject;[SerializeField]private bool trigger;[SerializeField]private bool trackpad;[SerializeField]private bool grip;[SerializeField]private bool menu;// Use this for initializationvoid Start () {trackedObject = GetComponent<SteamVR_TrackedObject>();}// Update is called once per framevoid Update () {var device = SteamVR_Controller.Input((int)trackedObject.index);trigger = device.GetPress(Valve.VR.EVRButtonId.k_EButton_SteamVR_Trigger);grip = device.GetPress(Valve.VR.EVRButtonId.k_EButton_Grip);trackpad = device.GetPress(Valve.VR.EVRButtonId.k_EButton_SteamVR_Touchpad);menu = device.GetPress(Valve.VR.EVRButtonId.k_EButton_ApplicationMenu);}
}

3 测试结果。。。

                                   

方法2:

1.将tracker 使用USB 数据线连接到电脑,使用控制器  VIVE Tracker Role Changer 1.0 将tracker 转换为控制器,(不需要是可以再转回来),直接进行按键测试。

VIVE Tracker Role Changer 1.0 软件链接:https://pan.baidu.com/s/1FhSI-LArim0JAS6Mhajqng 
提取码:kx8p

2。运行软件后,tracker会被识别为控制器。同样方法测试tracker ,结果和上图一致。

HTC VIVE 安装,SteamVR,VRTK插件的使用,HTC VIVE Tracker的使用和外接按键测试相关推荐

  1. Unity3D 开发 HTC Vive安装及如何连接电脑详细教程(全程图解)

    HTC Vive安装及如何连接电脑详细教程: 在市场上的诸多VR产品当中,htc Vive无疑是体验最佳的设备之一,不过在享受高端硬件带来美妙沉浸感之前,必须要经过一段略微复杂的"手续&qu ...

  2. SteamVR+VRTK+Htc Vive入门

    5月份为了做学校的校庆VR被迫摸了VR从开始接触到能够简单的做出个项目差不多半个月时间 基本天天下课就钻一号机上冲VR一整天都带这个Vive emmmm现在想来有种看傻逼的感觉(不是 因为VRTK不支 ...

  3. htc vive 安装和使用

    本篇简单介绍htc vive的安装和使用. htc vive安装 第一次使用htc vive你可以在官网 https://www.viveport.com/ 下载viveport按照提示安装htc v ...

  4. Unity中使用SteamVR Plugin时不显示HTC Vive手柄控制器的解决办法

    Unity中使用SteamVR Plugin时不显示HTC Vive手柄控制器的解决办法 出错原因: 开发应用程序时用的SteamVR Plugin版本太高(1.2.1及以后)(也可以说是SteamV ...

  5. HTC Vive安装详细流程

    近日一项调查表明,HTC Vive的销量已达10万,这是一个相当惊人的数字,这也表示HTC Vive成为最受欢迎的VR头显,想不到HTC在手机领域被三星,苹果挤压出局后,在VR领域重新找回了自己的位置 ...

  6. unity+steamVR+VRTK开发环境的搭建

    目录 unity毕设之搭建VR开发环境 ***HTC VIVE环境配置*** ***Steam VR环境配置*** ***创建功能导入插件检查环境*** ***创建VR交互环境*** ***测试VR环 ...

  7. VRTK插件之与UGUI的交互

    在HTC的VRTK插件里UI的交互最常见的就是依靠手柄发出一条射线然后和界面进行交互. 在VRTK里发出射线的脚本有两个VRTK_SimplePointer脚本和VRTK_BezierPointer脚 ...

  8. 安装flex4 plug-in插件的时候遇到老是在起始处安装不起

    2019独角兽企业重金招聘Python工程师标准>>> 安装flex4 plug-in插件的时候遇到老是在起始处安装不起 解决方案:1.有可能你安装的目录有中文字符 2.你放安装文件 ...

  9. SublineText 3 安装 Package Control插件

    什么是Package Control: Package Control是 sublineText的一个插件管理工具,安装了这个插件可以对能方便对插件的安装,卸载等操作 下载Package Contro ...

最新文章

  1. linux下查看nginx,apache,mysql,php的编译参数
  2. 腾讯云 cloudbase 云开发使用笔记
  3. Django【进阶篇 】
  4. Source Insight checking for modified files 卡顿(Reload externally modified files automatically取消)(未解决)
  5. Android实现数据存储技术
  6. 一个菜鸟从高一到大二的作品整理
  7. Linux运行jnetpcap程序(含配置步骤)
  8. 实力吊打国家黑客:从密码喷洒到完全控制网络只需几天
  9. 剑指offer面试题21. 调整数组顺序使奇数位于偶数前面(双指针)
  10. 声音加速_车子换机油后噪音变大加速无力,到底是什么原因,不少车主吃过亏...
  11. Windows XP英文版安装中文语言包来解决无法显示中文的方法(转载)
  12. 7 基于matplotlib的python数据可视化——导入Excel数据制作饼图
  13. 阿里云对象存储OSS使用
  14. ios 上h5点击无效_ios h5 点击事件失效及点击延迟
  15. BERT Word Embeddings 教程
  16. Mac使用Aria2下载百度网盘,突破下载限速的方法教程
  17. 项目十大管理之成本管理
  18. JAVA消息(第一篇)JMS 很重要!!!!包教包会!!不闹!!!下一篇-AMQP(wire-level protocol)
  19. 《狂人日记》 解读|读后感
  20. 【Python入门系列】一个简单的数据分析问题——用Pandas揭秘美国选民的总统喜好

热门文章

  1. 《视觉slam十四讲》初学小白笔记(10)
  2. 洛谷P2437 蜜蜂路线
  3. 对于LSB的理解(位的LSB、模数转换的LSB)
  4. 解决用VC6.0编写的软件在另一台电脑编译时无APPMODUL.CPP源文件问题
  5. wps底纹去不掉_WPS广告太多,关又关不掉,其实它有无广告的版本
  6. 【oracle学习】2.集合运算
  7. 锁定计算机按键精灵运行,最新按键精灵脚本代码大全 按键精灵命令运行方法...
  8. HR面/综合面系列:职业相关
  9. 运维工程师的工作内容有哪些?能详细列举一下吗?
  10. 十进制100转换成八进制是多少?