- 博客(29)
- 收藏
- 关注
原创 380. Insert Delete GetRandom O(1)
题目:Design a data structure that supports all following operations inaverageO(1)time.insert(val): Inserts an item val to the set if not already present. remove(val): Removes an item val from the set if present. getRandom: Returns a random elemen...
2020-08-27 15:44:10 153
原创 1048. Longest String Chain
题目:Given a list of words, each word consists of English lowercase letters.Let's sayword1is a predecessor ofword2if and only if we can add exactly one letter anywhere inword1to make it equal toword2. For example,"abc"is a predecessor of"abac"...
2020-08-27 11:54:48 211
原创 #基于VR环境下的手指识别键盘输入# 在Unity普通场景中完成识别后,转入VR场景中的问题解决
问题一:在进行普通场景和VR场景切换的时候,VR场景自带的摄像头[Camera Rig]可能会对普通场景也产生一定的影响。出现的现象包括:quad组件上点击事件的失灵(猜测是不同的canvas层之间产生了遮挡)、按钮事件的失灵等。在这方面收集了很多资料,进行了总结:(1)在PlayerSettings里有个选项VirtualRealitySupported,这个选项导入SteamVR时取消是不管用...
2018-06-14 21:22:24 732
转载 #基于VR环境下的手指识别键盘输入#利用opencvforUnity实现透视变换
在我们的项目中,需要对手部进行摄影。由于设备的限制,摄影过程可能会出现手部图像并不是正对着摄像机的现象,这就需要实现透视变换了。Opencv
2018-06-14 00:42:56 631
原创 #基于VR环境下的手指识别键盘输入# VR场景搭建和移动漫游(一)
基本结束了输入阶段的调试之后,开始搭建VR场景。VR的基本配置在前文当中已经提到过了,导入SteamVR和VRTK的文件包之后,将可用的场景素材放入Unity文件中。先将[Camera Rig]/[status]/[SteamVR]三个文件拖入场景中。其中[Camera rig]是比较重要的一个文件。它代表着VR中的头戴式设备和两个手柄。基本配置完成之后,来进行VR场景模型的搭建。模型素材来自于网...
2018-06-14 00:25:56 1013
原创 #基于VR环境下的手指识别键盘输入# 输入文本的保存和查看
完成了能够实时显示在屏幕上的弹幕,接下去就要完成的是输入文本的保存和查看。使用者利用手指识别后的点做指引,完成在无法看到键盘的环境下的输入之后,可以对自己输入的文本进行创建,保存和查看。完成的简易demo如下:在inputfield中,使用者可以进行文本的输入。输入文本之后,点击写入文本文件,可以在目录下创建一个txt文件,并将inputfield中的内容保存到txt文件中去。 public vo...
2018-06-13 23:46:07 388
原创 #基于VR环境下的手指识别键盘输入# 基于UNITY的弹幕系统的实现
手部识别已经基本完成。经过测试发现,只要所在的环境够亮,能够照的双手颜色比较稳定(偏白),识别效果就会比较好。队友部分,虚拟键盘也根据我们实际使用的实体键盘制作完成了。根据实体键盘的按键不同,虚拟键盘会有不同的响应。整个过程就是,摄像头识别手指,将其位置映射到Canvas层中成为五个圆点,圆点实时反映手指的位置,帮助在VR环境中的使用者辨别自己手部究竟放置在键盘的哪一个位置上。这部分基本实现之后,...
2018-06-13 21:47:49 1110 1
原创 #基于VR环境下的手指识别键盘输入# 基于轮廓质心的手部识别优化(二)
在上一篇博客中,我们提到了对手部进行识别的方法,接下来,我又选择了三种不同模式的,基于肤色进行识别的方法,这三种算法各有不同,都进行了实现。并且通过实际操作时不断地调整比较,最终将选择效果较好的识别手段。(1)重心距离法:主要思路:找到手掌的重心,并找出识别出的手的边缘点,对每一个点进行遍历,依次找出五个距离重心最远的点,可以把他们看作是手指点。1、对图像做高斯模糊;2、肤色分割(背景不要有类肤色...
2018-06-13 13:22:10 680 1
原创 #基于VR环境下的手指识别键盘输入# 基于轮廓质心的手部识别优化(一)
在完成了之前提到的工作之后,发现在实际操作的时候,存在一定的问题:(1)由于识别的是轮廓凸缺陷,所以得到的最终结果是一个点组,包括起始点、结束点、最远点和到最远点之间的距离。在实际运用中。想要用一个3D的手部模型与识别出来的手部进行绑定。因为涉及手掌整体和各个手指的移动,所以需要对手掌和手指分别进行定位。但是由于只保存了五个指尖点,所以采用平均的方法计算出中心点。由于指尖位置存在一定程度的跳变,所...
2018-06-13 13:02:13 499
原创 #基于VR环境下的手指识别键盘输入# 利用OpenCV for Unity初步完成的手指识别效果(二)
在前一篇文章中,我们完成了对手指肌肤颜色的检测。检测到肌肤颜色之后,接下来就是要确定手掌的范围。在这个过程中,将要使用到的核心函数是Opencv中的convexityDefects。如上图所示,黑色的轮廓线为convexity hull, 而convexity hull与手掌之间的部分为convexity defects. 每个convexity defect区域有四个特征量:起始点(startP...
2018-06-12 18:13:56 3047 2
原创 #基于VR环境下的手指识别键盘输入# 利用OpenCV for Unity初步完成的手指识别效果(一)
前面几篇文章中介绍了OpenCVforUnity的使用方法,在导入了这个包之后,我们就可以在C#代码当中利用opencv的库了。以下是在unity中编写OpenCV图像处理代码所用的一般格式:using UnityEngine;using UnityEngine.EventSystems;using System.Collections;using System.Collections.Ge...
2018-06-12 17:25:33 3904 1
转载 #基于VR环境下的手指识别键盘输入# 在Unity中实现对图像的前后背景分离的效果
因为项目中需要完成对手部的摄像头识别,识别过程中,需要将指尖识别为五个点,并且映射到VR环境中去。需要对摄像头欧拍到的内容进行图像处理。主要用到的方法是 grabCut方法。GrabCut函数说明void grabCut(InputArray img, InputOutputArray mask, Rect rect, InputOutputArraybgdModel, InputOutputAr...
2018-06-06 13:41:54 587 1
原创 #基于VR环境下的手指识别键盘输入# Unity Opencv教学
OpenCV for unity是一套支持unity游戏引擎的程序,可以协助我们在Unity内部开发Opencv。(1)下载地址:https://download.csdn.net/download/yzx5452830/10192686(2)OpenCV for unity的主要功能:- 由于opencvforunity的包是OpenCV Java的克隆,所以您可以使用与OpenCV Java ...
2018-06-06 13:30:55 1197 1
原创 #基于VR环境下的手指识别键盘输入# 利用摄像头完成简单的手指识别的方法
因为我们在进行虚拟键盘的设定的时候,需要利用摄像头对手指进行拍摄,确定手指当前的位置,然后进行键盘输入内容的估计,所以采用了以下方法:方法一:重心距离法 见下图,红色点是手的重心,那么手的边缘的所有点与重心点的距离按顺时针方向或者逆时针方向遍历,就会出现五个峰值,分别是五个手指,这样我们就可以简单找到了。如果你是只伸出一两个手指,那么就只有一两个峰值了。简单的代码如下:1、对图像做高...
2018-05-01 22:32:27 1245
原创 #基于VR环境下的手指识别键盘输入# 基于移动设备的虚拟键盘设计的调研
由于我们小组要进行的是VR设备方面的键盘设计,所以先对市面或者科研领域上已有的虚拟键盘进行了调研,在阅读相关论文以后,发现了一种基于移动设备的,在手掌上进行虚拟键盘输入的科研成果。以下是我们小组对其论文进行的详细了解和翻译:一、背景介绍智能手表和智能眼镜等智能可穿戴设备正在推动移动计算领域的发展。它们移动性和舒适性的要求使更小的显示尺寸、更小的输入区域和更短的电池寿命等必要因素。与智能手机和平板电...
2018-05-01 22:24:30 692
原创 #基于VR环境下的手指识别键盘输入# HTC Vive Unity的配置
HTC Vive 是一个虚拟现实头盔,由 HTC 和 Valve 公司制造。它提供一种在虚拟世界中的浸入式体验,而不是屏幕头像。如果你是一个 Unity 开发者,在虚拟现实游戏中使用 HTC Vive 非常简单——你可以认为 HTC Vive 和 Unity 是天生一对。因为我们小组涉及到的工作是,进行VR的虚拟和实体键盘的输入操作,所以需要进行VR环境的配置,而本人属于ing工作室,工作室内配备...
2018-05-01 22:04:59 1491
转载 谱聚类算法(Spectral Clustering)
谱聚类算法(Spectral Clustering)谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法——将带权无向图划分为两个或两个以上的最优子图,使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的目的。其中的最优是指最优目标函数不同,可以是割边最小分割——如图1的Smallest cut(如后文的Min cut), 也可以是分
2017-07-16 17:53:37 759
原创 滚动字幕的制作
在本游戏中,加载场景的时候,为了防止过长的等待时间导致玩家觉得无聊,所以在加载场景中添加了一段滚动字幕的介绍。用来介绍一些游戏的背景之类的知识。滚动字幕本身的制作比较简单。只需要用到GUI.Label(new Rect())方法即可,这个方法有四个参数,分别用来表示新建出的Label的x,y位置以及Label的长度和宽度。GUI.Label(new Rect(300, hi
2017-06-19 20:22:33 481
原创 进度条的制作
在Loading界面切换的时候,不仅需要用到异步加载,更需要用进度条来表示切换的进度。今天我就来介绍一下,何如制作“音之国度”中的过渡页面进度条。首先,我们当然先需要得到一个进度条(滑稽)。制作一个进度条有两种比较简单的方法。1、在NGUI中,已经存在ProgressBar的预设体,所以求省事的同学,可以直接把该预设体拖入游戏窗口内,就可以得到一个进度条。如图为NG
2017-06-19 19:45:59 558
原创 背包系统(二)各个部分的整合和整体功能的实现
一、背包的拾取功能:在获得一个新物品时,需要把该物品放到背包中进行分配,这时候就会出现以下几种情况:(1)如果已有该物体:该物体的num+1;(2)如果没有该物体,则查找是否有空格: 若有空格,将该物体放在有的第一个编号的空格里。在当前的空格内实例化物体。 若没有空格,显示背包已满。
2017-06-12 20:53:32 1985
原创 背包系统的完善(一) 背包系统的分割和实现
由于上一周对于游戏的一些具体功能进行了讨论,所以本人就之前的背包系统设计进行了修改。整体来说,相较于之前的背包系统,该背包系统运行起来更流畅,也解决了前一个背包系统在拖动物体时帧率变低的问题。新的背包系统包括:1、一个用于表示背包系统的按钮:该按钮上添加了EventListener事件,该事件经过改写,可用于实现点击一次展示,点击第二次消失的效果。代码比
2017-06-10 17:12:34 939
原创 Loading界面的制作(二)
在上一篇的博客中,我主要介绍了一些Loading界面制作上的理论知识,比如比较基础的场景制作中所需要的屏幕分辨率自适应效果,以及异步加载游戏场景中所需要的协同程序和异步加载关卡方法。本篇博客中,我们将继续上一次的步骤,讲述Loading界面制作过程中的一些具体的代码部分。由于Loading的脚本需要知道下一个加载的场景是什么,而这是需要上一个场景告诉它的,在场景切换之间,数
2017-06-04 00:12:05 521
原创 Loading界面的制作(一)
由于本周开会对于《音之国度》游戏的整体流程又一次地进程了更新和确认,所以得到游戏的UI流程如下:在登录界面和正式的新手引导之间,由于游戏加载时间比较长,直接跳转可能会出现卡顿的现象,导致游戏画面停顿在登录界面,造成不好的交互体验,所以决定在登录界面和新手引导之间加入一个加载界面。加载界面由背景和进度条组合而成。背景由本制作组的画师绘制而成,背景上还会有滚动的文字,向玩家提供一些游戏
2017-06-03 23:10:53 1984
原创 U3d的道具界面的制作
因为本游戏涉及到道具和图鉴等系统,在进入道具和图鉴系统时,会出现类似于下图的界面(图片来源于网络,仅供示意)这个系统用到的就是我在上一篇文章中提到的事件监听器UIEventListener。用这个方法的好处在于,可以实现程序和美工同时进行,方便又快捷。(由于在本项目中本人在UI界面方向上既是程序员又是美工,所以在整体美术风格还没有确定下来的时候,可以先着手进行程序代码方面的设计,非常好
2017-05-29 23:49:56 1038
原创 U3D对于按钮的事件监听
步骤:(一)通过层级面板创建一个新的游戏Canvas,在该Canvas上创建一个Panel用于安放各个组件(二)在Panel上创建一系列的Button。如图:修改Button的形状,内容和位置。(三)创建一个名为TestClick的脚本,并在脚本上定义一个Click方法。using UnityEngine; using System.Collection
2017-05-29 23:36:12 2754
原创 “音之国度”界面分析(二)
在介绍完一级界面以后,这里将要介绍二级界面的一些基本功能:二级界面主要显示在画面的中间。为了凸显本游戏是以召唤兽为中心的游戏,所以游戏界面中将始终把玩家的召唤术放在重要的左方的位置。而二级界面的相关界面则放在画面的中部。二级界面主要分为:1.人物界面2.道具界面3.养成界面4.战斗界面5.图鉴界面首先是人物界面:* 人物界面主要包括三个部分。第一部分为头
2017-05-14 19:36:26 649
原创 在UNITY中创建出一个简单的UI界面
在每一个软件的应用中,用户界面(UI)都是必不可缺少的一部分,是核心的特征。游戏也没有抛弃这一规则。大部分的游戏都使用 UI 界面来方便快捷地显示一些信息,如在“音之国度”的游戏中,需要借助UI界面来显示技能,召唤兽的信息等。 Unity 3D 提供了许多 UI 组件,你都可以在你的游戏中使用它们。今天我将要制作的,是一个简单的暂停菜单。这个暂停菜单将显示一个内容为『Paused』的
2017-05-14 16:30:15 43734
原创 “音之国度”游戏UI界面分析(一级界面)
鉴于本游戏的核心内容为,由声音召唤出的召唤兽,并对召唤兽进行培养,选择玩家进行AR场景下声控的对战行为。分析后得出主要需要以下UI界面:1、登录界面登录界面是玩家最先接触到的界面,需要能够直观地向玩家展示一些有关该游戏的信息。玩家可以从登录界面的画风中了解到整个游戏的风格。主要构成:标题、账号密码等需要交互的相关信息,登录与退出按钮。并以游戏场景图作为背景图,充实登录页面的内容。以
2017-05-07 20:26:44 6327
原创 Unity3d UI设计简述
在我们的实训项目中,本人主要负责UI的设计以及unity中UI界面的代码编写部分。由于之前没有对Unity进行过深入的了解,于是在实训开始的初期,我首先对于unity中的UI界面部分的功能进行了了解。CanvasCanvas是一个画布,就像我们绘图用的图纸一样,所有的控件都必须在Canvas中才能被绘制出来,在其他地方则不能被绘制出来。在Canvas上进行绘制时,首
2017-05-07 00:49:14 6237
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人