游戏说明-骨骼

基本信息:

  • Unity版本 5.0.3
  • 实现方式:C++完成游戏操作,蓝图只制作了有限动画状态机
  • 动画方式:有限状态机
  • 游戏流程:较为完整

游戏背景:

当风吹过海岸,娇艳的花儿在河流旁盛开
银火虫在草坪上四散飞舞,近在咫尺的彩虹从河流延伸到天边…
这样梦一般的场景,你是否会想要跳舞一曲?


游戏操作:

QWEADZXC,共八个方位的舞步,点击即可做出相应动作。


游戏目标:

音游!音游!我们是!没有音乐(划掉)的音游!
跟随律动的音符和屏幕上的提示,做出对应舞步!


我具体都做了什么?

  1. 制作了可以交互的主菜单

  2. 编写AnimInstanced的子类Dance.cpp,在Dance.h声明八个案件的布尔值变量

  3. 从Dance继承,制作AnimBP,在蓝图中访问Dance.h中的变量,并对应制作有限动画状态机

  4. 编写MyActor脚本,编写具体游戏逻辑


技术难点

  1. 我是真的找不到UE5的资料。
  2. 我该如何在C++代码中设置来自[AnimInterscence]继承给[AnimBluePrint]里的变量?
  3. 所有找到的代码和解决方案都是UE4的,麻了。
  4. 我做了很多尝试,诸如通过路径直接获取蓝图类、手动赋值蓝图类、利用反射获取蓝图里的变量的名字。但是这些方式都无法实现,要不然是某些UE4的API和写法已经更新,要不然是我根本不知道他这个教程写的是啥意思。我觉得国外的很多开发者需要重新接受小学语文教育。
  5. 而且还有很多莫名其妙的bug,比如GENERATED_CLASS_BODY()的报错到现在我还不知道为啥,最后万能的VSstudio自动帮我改成了GENERATED_BODY(),并在函数前面加了BO2_API的字段。
  6. 然后,重新编译,开始运行,BOOOOOM!崩溃了。restart之后,我就看到了今生最难忘的提示之一:该蓝图已损坏。
  7. 代码崩溃还能损坏蓝图???这不光不科学,还不玄幻。
  8. 而且还有一些崩溃的报错,比如[Assertion failed: Pair != nullptr [File:D:\build++UE5\Sync\Engine\Source\Runtime\Core\Public\Containers\Map.h] [Line: 656]],这玩意我知道出现了空指针,但是我的好哥哥,你能提示我一下指针出现在哪里吗?
  9. 而且而且,有的时候UE5自己会有一些莫名其妙的bug,比如Crtl+Alt+F11显示编译成功啦!然后一看啥都没干。(解决方案居然是关掉引擎,在VS里编译一遍??)
  10. 我真的讨厌debug。主要是讨厌网上一点资料没有,或者奇奇怪怪的bug。
  11. 就在刚刚,我的Tick函数没有被触发,而统一代码中的begin是正常触发的。
   if (!Animation) {
   	UE_LOG(LogTemp, Warning, TEXT("my Animation is empty")); return; ;
   }
   Animation->Key_E = true;
   	UE_LOG(LogTemp, Warning, TEXT("my Animation isnot empty, set Key_E"));
比如你看这里,这是Tick里的,但是这俩log硬是一个都没打印出来...行,那我估计这个代码根本就没运行到,但是、begin里的log还tm能打印出来。。。这不离谱?不离谱?不离谱?

12.做到最后,音乐和节拍功能没有实现,只是做了一个简简单单的C状态机切换。但是我所有的代码都是C完成的。


我都用了些什么?

  1. Jeremie Passerin 开发的BungeeMan骨骼动画,啥也没用,看看了它的实现方式
  2. Sandvector Studios 开发的Cartoon Water Shader材质,应用了其环境
  3. MoCap Online 开发的Ninja Starter - MoCap Pack实例,应用了其骨骼动作(已付费购买)


游戏工程:【 [工程文件](www.fengjx.cn/Bo2.rar)】
视频链接:【 [游戏视频](www.fengjx.cn/vedio.mp4)】
最近的文章

CSP-202109-2

202109-2非零线段划分-题目描述A1,A2,⋯,An 是一个由 n 个自然数(非负整数)组成的数组。我们称其中 Ai,⋯,Aj 是一个非零段,当且仅当以下条件同时满足:1≤i≤j≤n;对于任意的整数 k,若 i≤k≤j,则 Ak>0;i=1 或 Ai−1=0;j=n 或 Aj+1=0。下…

继续阅读
更早的文章

CSP-202203-2

CSP 202203-2…

继续阅读