欢迎光临散文网 会员登陆 & 注册

[澪Ultimate]如何制作《资源包中的动画效果》基础教程!

2022-03-04 19:59 作者:今朝有酒今朝醉仄  | 我要投稿

1.动画条格式:

动画的基本格式是一列帧。每个单独的帧应该是相同的宽度和高度,你想要动画的纹理。例如,如果您的纹理包是16x16,那么列中的每个帧也应该是16x16。

提示:我在16x16工作: 在这个线程上的所有例子中,所有的帧都应该是16x16分辨率。虽然有些图像,如上面的图像,保持在他们自己的分辨率(以节省滚动),我已经优化了大多数的图像,以获得最大的能见度。以后别让这事把你搞糊涂了。

在本例中,每个帧都被编号,这样您就可以看到它在堆栈中的位置。游戏中的动画,看起来会是这样的:

提示:从零开始: 为什么动画条的顶部框编号为0?因为一个程序员制造了这个系统。在程序员的心目中,零是序列中的第一个数,排在第一位之前。我们需要一些艺术类型的练习才能习惯以零开始计数,但这正是计算机(或者至少是计算机程序员)的工作方式,所以我们只需要处理它。

2.了解.mcmeta档案:

我的世界”中的每个动画都必须附带一个.mcmeta文件。如果没有,“我的世界”将无法正确读取动画文件,在游戏中您将得到如下内容

此.mcmeta的名称必须与动画的.png文件的名称完全匹配!这是非常重要的,并且与1.5格式的工作方式不同。

对于.mcmeta文件,扩展名必须位于图像的整个文件名之后。例如,“obsidian.png”获取一个名为“obsidian.png.mcmeta”的文件,但是由于文件扩展名隐藏,您可能实际上拥有“obsidian.png.mcmet.txt”,甚至不知道它。这就是为什么很多.mcmeta文件失败的原因,所以请不要犯这个错误。

重要事项:准确匹配文件名: 我不能强调学习匹配你的文件名是多么重要。“我的世界”是一个程序,和大多数程序一样,不会试图猜测你的意图。就像您必须匹配文件名,如果您想要“我的世界”找出它应该调用的包中的哪个纹理一样,动画文件中的.mcmeta文件也必须完全匹配。大写、下划线和中间的.png都很重要!

每个.mcmeta文件必与.png文件所在的文件夹相同。如果你是在动画块,它应该在/纹理/块/。如果您正在动画一个项目,它会进入/纹理/项目/。

基本设置:

最基本的是,.mcmeta文件将包含一条指令,让我们知道这应该是一个动画文件。这一点很重要,因为“我的世界”有多种类型的.mcmeta文件,而且“我的世界”知道应该做什么是很重要的。最明显的比较是Pack.mcmeta,它位于资源包的根中。该文件的设置与动画的.mcmeta不同,尽管类似

在最基本的情况下,动画的.mcmeta看起来如下所示:

{“动画”:{}}

使用此设置,动画将从第一帧以每秒20帧的速度从第一帧运行到最后一帧。这是所有“我的世界”块和项目动画的默认行为。若要学习更改此操作,请参见下面各节。

与1.5设置不同,您不能简单地将.mcmeta文件留为空白,并期望它能够工作。

调整框架:

并非所有动画都设计为以20 fps的速度运行。您可以很容易地调整动画在1.6.mcmeta格式中的移动速度。这是新格式的最大优点之一,因为您可以调整时间,而不必单独列出每个帧,这样可以节省大量时间。

首先,从上面所示的基本设置开始:

{“动画”:{}}

请参阅“动画”后的括号组:?我们要把我们的时间信息放在那里。在这些括号之间加上以下内容:

“框架时间”:4

整件事应该是这样的:

