折腾起因
大家今天瞎折腾了一下午,总算把之前一直琢磨的事儿给落地了——在安卓上把“魅魔”那感觉给重现出来。也不是说要做个啥复杂游戏,就是一直对这类角色有点兴趣,以前在电脑上见过一些挺不错的2D或者3_D模型,就想着能不能在手机上简单跑起来,搞个动态壁纸或者小互动啥的,也算满足下自己的小爱
主要还是前段时间翻看以前的老素材,找到一些零零散散的图、小动画片段,感觉就这么放着也挺可惜的。正好最近手头没啥紧要活儿,就动了这心思。
动手开干
说干就干,我这人就这样,一有想法就憋不住。
第一步,找素材。
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
我先是把自己电脑里存的那些老图翻了出来,有些是以前玩游戏截的,有些是网上随便搜的。质量参差不齐,挑挑拣拣,选了几张感觉动态能做出来的。主要还是那种带点小翅膀,眼神勾人的感觉。没有现成的序列帧,就得自己琢磨怎么让它“动”起来。
第二步,选工具。
安卓上要让图片动起来,方法挺多。一开始我想着用Unity,毕竟之前也摸过,功能强大。但转念一想,我就是想搞个简单的展示,杀鸡用牛刀了,打包出来体积也大。后来琢磨着,就用安卓原生开发,画个自定义View,或者用个轻量级的2D动画库应该也行。我选了个之前用过的、比较顺手的小型图形库,方便控制每一帧的绘制。
第三步,处理图片,让它“活”起来。
这是最费劲的一步。我选中的那张“魅魔”图是个静态的。我想让她翅膀能扇动,头发能飘一点,眼睛能眨巴眨巴。
- 翅膀: 我用PS把翅膀单独抠出来,然后做了几帧扇动的序列图。就是简单的大小缩放和轻微旋转,模拟扇动的样子。
- 头发: 这个比较麻烦,没用啥高级技术,就是把头发边缘区域稍微做了点形变,弄了几张差不多的,快速切换时看着像在飘动。
- 眼睛: 眨眼就简单了,直接画一帧闭眼,一帧半睁眼,再配合原图的睁眼,几帧就搞定。
把这些处理好的小部件导入到我选的那个图形库里,然后就是写逻辑了。
中间的坑与调试
编码阶段:
我先搭了个基础的安卓项目,然后把图形库集成进去。主要逻辑就是定时器,控制不同部件的动画帧切换速度。翅膀扇动频率快一点,头发飘动慢一点,眨眼则是随机间隔。
一开始效果挺僵硬的,翅膀扇得跟抽筋似的。调了半天参数,主要是控制每帧之间的延迟,还有就是动画曲线,虽然我没用正经的动画曲线,但通过调整不同帧的持续时间,也勉强模拟出了一点缓动的感觉。
性能问题:
图片都是PNG,一开始没太注意优化,直接加载原图,好家伙,在我的老爷测试机上一跑,肉眼可见的卡顿。后来赶紧把图片压缩了一下,并且在绘制的时候做了些优化,比如只重绘变化的部分,而不是整个屏幕刷新。这才流畅了点。
适配屏幕:
我先在自己手机上调好了,换了个不同分辨率的平板,嚯,位置全歪了。这才想起来没有做屏幕适配。赶紧加上代码,根据屏幕宽高比来动态计算各个元素的位置和大小。这个也折腾了一小会儿,主要是坐标转换得想明白。
最终效果与感想
捣鼓了差不多一下午加一晚上,现在基本上能在我的安卓手机上跑起来了。
打开App,就能看到一个“魅魔”角色在屏幕中央,翅膀在不紧不慢地扇动,头发也带点轻微的飘逸感,隔几秒还会眨眨眼。我还加了个简单的触摸反馈,手指点到她身上,她会稍微晃动一下,或者给个眼神,算是增加点互动性。
跟那些专业的动态壁纸或者游戏里的角色比,我这个肯定是很粗糙的,动画帧数也不高,细节也不够丰富。但作为一次实践记录,从想法到动手实现,再到解决各种小问题,这个过程还是挺有意思的。
最主要的体会就是,很多东西看着简单,真自己动手做起来,细节上的麻烦事儿还真不少。不过当看到自己想要的效果在手机上动起来的时候,那点成就感还是挺足的。也算是把一个搁置挺久的小念想给实现了。
这回的实践就到这儿,下次有啥好玩的再跟大家分享!