【问题标题】:Procedurally animating the growing of a 2D plant以程序方式动画 2D 植物的生长
【发布时间】:2012-03-20 00:45:23
【问题描述】:

我正在尝试找出在 iOS 中以程序动画方式动画 2D 植物生长的最佳方式。

我希望植物具有动画效果,从而给用户一种侵占的感觉。 基本上,为树枝的生长设置动画,小芽最终会变成完整的叶子。 为了给它注入一点活力,我还希望植物在生长时稍微摇摆,而不是在屏幕上感觉手绘。

我想到的一种方法是使用 CGPaths 和 Bezier 曲线来创建茎和叶的形状,但我不完全确定如何为路径的绘制设置动画。一旦我得到茎的“绘图”,我想在茎上的某些点“种植”小芽,因为线正在生长/动画,这些芽也将开始从植物向外生长。

关于完成这项任务的路线有什么建议吗?我更喜欢程序动画,而不是手绘每一帧并以这种方式制作动画。我的理由是,我认为程序化动画会花费更少的时间,让我可以更好地控制动画的不同方面,并且可以在其他项目中重复使用(更不用说,编程会很有趣!)

我看到了这篇关于动画线条绘制的博客文章: http://oleb.net/blog/2010/12/animating-drawing-of-cgpath-with-cashapelayer/ 也许这将是实现我想要的结果的开始方法,我需要坐下来查看他发布的代码。

另外,也许使用 cocos2d 或类似的东西更容易做到这一点?或者,quartzcore 和 core 动画也可以正常工作。

感谢您提出的任何建议,此时任何信息都会有所帮助。

【问题讨论】:

  • 您在 CAShapeLayers 方面绝对走在正确的轨道上,但是您尝试做的事情很棘手。不过,好问题!绝对在我的最爱列表中。
  • 添加了一些资源链接作为非答案。也许比你想要的更多,但它是一个非常丰富的算法领域(也许比你想要的更多)。尽管如此,可能会给出一些想法。
  • 我在 CW 答案中添加了一些资源,但我觉得您不是在寻找具有 L-Systems 之类的复杂 3D 树生成算法,而是如何为简单的 2D 设置动画,卡通树的生长,对吧?

标签: ios animation core-animation quartz-2d


【解决方案1】:

(好问题!将其发布为“社区 wiki”,因为它不是答案,而只是一些参考,我不希望链接在 cmets 中搞砸。也许人们想添加到这个?)

我对“程序树分支代码”做了一个简单的搜索,发现了很多有趣的结果——非常丰富的领域。

gameDev.stackExhange 上的帖子指出了这个伟大的资源:@​​987654322@

另外Snappy Tree 非常棒,源代码可用。

这两个听起来也很有趣:

TReal 是一个能够生成逼真的 3D 树模型的程序。

Arbaro 是 Jason Weber 和 Joseph Penn 中描述的树生成算法的实现:用 Java 编写的“现实树的创建和渲染”。

fractal trees 上的这些 actionScript 教程可能更易于 OP 访问,并且结果不太复杂。 ActionScript 绘图代码很容易转换为 Core Graphics。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-01
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    • 1970-01-01
    • 2023-02-10
    • 1970-01-01
    相关资源
    最近更新 更多