Answers:
通常,少于360个方向。常见的情况是8或16。动画也很短。
自动化是您的朋友。编写Blender / 3DMax / etc脚本以从列表中加载模型,并在每个所需的帧和方向将其渲染到图像。根据内容标记图像并在游戏中寻址它们。
将所有内容打包到纹理地图集(又名Sprite表格)中,以加快访问速度。
最后,您将获得数以千计的精灵,它们被整齐地包装在几十个地图集中。没什么大不了;)
我找不到来自CoC的图像,但这是暗黑破坏神II,它对角色动画使用了相同的方法。例如,亚马逊近战攻击:
还请记住这些图像的分辨率较低。您还可以做一些其他事情来节省空间,尽管我不知道《部落冲突》使用的是哪些:
您可以使部队的定位偏向于面向标准方向(N,E,S,W,NE,SE,SW,NW),然后最多进行调整,然后仅针对标准方向进行优化。
您可以采用组合方法,仅预先渲染一些指示。在帧期间,您可以渲染与现有图像不匹配的部队,或者如果时间用完,则使用最近的图像。
尽可能使用左右对称性将存储的帧数减少一半。
您可以确定某些动画的优先级,例如行走和休息,并为此存储更多的方向和帧。然后将其他动画(例如,剑的挥杆)的优先级降低,在其中存储较少的方向和帧(我建议在挥杆的第一帧和最后一帧中保留更多的方向)。
您可以使用最接近的图像然后拉伸它来伪造其余方向。
总体而言,我们可能谈论的是18个单位(最多8个方向),可能是每秒20帧,平均64x64像素和每像素2个字节的2秒动画。那是18x2x20x64x64x2 = 50 MB。他们还可以根据设备的功能和地图上使用的单位数来缩放方向,分辨率和帧数。
除了@Kromster答案之外,请注意,图像通常会被显着压缩,而在大型“图集”图像中,其中包含许多重复元素(例如,空白背景),则压缩效果非常显着。因此,图像的最终“大小”不只是单个图像大小的直接乘积。
对于经典示例,建议您下载原始的《毁灭战士》,它在伪3D环境中使用了2D精灵。精灵具有8个朝向的方向(相对于玩家的视角),并且随着距离的增加,内存中大约有8种不同的大小。这是非常明显的,但是对于游戏来说已经可以接受了。当然,在Clash或其他等距视图游戏中,无需考虑距离。