{“动画”:{n“帧”:4n}

提示:间隔并不重要: 令人困惑的一件事是Dinnerbone的纹理Ender布局动画文件的方式。他们想知道案文是否需要这样排列。答案是“不,它没有”。在其中的许多例子中,我将把文本布局成大纲样式,以便于阅读。这是完全没有必要的,因为一切都可以放在一行。例如,上面的动画可以是像上面这样的三行,或者像这样的一行:{“动画”:{“Fratime”:4}这两个版本都可以正常工作。

下面是几个如何与您的动画一起工作的示例:

这个红色动画使用默认的定时,每刻度1帧(每秒20帧)。注意到它移动得有多快?

另一方面,这个蓝色动画使用Frametime属性将动画速度降低到每20次滴答1帧(每秒1帧)。看到它是怎么变慢了吗?当调整帧时(或单个帧的“时间”属性,如下所示),更高的数字更慢,更小的数字更快。请记住,每勾一个帧的速度与动画的速度一样快,而且您只能使用整幅数字。

不断变化的框架顺序:

回到第一个例子,黄色编号块,您可以看到框架是从帧号0开始的。如果您想要更改这些帧的顺序,或者在动画过程中多次使用单个帧,您会做什么?嗯,你可以制作一个很长的动画片,里面有多余的帧.但这是非常浪费,将消耗大量的记忆不必要。那可不是个好主意。

相反,我们可以使用.mcmeta文件来调整帧的顺序。下面是一个例子:

扰流板(点击显示)

通过使用这六个帧,编号为0-5,我们可以制作一个动画填充该栏,然后耗尽它,而不必实际动画的下半部分的动画。

要调整帧顺序,我们需要在上一节中添加一个新属性,其中添加了“Fratime”:。这个叫做“框架”:,而且要复杂得多。

同样,从基本设置开始,并在“动画”后面的括号中添加以下内容:

“框架”:[]

重要:检查括号: 需要注意的是,对于这些.mcmeta文件中的大多数内容,您将使用如下所示的曲线括号:{}。但是,对于Frame属性,需要使用方括号,如下所示:[]。如果把这一小细节搞错了,“我的世界”就会无视你的.mcmeta文件,并给你设置棋盘块。

添加之后,.mcmeta文件应该如下所示:

{“动画”:{n“帧”:[]}

光靠这一点是做不到的。实际上,您必须按照希望它们出现的顺序列出框架,用逗号分隔。下面是我们的绿色块示例:

{n“动画”:{n“帧”:[n0,n1,n2,n3,n4,n5,n4,n3,n2,n1n]n}n}

提示:观察结尾:在上面的示例中,注意我是如何不以0结束序列的?这是因为动画从开头开始重复。如果每端有一个0,它将连续两次在序列中显示,因此显示的时间是时间的两倍。注意这一点,如果你骑自行车的动画似乎挂在一个框架上。如果你有问题,问问自己:“如果我两次把相同的数字顺序放进去,这有意义吗?”如果你回答“不,因为一个数字会在没有充分理由的情况下重复”,那么你在结尾有一个多余的数字。

如您所见,这些帧从框架0开始按顺序排列,直到到达条带的最后一个帧(数字5),然后继续减少数量,向后运行直到达到1。下面是以方便的动画格式得出的结果:

重要事项:请勿越过该条的末端!: 如果你在这个例子中意外地在5之后放了一个6,会发生什么呢?嗯,在那个条形图中没有那个数字的帧(六帧表示0-5)。这很可能会混淆我的艺术,并导致动画失败。记住,零是你的第一个数字,它和其他数字一样重要。

重要:在最后一个号码之后没有逗号: 需要注意的是,在该示例中的最后1之后没有逗号。这是非常重要的。逗号告诉我的世界还有更多的事情要跟进。通过在最后一帧后加上逗号,你告诉“我的世界”还有更多的帧.然后把它挂起来。当涉及到.mcmeta文件时,“我的世界”真的很挑剔,加上逗号会导致整个动画失败,从而导致棋盘块。记住这一点。

调整帧延迟:

现在,您知道了如何改变动画的运行速度,以及如何更改显示帧的顺序。但是,如果您希望在与动画的其他部分不同的时间内显示单个帧,会发生什么情况呢?好吧,你可以把它一连列几次拖出来.但如果你想让它更快一点,那就行不通了。

相反,您可以使用方便的.mcmeta文件来调整单个帧的时间。

首先,您需要以与上面相同的方式布局您的帧,并按照您希望它们显示的顺序列出它们。即使您希望它们按默认顺序运行,也必须这样做。

{“动画”:{“框架”:[0,1,2,3,4,5,6]}}

既然您已经走到了这一步,请用下面的代码替换您想要的帧号:

{“索引”:3,“时间”:20}

下面的数字“索引”:是你想要它显示的动画条的哪个帧。这基本上和你在最后一节中学到的一样,但在长时间的变化中。显然,下面的数字“时间”:是多少滴答(1/20秒的输入),你想要显示的帧。

所以对于这个例子,我们希望动画以默认的顺序运行,以默认的速度.除了第三帧,我们想在这里停留一秒钟。Mcmeta文件现在看起来如下所示:

{n“动画”:{n“帧”:[n0,n1,n2,n{n“索引”:3,n“时间”:20 n},n4,n5,n6 n}n}

注意,在索引和时间属性的括号后面有一个逗号。实际上,这两个括号之间的所有内容都只是替换了数字。这也意味着,如果要调整此方法中的最后一个框架,则在括号后面将没有逗号。

把它们放在一起:

如您所见,通过将各种内容添加到基本设置中,您可以在动画中调整任何您想要的内容。您可以使它运行得更快或更慢,使帧以不同于在您的动画条中运行的顺序运行,多次重复使用帧,并调整单个帧的时间。

但你能在同一个.mcmeta文件中完成它们吗?是!事实上,你可以!这里有一个例子:

{“动画”:{“框架时间”:2,“帧”:[{“索引”:0,“时间”:40},1,2,3,4,5,6,4,2]}}

在本例中,动画以每秒10帧的速度运行(每2帧滴答一帧)。第一个帧编号为零,在两秒钟内保持可见。在该帧之后,动画按照第1帧到第5帧的顺序运行,其中它以反向方式运行,跳过每一个其他帧。

有了这几个基本知识,您可以使动画变得比这更复杂,但这就是我们将进行本教程的内容。如果你有任何问题,不要被围攻张贴!

3.流动液体:

虽然大多数动画遵循上述格式和规则,但也有一些例外。最大的两个是流动的水和熔岩。这两个文件在布局动画工作表时遵循一组特殊的规则。别担心,一旦你明白了它们就很容易了。只是多走几步而已。

重要:仅流动液体: 这只适用于水_Flow.png和熔岩_Flow.png(大概还有其他添加的液体)。如上文所述,静水和熔岩文件采用与任何其他块相同的格式。不要用你的静止液体做这部分的事情。最后会看起来很奇怪。

要制作流畅的液体动画,首先要像其他动画一样制作帧。不过,不要像平常一样把它们整理成条状。相反,把每一帧,并重复它在一个2乘2块。这将使每帧流动的液体动画两倍的正常分辨率的纹理包。别担心,这是正常的,不会影响你的包装的外观。

一旦你这样做了,然后你把它们组织成条状,如上面所示。

这里有一个图形表示:

这也将帮助您,如果您正在转换您的流动的水/熔岩动画从前1.5MCPatcher/Opti精细格式,到新的“我的世界流动液体动画格式”。

提示:为什么是双瓦?: 如果你想知道流动的液体动画不一样的原因,那是因为“我的世界”是如何渲染水的纹理的。流动的水瓦片被放置在2x2区域的中部。这就省去了我的经验之谈,不需要实时贴图纹理。如果您的动画看起来与预期不同,请记住,瓷砖实际上位于帧的中间,而不是与角落中的单个瓷砖排列在一起。如果这是一个问题,则需要25%的偏移量来解决这个问题。

在为这些动画制作.txt文件时,请记住,您的帧现在是通常的两倍大。当你要计算出你有多少帧时,记得把你的动画片的两个维度除以2,以获得你的“真实”分辨率。

4.时钟和指南针:

这两个项目实际上不能动画,但他们是以类似的方式布局,所以我将他们纳入本教程。

时钟和指南针的动画不是我们通常认为的动画,而是由游戏中的因素驱动的。就时钟而言,这是游戏中的一天.对于指南针来说,它是玩家相对于产卵中心的位置和方向。

因为这些动画是键驱动的,所以我们需要按照“我的世界”所希望的顺序来设置动画帧,而不是依靠.txt文件来为我们修复.尽管如此,我们仍然需要一个“我的世界”才能正确识别该文件。

重要:您仍然需要一个.mcmeta文件: 您仍然需要将时钟和指南针的.mcmeta文件包含在/textures/Item/文件夹中,并在它们各自的.png文件旁边。如果你不这样做,“我的世界”就不会识别这些纹理,因为它们不是方形的。只需使用理解.mcmetaFiles部分中的基本设置,因为无论如何您都无法调整这两个项。


时钟“动画”可以有任意数量的帧。“我的世界”将通过将时间除以可用帧的数量来决定显示哪个帧,因此您不必担心自己做数学计算。

框架的顺序非常重要,没有办法改变它们。

你的动画的顶部框架应该是中午,太阳在它的顶端。就是中午。它下面的每一个框架都应该提前时间。这是顺时针运动,如果你在做一个模拟时钟。大约一半的动画应该是午夜,最后一帧应该是中午再次。

提示:最后一帧: 注意我说快中午了。它应该就在这之前,因为中午本身是代表你的第一帧。记住,你不希望一个框架重复两次!

下面是一个简单的例子:

Spoiler (click to show)

注意蓝点的基本顺时针运动。把它放在圆圈的顶端代表中午,而在确切的底部,代表午夜。然后沿着另一边返回到顶部。然而,你选择让你的动画代表时间,让它遵循同样的基本运动。

罗盘

在指南针上,顶部的框架应该是在玩家的背上直接产卵。如果你是动画的传统风格的指南针,这将与针指向海峡向下。

在传统的指南针上(就像香草中使用的指南针),当你沿着动画条移动时,针沿着顺时针方向前进。半程的动画,它应该是指向与产卵直接在前面的播放器。然后,它沿着圆圈的另一边前进,仍然是顺时针运动。最后一帧应该再次接近球员的背部,虽然稍微靠近球员的右边。

提示:最后一帧..。再次: 同样,要注意不要将罗盘序列的顶部和底部帧相同,以免混淆玩家使用你的纹理包。只有顶部的框架应该有球员面对直接远离产卵。底部的框架应该稍微偏离中心。

下面是一个简单的例子:

扰流板(点击显示)

注意红点从哪里开始(在底部),以及它在顺时针方向的运动的一般流程,在最后一帧中它的起始位置几乎回到它的位置。这些都是重要的事情。

与往常一样,您不必以这种方式表示您的指南针,但是使您的版本代表相同的运动。

和时钟一样,你不需要有特定数目的帧。游戏将在360°的旋转中将你的帧平均分配给玩家。



[澪Ultimate]如何制作《资源包中的动画效果》基础教程!的评论 (共 条)

分享到微博请遵守国家法律