#创新实训#VR漫游项目汇报3

原创 2018年04月15日 18:07:36

这一周,成员们按照已经分配好的任务开始了各自的学习安排。以下是学习报告——

##1.总结整理关于游戏优化相关的知识——加强对项目的优化意识

VR游戏的流畅度是影响用户体验的一个很重要的因素,而且,三区的场景模型也是一个有很多面的模型,运行起来会相当占资源,为了解决运行卡顿的问题,就必须在代码以及系统的搭建中时刻注意对资源的合理使用。




接着有针对性的学习了关于不同优化技术的知识



————————————————————————————————————————————————————————

##2.基于VRTK 的 Unity HTC Vive模型拼接 (组件的抓取交互)

在 VR虚拟场景中,设想做一个三维物体的展示功能,通过手柄的交互,抓取物体中的一部分,可以各个角度观察。方便在项目展示模块中,模型等资源的展示。

VRTK插件中,提供了VRTK_InteractGrab和VRTK_InteractableObject。当需要物体和手柄进行交互的时候,会使用到该脚本,要将VRTK_InteractableObject脚本绑定到交互的物体上;Interact Grab脚本绑定在【CameraRig】下的手柄游戏对象上,并且手柄游戏对象必须绑定VRTK_ControllerEvents脚本,来监听手柄上按钮的事件,抓取/释放可交互物体等。它监听的是AliasGrabOn和AliasGrabOff事件,当这两个事件被触发,那么本脚本内委托给这两个事件的方法就会被回调。

Touch Options:触摸交互Highlight On Touch:如果勾选,这个对象在控制器触摸它时就会高亮。

Touch Highlight Color:对象被触摸时高亮的颜色。

Rumble On Touch:控制器触碰对象时触发振动反馈,x表明时长,y表明震动强度。(x和y将来会被自定义编辑器代替)。Allowed Touch Controllers:允许交互的手柄,Both表示允许两个手柄任一个交互。

Hide Controller On Touch: 是否覆盖手柄相关设置 (触碰物体时隐藏手柄)。也可以选择总是隐藏或总是不隐藏。

Is Grabbale:决定对象是否能被抓握。


————————————————————————————————————————————————————————

##3.进行了项目代码管理软件github的学习

gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。

国内的话推荐码云管理自己的项目,能拥有更多的存储空间以及更快的速度。如果想要系统的学习可以参照菜鸟教程进行学习。或者在git-tower中学习也是可以的。

https://img-blog.csdn.net/20180410141609513?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2Nhcm90YWRyZWFt/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

——————————————————————————————————————————————————

##4.Unity使用百度云语音识别


在unity中新建一个脚本

private string token;                           //access_token  
    private string cuid = ";        //用户标识  
    private string format = "wav";                  //语音格式  
    private int rate = 8000;                        //采样率  
    private int channel = 1;                        //声道数  
    private string speech;                          //语音数据,进行base64编码  
    private int len;                                //原始语音长度  
    private string lan = "zh";                      //语种  
   
    private string grant_Type = "client_credentials";    
    private string client_ID = ";                       //百度appkey  
    private string client_Secret = ";                   //百度Secret Key  
   
    private string baiduAPI = "http://vop.baidu.com/server_api";  
    private string getTokenAPIPath = "https://openapi.baidu.com/oauth/2.0/token";  
   
    private Byte[] clipByte;  
   
    /// <summary>  
    /// 转换出来的TEXT  
    /// </summary>  
    public static string audioToString;  
   
    private AudioSource aud;  
    private int audioLength;//录音的长度 
以上是需要声明的变量。其中AppKey和SecretKey需要你注册成为百度的开发者,然后再应用管理中去看
/// <summary>  
    /// 获取百度用户令牌  
    /// </summary>  
    /// <param name="url">获取的url</param>  
    /// <returns></returns>  
    private IEnumerator GetToken(string url)  
    {  
        WWWForm getTForm = new WWWForm();  
        getTForm.AddField("grant_type", grant_Type);  
        getTForm.AddField("client_id", client_ID);  
        getTForm.AddField("client_secret", client_Secret);  
   
        WWW getTW = new WWW(url, getTForm);  
        yield return getTW;  
        if (getTW.isDone)  
        {  
            if (getTW.error == null)  
            {  
                token = JsonMapper.ToObject(getTW.text)["access_token"].ToString();  
                StartCoroutine(GetAudioString(baiduAPI));  
            }  
            else  
                Debug.LogError(getTW.error);  
        }  
    }  
上面这段代码用于获取百度的Token,有了Token才有权使用API。

