Skip to content

大家族-方块粉碎

相关插件

核心插件:

◆Drill_CoreOfBallistics 数学模型 - 弹道核心

◆Drill_CoreOfShatterEffect 系统 - 方块粉碎核心

相关子插件:

◆Drill_BattleShatterEffect 战斗 - 方块粉碎效果

◆Drill_LayerShatterEffect 地图 - 方块粉碎效果

◆Drill_EventShatterEffect 行走图 - 方块粉碎效果

◆Drill_PictureShatterEffect 图片 - 方块粉碎效果

◆Drill_DialogShatterEffect 对话框 - 方块粉碎效果

能够播放贴图的方块粉碎效果,并且还能支持倒放。

名词索引

以下你可以按住ctrl键点击下面的词,可以直接定位到想了解的名词:

方块粉碎方块粉碎 切割方式 粉碎时长计算
子插件效果粉碎倒放 碎片滞留设置 指令时差问题

插件关系

插件之间的关系如下:

方块粉碎

定义

方块粉碎: 指将目标贴图切割成数个碎片,并播放这些碎片四处分散的动画效果。

由于底层切割方式只能为横竖,因此碎片只能被切成方形碎片,所以称为“方块粉碎”。

F:pg mv箱og插件中文全翻译(Drill_up)v2.10件集合示例mgharacters件.jpg

常规情况下,方块粉碎为暂时的动画效果,碎片消失后即动画播放结束。

但是你可以在配置中自定义碎片的持续时长,或者直接控制暂停播放,使得碎片长时间滞留在界面中。详细可以去看看后面章节:碎片滞留设置

切割方式

切割方式: 即方块粉碎的切割方式,分为两种:切割矩阵 和 固定大小。

切割矩阵时,

切割按照行数和列数来进行切分。

下图中为3行4列的切割情况,一共分成了12等分。

你还可以设置行数12,列数1,切割出12个横条的效果。

图中第9枚(3行1列位置)为全透明的图片,虽然表面上看不见,但第9枚碎片却是真实存在的贴图,也会播放动画效果。

固定大小时,

方块按照固定的像素值来切割。

比如固定36像素,那么每个碎片都会以36像素的方式切割。

如果资源图片不够36像素整除,比如48大小,那么边缘部分会切割成36x12、12x36、12x12三种边缘大小的碎片。

自定义弹道

弹道: 是只描述一群粒子/碎片/子弹运动的轨迹。

具体弹道的内容,可以去了解下 ”32.数学模型 > 关于弹道.docx”。

F:pg mv箱og插件中文全翻译(Drill_up)v2.10件集合示例mgharacters件2.jpg

方块粉碎后,由于被切成了许多片,每块碎片的弹道轨迹都不同,从而形成了碎片四处散落的效果。

1)弹道全配置

所有碎片按照设置的自定义弹道来进行移动。

如下图弹道设置的四周扩散效果:

碎片的弹道具有回溯反转的功能,你可以使用插件指令倒放粉碎效果。

具体可以看后面章节:粉碎倒放

设计自定义粉碎时,你需要随时调整随机波动量,使得方块粉碎能够比较均匀地散开,不然所有碎片挤在一起,看不出粉碎的效果。

2)复制弹道,简单配置

你也可以照搬现成的粉碎效果,然后在其配置的基础上,简单自定义一些属性。

比如在一个已有的弹道基础上,复制,然后粘贴到新的配置中。

也可以调整速度倍率,让碎片散开速度的慢一点或快一点。

3)比例粉碎

通常的粉碎中,如果每块碎片的速度都一样,那么在散开时,会显得不那么均匀。

比如线性粉碎中,你能够清晰地看到一个圆向外扩散的样子。

于是,你可以考虑勾选比例粉碎,使得最外面碎片的速度最快,里面的速度较慢。通过设置 "碎片速度是否分比例" 可以使得碎片里外的速度不一样。

(波动量也可以让速度不一样,但是每块碎片的速度都会随机快慢。而比例速度,是里面的碎片一定慢,外面的碎片一定快。)

性能影响

方块粉碎是性能消耗大户,因为他能够将1个贴图变成大量的新贴图碎片,并且每个贴图都有自己的弹道与运动。碎片的数量 = 切割矩阵列数 x 切割矩阵行数。

注意不要设置太多贴图对象去同时播放方块粉碎效果即可。

粉碎时长计算

由于粉碎为并行执行,因此在设计时,还需考虑粉碎动画在特定时间内播放完的情况。

1)未设置间隔

如果延迟间隔为0,那么 持续时长 就是粉碎动画的实际时长。

2)设置了碎片依次间隔

如果你设置了碎片依次延迟,那么粉碎的时间会变得很长,因为:

动画播放的时间 = 持续时长 + 碎片数量x间隔

比如下图,延迟间隔为8,切割的碎片为 6x6 块。

即得出粉碎时长:120 +(6x6)x8 = 408帧。

子插件效果

粉碎倒放

