今天给大家伙儿唠唠我最近在做的这个“大怪兽格斗游戏”项目,纯属个人兴趣,边学边做,磕磕绊绊但也挺有意思。
一开始的想法很简单:就是小时候看奥特曼打怪兽,特别过瘾,就想自己能不能也搞一个类似的游戏,让那些经典怪兽在我的游戏里头打个天翻地覆。
我得选个引擎。 Unity和Unreal都考虑过,但考虑到我之前用Unity比较多,上手快,就直接Unity了。 然后就开始找素材,怪兽的模型、动画、场景,各种找,免费的、付费的,能用的先凑合着用。
就是搭场景。 我不想搞那种特别复杂的,就先做了个简单的擂台,周围加点围墙什么的。然后在场景里放了两个怪兽的模型,就开始琢磨怎么让他们动起来。
动作这块,我直接上的Animation Controller。 先是把怪兽的idle(待机)动画放进去,然后搞了walk(行走)、run(跑步)、attack(攻击)这些基本动作。动作之间的切换用状态机控制,刚开始切换得特别生硬,后来慢慢调整,加了点过渡动画,才稍微自然一点。
攻击是重头戏。 我给每个怪兽都设计了几种不同的攻击方式,比如爪击、撕咬、喷火等等。攻击的判定用的是Collider(碰撞器),当怪兽的攻击动作碰到对方的碰撞器时,就扣血。这个过程挺麻烦的,要不断调整碰撞器的位置和大小,才能让攻击看起来更合理。
AI这块,我用的最简单的。 先让怪兽随机移动,靠近对方的时候就自动攻击。 后来觉得太傻了,又加了点策略,比如血量低的时候会尝试逃跑,或者选择使用不同的攻击方式。虽然还是有点笨,但总比站着不动
UI界面也得有。 我做了个简单的血条,显示双方怪兽的血量。还加了个倒计时,时间到了就判定胜负。UI这块我不太擅长,就凑合着能用就行。
声音也很重要。 我找了些怪兽的吼叫声、攻击音效,放到游戏里。 声音一加进去,感觉立马就不一样了,更有氛围了。
遇到了不少坑:
- 动画混合:刚开始不同动画之间的切换特别生硬,后来学着用Blend Tree(混合树)才解决了。
- 攻击判定:碰撞器的大小和位置总是调不经常出现攻击不到或者误判的情况,得反复测试。
- AI逻辑:怪兽的AI太蠢了,有时候会卡在墙角里,或者一直重复同一个动作,得不断优化。
- 性能优化:场景里怪兽一多,游戏就卡得不行,得想办法减少模型面数、优化代码。
目前进度
现在基本能玩了,就是还比较粗糙。 两个怪兽能在场景里互相攻击,血量降为零就game over。 但还有很多要改进的地方,比如:
- 怪兽种类太少,得加点新的。
- 攻击方式不够丰富,得给每个怪兽设计独特的技能。
- AI太弱智,得让怪兽更聪明一点。
- UI界面太丑,得好好美化一下。
- 性能优化还不够,得让游戏更流畅。
这个项目还有很长的路要走。 但我觉得挺有意思的,能把自己小时候的梦想变成现实。 我会继续努力,争取把这个游戏做得更 以后有新的进展,再跟大家分享。