有没有插件能让攻击动画中的细胞变大?

我使用了类似 CT_bolt Animation Extended 和 Coolie Individual Anim Dimension 这样的插件,但攻击动画仍然保持为 192x192 的样子,导致我的角色精灵被裁剪。有人能告诉我如何使用它吗?因为我尝试了所有步骤,但它没有任何反应。或者有没有更容易上手的插件?

呼~~~~~~~~

我不确定这是否能解决你的问题,因为我之前从未需要用到更大的动画单元格,但我查看了 CTB Animation Extended 插件。看起来它支持更改单元格大小。

例如,你可以将动画表重命名为类似 400!AnimationName.png 的名称,这应该会使单元格大小变为 400×400,而不是默认的 192×192。扩展后的文件应放入 img/animations/extended/ 文件夹中。

不过我本人并未对此进行测试,所以我不完全确定它是否能在你的特定环境中正常工作。

这两个插件都会覆盖同一个函数 Sprite_Animation.prototype.updateCellSprite,因此当两者同时启用时,只有位于插件列表下方的那个插件才会实际生效。我怀疑这就是问题的全部所在。例如,CT_Bolt 的设置是正确的,但 Coolie 位于其下方,因此由 Coolie 负责绘制单元格,并且由于动画名称中没有 <iad> 标签,它默认使用 192。建议关闭其中一个插件,只保留一种方法。

如果你保留 CT_Bolt,则需要在数据库指向的动画文件名中包含 !,例如 400!YourAnim。系统会先在 img/animations/extended/400!YourAnim.png 查找,如果找不到,则回退到普通的 img/animations/400!YourAnim.png。在测试运行时按 F8 打开控制台,如果未找到扩展文件,它会打印一条“不存在”的行,这样你就能立即知道是名称还是文件夹有问题。

如果你保留 Coolie,则标签应放在数据库中的动画名称里,而不是文件名中,例如 Fireiad:400,400,+0,+0,中间不要有空格。该动画中的两张图片必须具有相同的单元格大小,且编辑器预览不会反映这一点,因此在编辑器中看起来会不正确,但在游戏中则是正确的。

我并没有同时使用两者。如果不行,我就一个一个地试。但即便如此,都没有效果。

目前为止效果最好的是 YED_SideViewBattler,但不知道为什么索引不起作用??

无论我如何更改,它都保持为索引 0,也就是待机状态。我现在不知道该怎么办了…

<Sideview Battler Frames: 9>

<Sideview Battler Speed: 20>

<Sideview Battler Size: 646, 677>

<Scale Sprite: 50%>

Name: walk

Index: 1 (<- 这不起作用???)

Loop

Frames: 3

Speed: 20

</Sideview Battler Motion>

关于那个注释标签,我有两个疑问。

有一个闭合的 </Sideview Battler Motion>,但在 Name 行上方没有对应的 <Sideview Battler Motion> 开头标签。如果在注释框中保持这种状态,整个代码块都不会被读取,因此 Index 没有任何可操作的内容。每个动作都需要自己的开始和结束标签对。

更大的问题是,walk 看起来是你定义的唯一动作。战斗中的角色处于待机状态,播放的是 wait 动画,而不是 walk。因此,如果没有 wait 代码块,系统会回退到索引 0。这与你看到的现象非常吻合:无论你在 Index 中输入什么,精灵图都停留在第 0 行,因为 walk 仅在角色向目标迈步时才播放。所以我认为首先应该添加一个 wait 代码块:

<Sideview Battler Motion>
Name: wait
Index: 0
Loop
Frames: 3
Speed: 20
</Sideview Battler Motion>
<Sideview Battler Motion>
Name: walk
Index: 1
Loop
Frames: 3
Speed: 20
</Sideview Battler Motion>

Index 代表精灵图上的行,当 Size 为 646、677 时,每一行的高度为 677。因此,精灵图必须足够高,以实际容纳第 1 行,即高度至少为 1354。如果它是一张单行图片,那么索引 1 指向的是底部边缘之外,那里没有任何可绘制的内容。

顺便再检查一下顶部是否包含了 <Sideview Battler: YourSheetName>,因为如果没有它,这些动作代码块几乎无法发挥作用。

精灵图中有多行。这是我使用的那一行

所以待机动作使用索引 0 效果很好

但是当我想用索引 1 显示攻击动画时,它没有切换过去。相反,无论怎样它都一直显示索引 0 的动画…

哦,我也尝试过修复它。

<Sideview Battler: candy>
<Sideview Battler Frames: 9>
<Sideview Battler Speed: 20>
<Sideview Battler Size: 646, 677>
<Sideview Battler Weapon: false>
<Scale Sprite: 50%>

<Sideview Battler Motion>
Name: wait
Index: 0
Loop
Frames: 3
Speed: 20
</Sideview Battler Motion>

<Sideview Battler Motion>
Name: walk
Index: 0
Loop
Frames: 3
Speed: 20
</Sideview Battler Motion>

<Sideview Battler Motion>
Name: defend (<- 用于测试动画)
Index: 1 (<- 仍然没有任何效果)
Loop
Frames: 9
Speed: 20
</Sideview Battler Motion>


