gpt4 book ai didi

动画和逻辑

转载 作者:行者123 更新时间:2023-12-04 15:05:41 26 4
gpt4 key购买 nike

我有一个问题不一定特定于任何平台或 API,但更特定于动画之间的代码交互。

游戏就是一个很好的例子。假设玩家死亡,并且在移除对象之前必须完成一个死亡动画。这在许多情况下很典型,在这些情况下,某些动画必须先完成,然后才能继续执行通常会遵循的任何操作。你会怎么做呢?

我的问题是关于动画的控制和逻辑。您将如何设计一个能够驱动动画但同时实现自定义行为的系统?

通常出现的问题是游戏逻辑和动画数据变得相互依赖。也就是说,动画必须回调到代码中或以某种方式包含动画序列持续时间的元数据。通常更严重的问题是,当动画必须触发一些其他代码时,比如在 1.13 秒后生成自定义 Sprite ,这往往会导致代码和动画的深度嵌套。带有计时器的炸弹将是两个事物交互的逻辑和动画的一个例子,但我想让它们尽可能地分开。

但是你会怎么做才能保持动画和编码两个独立的东西?

最近我一直在尝试 mgrammar,我在想,DSL 可能是要走的路。这将允许动画或动画师以一种可能安全的方式表达某些东西,然后进入内容管道......

最佳答案

解决方案取决于您要玩的游戏。如果游戏玩法是 100% 代码驱动的,则动画由实体的状态驱动(状态驱动动画)。如果它是图形/动画驱动的,则动画长度决定了实体处于该状态(动画驱动状态)的时间。

后者在商业生产环境中通常更灵活,因为设计师可以只说“我们需要更短的死亡动画”,然后就可以协商了。但是,当您有非常精确的规则或物理模拟系统时,状态驱动的动画可能更可取。对于一般情况,没有 100% 正交和干净的解决方案。

有助于防止它变得过于困惑的一件事是考虑游戏 AI 模式:

游戏 AI 通常被实现为某种形式的有限状态机,可能是多个状态机或以某种方式分层(最常见的划分是具有低级 Action /转换的高级脚本格式)。

在底层,你可以说“在 hitreact 状态,播放我的 hitreact 动画直到它完成,然后从高层逻辑中找出从什么状态继续。”在高层次上,定义逻辑的方法有很多种,但是像“接近/攻击/撤退”这样的简单重复循环是一个很好的开始方式。

这有助于防止两种行为 - 计划的事件和对新事件的 react - 过于混合。同样,在实践中并不总是这样,原因与有时您希望代码驱动数据或相反的原因相同。但这对你来说是人工智能。这里没有通用的解决方案!

关于动画和逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/680695/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com