然后是发送转换请求的方法:
/// <summary>  
    /// 把语音转换为文字  
    /// </summary>  
    /// <param name="url"></param>  
    /// <returns></returns>  
    private IEnumerator GetAudioString(string url)  
    {  
        JsonWriter jw = new JsonWriter();  
        jw.WriteObjectStart();  
        jw.WritePropertyName("format");  
        jw.Write(format);  
        jw.WritePropertyName("rate");  
        jw.Write(rate);  
        jw.WritePropertyName("channel");  
        jw.Write(channel);  
        jw.WritePropertyName("token");  
        jw.Write(token);  
        jw.WritePropertyName("cuid");  
        jw.Write(cuid);  
        jw.WritePropertyName("len");  
        jw.Write(len);  
        jw.WritePropertyName("speech");  
        jw.Write(speech);  
        jw.WriteObjectEnd();  
        WWWForm w = new WWWForm();  
   
   
        WWW getASW = new WWW(url, Encoding.Default.GetBytes(jw.ToString()));  
        yield return getASW;  
        if (getASW.isDone)  
        {  
            if (getASW.error == null)  
            {  
                JsonData getASWJson = JsonMapper.ToObject(getASW.text);  
                if (getASWJson["err_msg"].ToString() == "success.")  
                {  
                    audioToString = getASWJson["result"][0].ToString();  
                    if (audioToString.Substring(audioToString.Length - 1) == ",")  
                        audioToString = audioToString.Substring(0, audioToString.Length - 1);  
                    Debug.Log(audioToString);  
                }  
            }  
            else  
            {  
                Debug.LogError(getASW.error);  
            }  
        }  
    }  
到目前为止,链接百度云语音就完成了,之后我们再继续实现unity麦克风录入音源以及具体的识别过程。




Python 数据挖掘与机器学习进阶实训-3

Python 数据挖掘与机器学习进阶实训-3
  • 2017年12月26日 15:14

VR实训项目场景搭建阶段性报告

首先,展示一下我们这段时间的总体成果(鼓掌) 我们根据现有的各楼层的平面设计图,严格按照尺寸比例重建了每一层的平面结构;进行面挤出后将墙壁建立起来。 这是三区教学楼大厅的天花板内部结构,这里我...
  • qq_35142634
  • qq_35142634
  • 2017-05-30 15:28:23
  • 425

#创新实训#VR漫游项目汇报

接着,各个成员在各自的博客中落实了三区VR场景漫游项目的规划——项目时长:4月1日 至 5月31日团队分工:常雨晴 手势识别模块叶子扬 语音识别模块冯金虎 项目展示模块肖绍天 虚拟实验室模块,协助项目...
  • Christina_5
  • Christina_5
  • 2018-04-12 14:04:55
  • 42

VR实训项目规划(3D场景篇)

关于本项目的3D场景开发流程,打算从以下几步着手: 一、一层地面划分、建立平面模型 这里可能会耗费比较长的时间,但好在我们手头掌握了场景的平面设计图,所以在短时间内将其精确还原还是有可能的。 二...
  • qq_35142634
  • qq_35142634
  • 2017-05-13 15:48:37
  • 457

#创新实训#VR漫游项目汇报5

下面是这一周各成员项目和博客更新进度:点击打开链接脚本实现在脚本中增加了一些参数的设置,如图所示—— 这样就可以更加灵活的通过参数进行调节。 挥动超过距离:手柄在识别过程中的路线,必须大于一定长度才算...
  • Christina_5
  • Christina_5
  • 2018-04-22 16:33:06
  • 11

#创新实训#VR漫游项目汇报1

需要解释的一点是,上一周赶上清明假期,我们团队确认了分工和计划后,就各自开始行动了,以至于忘记了更博客,差的两篇博客都会在这一周补上的,以后也不会出现忘记更博的事情了!!所以,这篇博客报告的是我们第一...
  • Christina_5
  • Christina_5
  • 2018-04-12 13:54:22
  • 68

#创新实训#VR漫游项目汇报4

1.有关游戏优化技术的详细整理带宽优化减少纹理大小其中和优化相关的主要有“Generate Mip Maps”、“Max Size”和“Format”几个选项。 “Generate Mip Maps”...
  • Christina_5
  • Christina_5
  • 2018-04-15 20:08:12
  • 38

#创新实训#VR漫游项目汇报6

第三周第二篇项目汇总:1.点击打开链接————————————————————————————————————————————————————2.点击打开链接—————————————————————...
  • Christina_5
  • Christina_5
  • 2018-04-22 20:46:54
  • 9

HTML5+CSS3项目总结

经过一个月的学习,我基本掌握了HTML5的一些标签的用法和特性,以及一些CSS3的属性的特点和用法。 在本周安排的为期四天的第一阶段的课程的项目实训中,我基本能够熟练运用学到的知识,完成页面的速度和...
  • zhaohuansir
  • zhaohuansir
  • 2016-07-10 17:40:57
  • 1369

VR靠什么支撑在工业环境中实训

文章来源:VRAR网址导航-- VR靠什么支撑在工业环境中实训   “这篇文章探讨了如何以及为什么他们如此受欢迎和又如何提高培训质量。VR训练为什么是现实培训的最佳替代品。”   多年来,...
  • vrtime
  • vrtime
  • 2016-09-18 21:55:50
  • 608
收藏助手
不良信息举报
您举报文章:#创新实训#VR漫游项目汇报3
举报原因:
原因补充:

(最多只允许输入30个字)