大部分子插件都支持粉碎正放与倒放:

可以去 图片管理层 看看图片粉碎然后复原的设置。

粉碎暂停/继续播放

1)暂停、继续设置

你还可以设置粉碎动画暂停、继续。

暂停后永久保持,切换菜单、保存游戏等操作都不会使碎片消失。

2)初始就保持粉碎状态

你可以通过下面的插件指令,使得事件在初始就处于粉碎状态。

如果要播放复原动画,执行“继续播放”即可。

碎片滞留设置

碎片播放可以暂停/继续,再加上设置碎片不消失,就可以使碎片长期滞留在界面中。

切换菜单、保存读取时,碎片都不会还原。

通过这种滞留设置,你可以制作可打碎的花盆,并且还能将花盆复原。

可以去 互动管理层 看看。

但注意,离开地图后重新进入地图,碎片会消失。

(因为地图会重新载入事件,事件播放的粉碎碎片 也被重新载入了)

指令时差问题(对话框粉碎)

指令时差问题 是对话框粉碎中一个特殊的情况。

◆Drill_DialogShatterEffect 对话框 - 方块粉碎效果

由于对话框会阻塞插件指令,不能及时播放粉碎效果。

所以只能预先设置粉碎效果,然后再执行 对话框 指令。

1) 阻塞说明

进入对话框时,对话框会阻塞事件指令,指令不会并行生效。

如果粉碎提前执行了,或者在对话框关闭后才执行,那么效果会非常差。

过早执行(文字还没输出来,就已经碎消失了)

过晚执行(对话已经结束且关闭了,才执行粉碎)

如果执行的是 粉碎倒放 ,设置延迟[0]是可以的。

2) 使用 消息输入字符

对话框的持续时间是 不稳定 的,玩家如果不停地按 确定键 或者 加速键,那么很有可能因为时间太短,粉碎效果根本就执行不到。

因此你需要添加一些 消息输入字符 来调整时差。

3) 多个对话的时差

对话框粉碎有个特性:粉碎执行后永久有效。

因此,如果在第一个对话中,很短时间内就按了下一个对话,那么粉碎将会在第二个对话中执行;如果不按第一个对话,等第一个对话粉碎,第二个对话,就是已经粉碎且消失的状态,你将看不见任何内容

所以,一般每个对话都会执行一次 粉碎 和 立即复原。

这样可以确保每个对话都能够看见,且隔一段时间粉碎掉。

4) 对话框子窗口的时差

有时候 对话框和选择框 需要一起出现,如果对话框和选择框中间有任何其他指令,则这两个框都不会同时出现。为了避免分开问题,你需要提前对两个窗口进行粉碎。

从零开始设计(DIY)

设计提示

由于弹道本身的配置比较复杂,

这里建议最好先复制现成默认的配置,然后修改部分参数来看效果。

你也可以去了解下 ”32.数学模型 > 关于弹道.docx”。

设计一个图片粉碎效果

1. 设置一个目标

首先你需要先设想或看到一个目标,来根据具体情况来尝试模拟你想象的粉碎效果。

比如作者我这里想到一种粉碎方法,碎片一个个依次掉落的动画:

2. 结构规划/流程梳理

首先,要实现掉落,就要用到抛物线的弹道。

这里可以用示例中现成的,也可以自己设定。

然后,由于是依次掉落,那么需要设置依次间隔。

最后,安排一个图片,并播放配置好的粉碎效果。

3. 弹道设置

首先,拿一个示例的弹道作为参考。

复制抛物线弹道设置,然后贴到新的弹道配置中。

其实你可以点开看看,里面使用的是直角坐标模式。

即x轴做随机匀速,y轴做加速运动。

如果你想自定义碎片的速度,可以稍微修改x轴波动量和y轴初速度、加速度。

直角坐标模式,即x轴速度和y轴速度分开自定义。

如果y初速度为0,则为平抛运动。

具体可以去了解下 ”32.数学模型 > 关于弹道.docx”。

配置了弹道之后,设置碎片的持续时长,以及依次延迟间隔。

注意,间隔不要设置的太长了,设置太长碎片会播放得很慢。

另外,这里使用切割矩阵,因为后面还需确定 碎片数量,以此推算播放动画播放时间。

如果为固定大小,那么碎片数量就不好确定,要根据图片大小来计算。

4. 准备图片

编写事件指令,将一个小爱丽丝图片放在界面上。

执行方块粉碎指令。

由于方块粉碎是并行效果,如果要执行复原指令,需要计算粉碎时间。

动画播放的时间 = 持续时长 + 碎片数量x间隔

即:120 +(6x6)x8 = 408帧。

在方块粉碎后,等408帧,然后再播放反转粉碎。

5. 测试效果

完成上述内容,即完成了方块粉碎的设置。

测试效果图如下。

其他速度、播放时长的细节可以再回头打开 方块粉碎 的配置,去改改值。

贡献者

暂无相关贡献者

页面历史

暂无最近变更历史