嗯,名字“Defend”并不是 MV 要求的动作名称之一,因此该动作永远不会被播放,精灵会一直停留在等待状态。当角色执行防御时,MV 请求的是“guard”动作,所以请将其重命名为 guard。完整的动作列表包括:walk(行走)、wait(等待)、chant(吟唱)、guard(防御)、damage(受伤)、evade(闪避)、thrust(突刺)、swing(挥砍)、missile(投射)、skill(技能)、spell(魔法)、item(道具)、escape(逃跑)、victory(胜利)、dying(濒死)、abnormal(异常)、sleep(睡眠)、dead(死亡)。对于普通攻击,根据系统设置中的 [SV] 攻击动作,名称应为 thrust、swing 或 missile 之一,因此攻击行的名称应使用这些之一,而不是 attack。

关于单元格大小。论坛显示该素材表的尺寸为 1920×1341。如果 Size(大小)设置为 646 和 677,Frames(帧数)为 9,那么一行需要 5814 像素宽,这意味着大部分帧都会超出右边缘。1920 除以 9 约为 213,1341 除以两行约为 670,因此如果素材表的布局是横向 9 列、纵向 2 行,我建议尝试将 Size 设置为 213 和 670,看看帧是否能对齐。

所以……基本上,是把整个单独的精灵缩小?

2026-08-17 17-04-59.zip (2.4 MB) 我录制了游戏内的实际运行情况,即使我修正了名称,它仍然无法工作……这还有救吗,各位?;-;

没有缩放,没有。Size(尺寸)参数告诉插件工作表中每个单元格的尺寸,以便它知道在哪里进行切割,而 Scale Sprite(缩放精灵)是唯一改变游戏中精灵绘制大小的参数。当 Size 设置为宽度 646,而工作表总宽度为 1920 时,每行只能容纳三个单元格,因此第三帧之后的任何帧都在读取图像右侧的空白区域。我怀疑这就是你的视频中精灵消失的原因。待机动作仅使用 3 帧,因此它停留在工作表中存在的部分;但攻击动作有 9 帧,从第 4 帧开始它就不绘制任何内容了,这在我看来就像第二张截图显示的那样。

所以我建议将 Size(尺寸)设置为 213, 670,Frames(帧数)保持为 9 不动。这样精灵将以其实际的单元格尺寸绘制,如果最终尺寸比你想要的要小,请从 50% 开始增加 Scale Sprite(缩放精灵)的值,而不是去改动 Size(尺寸)。

你能把现在的攻击动作块(包含新名称)粘贴出来吗?

<Sideview Battler: candy>
<Sideview Battler Frames: 9>
<Sideview Battler Speed: 20>
<Sideview Battler Size: 646, 677>
<Sideview Battler Weapon: false>
<Scale Sprite: 50%>

<Sideview Battler Motion>
Name: wait
Index: 0
Loop
Frames: 3
Speed: 20
</Sideview Battler Motion>

<Sideview Battler Motion>
Name: walk
Index: 0
Loop
Frames: 3
Speed: 20
</Sideview Battler Motion>

<Sideview Battler Motion>
Name: guard
Index: 1
Loop
Frames: 9
Speed: 20
</Sideview Battler Motion>


这是新的配置。
另外,我觉得并没有精灵消失的问题?目前的问题是精灵没有切换到所谓的索引 1?

好吧,忽略我之前关于 Size 的说法,保持 646 和 677 不变。

在索引 1 处,我阅读了 YED 插件的文档,发现里面有一条规则可以解释你看到的现象。任何 MV 请求但你未定义的动作 MV 都会回退到名为 other 的动作,如果 other 也不存在,则会回退到行走(walk)。你的行走动作是索引 0。因此,除了防御(Guard)之外的所有动作都会绘制第 0 行,无论其他设置如何;而防御动作只有在你在战斗命令菜单中实际选择“防御”时才会被请求。如果你是通过选择“攻击”来测试的,MV 会根据武器类型请求突刺(thrust)、挥砍(swing)或射击(missile),但这些在你的 notetag 中都不存在,因此最终会回退到行走动作。

要快速证明第 1 行确实可达,可以在其他标签下添加这一行:

<Sideview Battler Motion: other, 1>

添加这行后,任何你未定义的动作都会从第 1 行绘制,而不是第 0 行。因此,攻击、受到伤害以及其他所有未定义的动作在视觉上都应该切换到第 1 行。如果这有效,那么问题就只是为每个你想要的动作名称添加一个包含正确行号的块。如果即使定义了 other 仍然停留在第 0 行,那么说明还有其他问题,我需要知道你开启了哪些其他战斗插件,特别是 Yanfly 的 Battle Engine Core,因为这些插件可能会强制使用它们自己的动作。

有两件事需要在检查时确认:

  1. 测试时,你选择的是“防御”还是“攻击”?
  2. 糖果贴图(candy sheet)是否位于 img/sv_actors 文件夹中?插件会从与正常侧视图战斗者相同的文件夹加载它。