记录一下毕设
思路
一开始看到站酷上面一个Processing和LeapMotion结合的作品疯狂心动,然后我有个老师有搞Processing交互就去做LeapMotion的课题,那时候觉得很酷(但是后面很后悔)。后来因为我对传统文化接触比较多,中国这方面的交互也挺多,什么故宫文创、清明上河图、千里江山图,外国的梵高什么啦。然后主题定的是国画。
搜集资料
本来学过Processing编程,加个传感器也没觉得很难。但是因为Processing本来就不是一个很出名的平台,Leapmotion现在发现就是一个食之无味弃之可惜的传感器,国内Processing和Leapmotion的交互资料非常少,而且Leap公司被收购了,之前的很多库都找不到了。我一开始是安装了最新版的Ultraleap和Touchfree,然后装了Processing for Leapmotion的库,但是运行范例程序显示不出来。后来我查呀查,发现是版本不匹配。然后我卸载了这些新的版本,去找那些老版本的和我的库匹配,然后好多都是外网下载来的,我天天就看着他下载那个东西1kb1kb下载,装转好几个版本的老版本驱动,终于那个小方块绿了,并且实例程序可以有骨骼出现了。这个过程我大概花了一个星期。
然后故事才开始,因为我做的主要还是交互,加了Leapmotion的意义就是用手势取代鼠标,让沉浸感好一点。然后为了找一个我的电脑可以跑的范例程序给我看看例子,我把github、gitee、外网、淘宝上的课程、b站上面Processing课程,和Leapmotion相关书买了好几本。我就非常后悔,毕设做网站不好吗,做什么交互。然后资料真的少,可能是我太菜看不懂。
然后是选国画,一开始的设想是竖版的,但是我的电脑是横版的,我就找了千里江山图,这就是另外一个后悔的事情,我在中期时候傻乎乎的选了千里江山图。图没有问题,但是他太长了,要做这个交互首先得搞好它的尺寸问题。我先找那个高清原图,好几G,导不出来原图,我的电脑会崩。就只能到处15%的大小图。
设计与编码
最主要的是手势设计,因为我也不是专门搞什么数字手势识别的,我手势用了他自带的手势函数,什么画圈、移动、点击什么的,然后看懂了basic例子里面的参数什么意思,设计了一个握拳手势来控制背景音乐。(非常后悔,我选unity也比选processing,unity比processing例子成熟多了,参考代码也很多,processing只能全部自己写,我真的会哭)
国画太长了,要解决的问题就是用手势移动图片可以实时更新,这是一个计算题,你的长图要对应电脑的长度,确保滑块头在最右边在长图最右边,滑块在最左边在长图最左边,这个对应要几倍。我也想过记录手前后的距离然后移动多少页面,问就是我的传感器就是鸡肋。
还有就是代码动态化,一开始我想过纯代码写什么流水,用什么glsl写个特效,再搞一个flow库搞个流体效果,minim库搞个音乐可视化,最后我没实现多少。动态效果我用gifAnimation库来搞了,使用了伟大的PS神术制作gif动画,然后导进我的垃圾毕设,共制作了仙鹤动态、流水、船只动态。然后使用代码写个类更新物体的方向和加速度,也拿了背景音乐的节奏做了点简单音画交互。我的毕设效果不咋地就不乱现了。
总结
毕设体悟,不要拖延症,不要搞冷门平台和冷门传感器,unity和leapmotion比processing好多了,不然你就要熬夜,天天睡不着。还有冷门毕设你淘宝都买不到,有也非常贵,我被逼急了去淘宝问过价,四千让我冷静了,只能自己写,什么参考都没有,天天熬夜,答辩前一天我才大概调好代码。