初步设想
本活灵感来源:
- 使用APEX元素魔改PVZ:大家好啊,我是西瓜条投手-哔哩哔哩
- 视频制作风格模仿:《因为维护而陷入戒断反应的刀客塔》
- 不足的元素可以涂鸦,也可以在传奇身上涂鸦值 勿 尢 乩 偪 卩
想法:
- 希尔的大放在棋盘上肯定很有效果
- 万迪奇的大激光乱飘,五枪全空
- 兰伯特的塞拉
- 阳光改小电,向日葵改电妹
所用工具
- 解包打包工具:PopStudio(PVZ Studio 2022) 介绍贴
- 游戏版本:1.2.0.1073年度版植吧汉化版
- PVZUtil 1.0
- The ".fla" files of pvz1
- v3.1辅助工具
其他网站:
Day0:理论基础了解以及全部资源获取
解包文件夹注释:
main_pak\properties\LawnStrings.txt
内置所有介绍文本。比如植物僵尸图鉴、UI按钮的文字。- 修改动画涉及到
compiled
与reanim
、particles
这三个目录。 images
是一些UI、封面贴图之类的data
是字体库
PVZ动画修改的大致流程
这里以修改向日葵的动画为例:本部分转载来源
打开 Sunflower.fla
安装 Animate 后,.fla 文件会自动关联,可以直接双击打开。
打开后可能会弹出如下警示框:
警示框:此版本不支持 AS 2.0
因为这个游戏也蛮老了,出现这种情况也在意料之中。
然而并不用理会这个警告,因为这个文件中根本没涉及到动作脚本。
保险起见我还是用低版本的 Flash 查看了一下,果然根本就没有脚本。
在 Flash CS4 中查看脚本
修改动画
由于不知道游戏中具体的调用逻辑,我们只能推测这些帧的调用时机;向日葵相对简单,不难看出 2~4 帧构建了一个眨眼的动画,5~29 帧则绘制了向日葵左右摇摆的循环动作。但是眨眼动画的调用时机还不是很清楚,只能通过游戏时向日葵的行为来分析。
作为示例,这里修改了第八帧,将向日葵的脸拉到了左下角。
修改动画
导出 .reanim 文件
双击运行脚本文件 FlashReanimExport.jsfl,在 Animate 中选择作为命令运行。
输出栏会打印一些信息,看到 done 字样说明导出成功,此时目录下会多出一个与 .fla 文件同名的 .reanim 文件。
编译 .reanim 文件
打开 pvzUtil 软件,点击 compile 按钮。
在弹出的对话框中选择刚才生成的 .reanim 文件进行编译。
输出框会打印提示信息,同时目录下多出一个 .compiled 文件。
替换并打包
用生成的 .compiled 文件替换 compiled 目录下的同名文件(具体是 reanim 目录还是 particles 目录要看情况,这里向日葵的动画是在 reanim 目录下的)。
使用打包工具将解包后的整个目录(已替换文件)重新打包为 main.pak,并覆盖游戏目录下的原包。
目录涉及个人情报已隐去
打开游戏查看效果
修改后的向日葵
我们发现向日葵已经变得十分鬼畜(笑)。
小提示
不要删除工程里的原有图层,否则会导致游戏出错。(具体机理未知,总之别动它)
尽量不要改动关键帧的打点位置,因为种子袋上的图像可能是调用了某一关键帧的图像;比如以上实例中修改的第八帧,导致在游戏中会变成这样:
种子袋图片发生改变
获取APEX模型并导入Blender
使用Legion+导出common.rpak
中的pilot_light_wattson
给Blender安装CAST文件导入支持插件:cast
安装Legion+推荐的APEXToolBox:Apex-Toolbox
资源库找不到怎么塞进去,所以先放一放
建模使用的是FBX格式,导出后导入Blender,发生了如下的问题:
材质显示成里面的材质了应该是,到最后查到了,是在这里更改
我感觉应该还是有点什么别的问题,但是至少能看到正面材质了,所以先这样。
插件导入:
.SEAnim
importer: https://github.com/SE2Dev/io_anim_seanim SE2Dev (Blender).SEModel
importer: https://github.com/dtzxporter/io_model_semodel/tree/blender-28 DTZxPorter (Blender).cast
importer: https://github.com/dtzxporter/cast DTZxPorter (Blender & Maya)- Apex Toolbox Plugin https://github.com/Gl2imm/Apex-Toolbox @My Roblox UGC Must Buy (Blender)
ApexToolbox的资源文件绑定:
接下来试一试导入APEX自带的动作。
还是common.rpak
动作导入成功,小部分动作无法正常加载
给电妹摆好了坐姿,接下来是按照向日葵的图片格式分别输出电妹各个身体部位
Day2:制作电妹动作以及魔改向日葵文件,阳光改为3d小电
然后我调教好了动画和姿势,现在我在思考如何把这些玩意塞到pvz里。
- blender能输出的、带有透明度的RGBA视频只有视频编码为Webm的FFmpeg视频
- 降低分辨率为360p、12fps,wattson_FFmpeg_Webm_mkv的大小约为2mb
最后的方案是直接逐帧导出png,然后塞到fla里
要注意的点有:
- 貌似不能太长(100帧),太长的话运行flashreanimexport.jsfl脚本会报错
- 在导入舞台之前就要命名规整,如wattson000-wattson030,然后将reanim和那31个图片一起扔到reanim文件夹
好像是发现的BUG:
PopStudio打开时间太久会导致打包出来的pak出现奇怪的问题????具体表现为:多次使用PopStudio打包后出现打包好后进入游戏点击开始后闪退的问题,估计此时是在加载main.pak。而后我将向日葵的原素材替换进去,此时游戏应该是完全没有问题的,结果按下冒险模式后还是会闪退。于是怀疑是打包软件的问题,重启PopStudio后修改main.pak正常运行。
然后后面运行的时候又是这样了,重启Popstudio也一样,所以好像不是它的bug
- 然后我把原来的向日葵放进去,打包好后第一次打开是闪退,第二次打开为正常。
- 然后我又把刚刚闪退的电妹reanim放进去,打包后tmd居然可以进了。。。关游戏什么都不改再开也可以进。
- 然后我在fla里删掉了前面三帧,更改动画。导出打包,再次闪退。
- 然后我重复第一步
- 然后我重复第三步,居然他妈的可以运行了。
我导入31张图的时候,游戏内的向日葵会出现1帧的空白,不知道是为什么,后来删掉了几帧就正常了
然后还做了阳光的更新,顺带一提apextoolbox插件的一键导入模型实在是太好用了:
day3:屁罐动画制作与大蒜动画魔改
好哥们提供的灵感,绝了
这次魔改没有遇到什么问题,较为顺利
day4:豌豆射手文件研究和密客模型动作初步调整
很好奇为什么僵尸改了个豌豆头就可以使用豌豆攻击,我猜没准是单纯依靠动画判定是否要射出豌豆的。先魔改下豌豆射手,这次打算改成密客:
豌豆射手原版fla动画解读
- 1-4帧:仅头部,眨眼动画
- 5-29帧:仅下半部分,待机摇摆动画
- 30-79帧:细分为30-54帧和55-79帧两部分,前半部分头部待机,后半部分为射出豌豆动画
- 80-104帧:豌豆射手整体待机动画
猜测:
- 未检测到敌人时循环第四部分待机,定时循环第一部分眨眼动画
- 检测到敌人时等第四部分循环完毕后进入攻击动画的循环,应该是第二部分和第三部分组合起来的。
为了验证,删除了第二部分的关键帧打包进行测试。
然后。。双发射手的下体不见了
原来PeaShooter是双发射手,PeaShooterSingle才是单发的豌豆射手
但是即使是这行没有敌队目标,貌似也不会加载第四部分的动画?
而且豌豆的发射高度出现了问题,好像跟仙人刺站起来的高度一样高了
答案就是并不会
先换成单发的射手再说:单发和双发的格式一模一样,时间都一样。
可能第四部分是用来放在图鉴的?
答案就是也不是,那这第四部分的动画是用来干什么的呢?
接下来删掉第四部分的动画进行测试:
答案就是没有任何影响啊!那最后面这段动画有什么意义?
密客动作及材质
还研究了所有的密客动作:找到三个还算能用的。。
待机(crypto_menu_lobby_center_select_idle_0.seanim)
感觉应该是意识操控无人机的奇怪草生动作(crypto_ground_emote_dronesword_0.seanim)
这个滑铲动作太过草生以至于很适合做封面(crypto_slide_pistol_0.seanim)
《今晚南北大道你等着》
还接触到了神级插件:Node Wrangler
这个插件可以无视文件名直接匹配最合适的材质,太他妈好用了
地图导入
- 获取地图文件,解包解的我一头雾水,所以我选择下载
- 以修改日期排序,最近的是mp_lobby_S16.rar(384MB)、mp_rr_desertlands_mu4.rar(6.95GB)
- 还挑着下载了最早上传的mp_lobby_S9.rar(706MB)
- 还下载了不知道是什么但是随便下了就下了的mp_rr_arena_composite.rar(1.83GB)
lobby应该是大厅,但是以mprt导入进去之后什么都没有,以cast格式导入更是直接报错,后续才知道Blender版本是3的问题,mprt其实还是以cast为基础,而cast仅支持blender2的版本。。
更改blender为2.9LST(这个版本居然今年二月份还在更新,还真是长期支持),再次安装插件,导入cast文件(好像是)正常。不知道用2的版本导入后保存项目再用3打开行不行。
再次导入lobby,导入进去之后感觉像是只有一部分,再导入s9的大厅,多了一些藤蔓。猜测为大厅是由各个赛季的文件组合而成的,如果全部导入应该就差不多了。
day5:地图文件的导入尝试
昨晚我又开始测试大地图,比如碎月。这个7个G的地图怎么想都应该是碎月吧。一开始在blender3导入了半个小时打开一看空的,tm果然插件不行不能硬上。后来换成2之后看到大厅貌似是导入成功了,就作死导入这个巨大无比的地图,只能说地图是凌晨四点开始导入的,人是五点睡的,醒是11点半醒的,起来一看99.2%。导入完之后blender就彻底未响应了。。。直到我在写这里的时候它仍然是未响应。
要我说实在不中想想法不导入地图了,直接给人物动作加绿幕然后pr得了,当然导入地图其实是为了另外一个活。
啊说起人物动作,下载了california girls的mmd动作,结果完全不会绑定,要做的事情还真是多啊。。。
这个貌似是碎月的地图我基本上是放弃了,后面看看能不能导入unity什么的吧,现在开始再试试那个不知道是什么但是随便下了就下了的mp_rr_arena_composite.rar(1.83GB),以mprt格式导入之后又一片空白(虽然几秒就导入进去了)。
不对。
拉大视图结束点,按A全选,看到了这样的情况:
这啥啊 这是模型没导入好吗
然后还是老老实实全删了用cast导入
哦我草
那为什么要用mprt呢?
切换为材质预览模式后blender.....不对是整个电脑都不动了。几秒之后blender闪退。又试了一次还是一样
wtf难不成这两个同时装会导致bug????
删掉了cast之后导入semodel:
我靠为什么semodel关不掉,导入菜单里还是有它
ok重启之后就好了
ok关掉semodel之后cast还是不行
还是绕回来搞密客的动作吧
又下了个mp_rr_aqueduct,等把密客动作调好再回来看看
导入密客模型,删除原来自带的骨骼,添加Rigify骨骼
调整过程在编辑模式和姿态模式多次调整切换
调整好之后点击
然后完全没有生成控制器!而且我其实已经删掉面部骨骼了,查了查发现是这样的
然后又仔细找找,发现tmd:
你这骨骼藏得挺深啊
现在没有面部错误了
NICE!
先选模型再选骨骼,刚刚捏了半天的元骨骼就不选了
使用MMD 2 Rigfy插件时,导入vmd操作出现的报错:
不知道经历了什么反正重新用元骨骼生成了一个rig然后导入vmd就好像成功了!
估计是顺序问题,正常顺序大概是:
模型删掉骨骼 -> 创建rig元骨骼 -> 调整骨骼位置 -> 生成rig控制器 -> 使用mmd2rigfy导入vmd -> 绑定控制器与模型
效果只能说是惨不忍睹
后续修改的时候遇到报错:RIGIFY ERROR Bone 'spine.004': Cannot connect chain - bone position is disjoint.lncorrect armature for type 'chain_rigs'
原来是连接问题,修改后正常生成。
跳舞这个坑以后再说吧,这个衣服乱飞给我真整不会了。
先搞pvz吧
其他教程:
- https://note.com/4rin/n/n09e9634cf912
- https://www.bilibili.com/video/BV13a411j71J/
- https://www.bilibili.com/video/BV1fQ4y197hP/
- https://www.bilibili.com/video/BV1V541117Fm/
- https://tieba.baidu.com/p/6927224944
vmd动作
- https://www.bilibili.com/video/BV1bR4y1g7c5/
骨骼绑定
- :star: https://www.bilibili.com/video/BV1tp4y16771/
- :star: https://blog.csdn.net/ttm2d/article/details/105519642
- https://www.bilibili.com/video/BV1TK4y1m7QB/