DNF阿拉德游戏论坛

标题: DNF梦太晓Ani文件可视化编辑工具(含:NPK文件批量转V2版) [打印本页]

作者: dnf台服吧    时间: 2020-3-18 12:38
标题: DNF梦太晓Ani文件可视化编辑工具(含:NPK文件批量转V2版)
(, 下载次数: 8)


更新说明:
软件为Rs组开源工具修改而来,得到了若言anitool源码的帮助 梦太晓制作
点击链接加入群聊【梦太晓的dnf交流群】:https://jq.qq.com/?_wv=1027&k=5uer9Ks (群号820771750)
群主年费超会到期了,普通超会都不备2000人群资格固加不了群啦,私聊我也没用。…

v0.5更新 2019年4月25日
        1.修复V5转换效果很丑的问题(颜色索引和透明度错误)
        2.去除部分测试时的预置内容
        3.修复BOX的原点默认显示
        4.(待后续添加,导出时按照实际坐标填充透明像素)

v0.39更新 2019年4月20日
        1.修复部分NPK转版本会报错误
        2.推荐不要使用多线程(并不会快)
        3.已测试完整的转国服imagepacks2 6653个NPK 10G需要6小时 转换完毕14.2G
        4.V5转换的效果较差 效率较慢,待后续参考恋恋兔子的C艹源码优化
        5.优化拖拽时编辑框的路径处理方式

v0.31更新 2019年4月16日
        1.支持V5的识别
        2.更换了底层写法,部分功能失效
        3.ani的编写选项卡中新增修正坐标,可在按钮处右键,将剪辑版中的ani的每一帧都加上某条标签(霸体等)
        4.增加快速生成文件功能:可快速生成obj文件(mob待完善)
        5.增加导出功能:包括以下功能 均可批量(可选保留全路径,生成txt文件记录)
                从NPK导出IMG(可选保留全路径)
                从IMG导出PNG
                从NPK导出PNG(可选保留全路径)
               
                PNG合并为IMG(若有全路径txt则一并复制到IMG目录)
                IMG合并为NPK(若有全路径txt则完美还原)
               
                V4/5/6版本的IMG直接转为V2(直接NPK转至NPK)
               
                NPK合并为NPK(支持是否启用自定义分隔符)
        6.启动时QQ群验证成功后会生成配置文件,不丢失则不需要重新验证
        7.列表框下增加定位img功能

v0.2更新支持
        识别索引型贴图
        识别v4 v6,v5暂时不能识别
        可以识别并打开img文件
        添加IMG查找NPK(使用数据库,第一次释放空数据库文件 重建数据库需要5分钟,一次建立,之后都是秒出结果)。
        并提供文件定位。右键NPK列表框 在资源管理器中显示NPK。双击NPK编辑框也行
        新增识别ANI延迟 来播放动画
        新增ANI编写功能,常用功能均可找到,可以根据模板帧生成多帧信息(可倒序)
        增加支持两个框
        修复已知BUG

工具使用说明:
NPK打开方式:打开、拖拽、识别ani按钮(自动寻找)
        IMG列表框:右键复制文件名,可自动去sp/后到剪辑板
        显示的图片 就是新加一个动画物体。下面所述物体=图片
物体
        图片列表框:右键创建不销毁物体
        右键移动选择框:销毁所有物体
        勾选移动选择框后:
                左键显示物体信息
                左键拖拽改变物体位置(实时显示信息)
                右键销毁鼠标处物体(最顶层的一个)
                滚轮滚动缩放大小
                方向键↑↓调整物体层次
                方向键←水平翻转
                方向键→垂直翻转
                双击获取当前位置-实际坐标的值
绘制
        勾选绘制选择框:
                (正确的框画法:
                        原点在对象脚下
                        XY平面的中心为原点
                        XY平面与原点在同一高度
                        实际Z起点由下坐标确定,高度由长度决定)
                左键拖拽画框(Z轴支持↓画或↑画)
                右键撤销一步
        勾选二框选择框:同上
微调
        选择对象组合框:选取操作对象
        点击微调按钮后:方向键调整对象位置/大小
        右键微调按钮:切换模式 调整位置/调整大小
单击识别ani按钮:
        获取剪辑板内容,识别img`判断NPK,
        完全匹配时自动打开
        未能完全匹配到时,提示模糊匹配(NPK文件名含括号 中英文等字符)
        当模糊匹配结果为1时自动打开
        模糊匹配结果大于1时,加入列表框待选
        打开后自动选择相应img
ANI操作 窗口
        识别ani后列表框自动识别多种信息并标识,并创建不销毁物体
        勾选播放选择框:根据识别到的延迟内容播放ani动画
        选择帧列表框项目,查看相应帧信息
切换选择夹
        右边是模板编辑框,生成的ani均以模板为标准(img 坐标 延迟等)
        ani编辑各种按钮:将按钮文字插入模板编辑框/输出编辑框
        攻击框受伤框的数据来源可选框1/框2
        生成ani时支持 要几帧/到哪帧(起始帧号在模板编辑框中),支持倒序(-5=倒序生成5帧,到哪帧小于起始帧=倒序)
智能生成
        img=将当前选中的img
        起始帧输入值
        要几侦/到哪帧由单选框决定
        同样支持倒序


AI模式判断参数:
  1. #PVF_File
  2. PVF文件头
  3. [ai pattern]
  4. AI模式
  5. [think][void]`is target in attack area()`100.0  100.0   40.0    40.0   
  6. 判断【目标在不在这个小区域内?】
  7. [true][think][void]`get random()`0.0    100.0   
  8. 目标在小区域内,则【从0-100取随机数】
  9.     [think][last result]`<=`15   
  10.     判断【随机数是不是0-15范围内?】
  11.     [true][think][void]`is the skill in cooltime()`8   
  12.     随机数在0-15范围内,则【8号技能是否在冷却中?】
  13.           [true][return]-1  
  14.           随机数在0-15范围内,且8号技能在冷却中无法使用,则返回-1空值 不做任何事
  15.           [false][return]8  
  16.           随机数在0-15范围内,且8号技能冷却完毕可以使用,则返回8 使用8号技能
  17.           [/think]
  18.           判断【8号技能】完毕
  19.     [false][think][last result]`<=`30   
  20.     判断【随机数是不是15-30范围内?】
  21.              [true][think][void]`is the skill in cooltime()`9   
  22.              随机数在15-30范围内,则【9号技能是否在冷却中?】
  23.                    [true][return]-1
  24.                    随机数在15-30范围内,且9号技能在冷却中无法使用,则返回-1空值 不做任何事
  25.                    [false][return]9
  26.                    随机数在15-30范围内,且9号技能冷却完毕可以使用,则返回9 使用9号技能
  27.                    [/think]
  28.                    判断【9号技能】完毕
  29.              [false][think][last result]`<=`45   
  30.              判断【随机数是不是30-45范围内?】
  31.                     [true][think][void]`is the skill in cooltime()`0   
  32.                     随机数在30-45范围内,则【0号技能是否在冷却中?】
  33.                           [true][return]-1  
  34.                           随机数在30-45范围内,且0号技能在冷却中无法使用,则返回-1空值 不做任何事
  35.                           [false][return]0  
  36.                           随机数在30-45范围内,且0号技能冷却完毕可以使用,则返回0 使用0号技能
  37.                           [/think]
  38.                           判断【0号技能】完毕
  39.                     [false][think][last result]`<=`60   
  40.                     判断【随机数是不是45-60范围内?】
  41.                            [true][think][void]`is the skill in cooltime()`1
  42.                            随机数在45-60范围内,则【1号技能是否在冷却中?】
  43.                                  [true][return]-1   
  44.                                  随机数在45-60范围内,且1号技能在冷却中无法使用,则返回-1空值 不做任何事
  45.                                  [false][return]1   
  46.                                  随机数在45-60范围内,且1号技能冷却完毕可以使用,则返回1 使用1号技能
  47.                                  [/think]
  48.                                  判断【1号技能】完毕
  49.                            [false][think][last result]`<=`75
  50.                            判断【随机数是不是60-75范围内?】
  51.                                   [true][think][void]`is the skill in cooltime()`2  
  52.                                   随机数在60-75范围内,则【2号技能是否在冷却中?】
  53.                                         [true][return]-1   
  54.                                         随机数在60-75范围内,且2号技能在冷却中无法使用,则返回-1空值 不做任何事
  55.                                         [false][return]2   
  56.                                         随机数在60-75范围内,且2号技能冷却完毕可以使用,则返回2 使用2号技能
  57.                                         [/think]
  58.                                         判断【2号技能】完毕
  59.                                   [false][think][last result]`<=`100
  60.                                   判断【随机数是不是75-100范围内?】
  61.                                          [true][think][void]`is the skill in cooltime()`3   
  62.                                          随机数在75-100范围内,则【3号技能是否在冷却中?】
  63.                                                [true][return]-1
  64.                                                随机数在75-100范围内,且3号技能在冷却中无法使用,则返回-1空值 不做任何事
  65.                                                [false][return]3
  66.                                                随机数在75-100范围内,且3号技能冷却完毕可以使用,则返回3 使用3号技能
  67.                                                [/think]
  68.                                                判断【3号技能】完毕
  69.                                          [false][return]-1  
  70.                                          随机数大于100,则返回-1空值 不做任何事
  71.                                          [/think]
  72.                                          判断【75-100】完毕
  73.                                   [/think]
  74.                                   判断【60-75】完毕
  75.                            [/think]
  76.                            判断【45-60】完毕
  77.                     [/think]
  78.                     判断【30-45】完毕
  79.              [/think]
  80.              判断【15-30】完毕
  81.         [/think]
  82.         判断【0-15】完毕
  83.      [/think]
  84.      取【随机数】完毕
  85. [false][think][void]`is target in attack area()`200.0   200.0   110.0   110.0   
  86. 目标不在小区域内,则判断【目标在不在这个大区域内?】
  87.        [true][think][void]`get random()`0.0 100.0   
  88.        目标在大区域内,则【从0-100取随机数】
  89.           [think][last result]`<=`30
  90.           判断【随机数是不是0-30范围内?】
  91.              [true][think][void]`is the skill in cooltime()`5   
  92.              随机数在0-30范围内,则【5号技能是否在冷却中?】
  93.                    [true][return]-1
  94.                    随机数在0-30范围内,且5号技能在冷却中无法使用,则返回-1空值 不做任何事
  95.                    [false][return]5
  96.                    随机数在0-30范围内,且5号技能冷却完毕可以使用,则返回5 使用5号技能
  97.                    [/think]
  98.                    判断【5号技能】完毕
  99.              [false][think][last result]`<=`60   
  100.              判断【随机数是不是30-60范围内?】
  101.                     [true][think][void]`is the skill in cooltime()`10   
  102.                     随机数在30-60范围内,则【10号技能是否在冷却中?】
  103.                           [true][return]-1  
  104.                           随机数在30-60范围内,且10号技能在冷却中无法使用,则返回-1空值 不做任何事
  105.                           [false][return]10
  106.                           随机数在30-60范围内,且10号技能冷却完毕可以使用,则返回10 使用10号技能
  107.                           [/think]
  108.                           判断【10号技能】完毕
  109.                     [false][think][last result]`<=`90   
  110.                     判断【随机数是不是60-90范围内?】
  111.                            [true][think][void]`is the skill in cooltime()`12   
  112.                            随机数在60-90范围内,则【12号技能是否在冷却中?】
  113.                                  [true][return]-1   
  114.                                  随机数在60-90范围内,且12号技能在冷却中无法使用,则返回-1空值 不做任何事
  115.                                  [false][return]12  
  116.                                  随机数在60-90范围内,且12号技能冷却完毕可以使用,则返回12 使用12号技能
  117.                                  [/think]
  118.                                  判断【12号技能】完毕
  119.                            [false][return]-1   
  120.                            随机数大于90,则返回-1空值 不做任何事
  121.                            [/think]
  122.                            判断【60-90】完毕
  123.                     [/think]
  124.                     判断【30-60】完毕
  125.              [/think]
  126.              判断【0-30】完毕
  127.        [/think]
  128.        取【随机数】完毕
  129. [false][think][void]`is target in attack area()`300.0   300.0   210.0   210.0   
  130. 目标不在大区域内,则判断【目标在不在这个更大的区域内?】
  131.        [true][think][void]`get random()`0.0 100.0   
  132.        目标在更大的区域内,则【从0-100取随机数】
  133.      [think][last result]`<=`50  
  134.      判断【随机数是不是0-50范围内?】
  135.              [true][think][void]`is the skill in cooltime()`11  
  136.              随机数在0-50范围内,则【11号技能是否在冷却中?】
  137.                    [true][return]-1
  138.                    随机数在0-50范围内,且11号技能在冷却中无法使用,则返回-1空值 不做任何事
  139.                    [false][return]11   
  140.                    随机数在0-50范围内,且11号技能冷却完毕可以使用,则返回11 使用11号技能
  141.                    [/think]
  142.                    判断【11号技能】完毕
  143.              [false][think][last result]`<=`99   
  144.              判断【随机数是不是50-99范围内?】
  145.                     [true][think][void]`is the skill in cooltime()`4   
  146.                     随机数在50-99范围内,则【4号技能是否在冷却中?】
  147.                           [true][return]-1  
  148.                           随机数在50-99范围内,且4号技能在冷却中无法使用,则返回-1空值 不做任何事
  149.                           [false][return]4  
  150.                           随机数在50-99范围内,且4号技能冷却完毕可以使用,则返回4 使用4号技能
  151.                           [/think]
  152.                           判断【4号技能】完毕
  153.                     [false][return]-1   
  154.                     随机数大于99,则返回-1空值 不做任何事
  155.                     [/think]
  156.                     判断【50-99】完毕
  157.              [/think]
  158.              判断【0-50】完毕
  159.        [/think]
  160.        取【随机数】完毕
  161. [false][return]-1   
  162. 目标不在更大的区域内,则返回-1空值 不做任何事
  163. [/think]
  164. 判断【更大的区域】完毕
  165. [/think]
  166. 判断【大区域】完毕
  167. [/think]
  168. 判断【小区域】完毕
  169. [/ai pattern]
  170. AI模式完毕
复制代码


下载地址:

相关工具集:
1.DNF背景音乐快捷修改工具(by蓝白小熊)
2.恋恋のEx黑猫.3.1(当前最新版本):图形补丁制作提取工具
3.恋恋のEx兔子.5.3(当前最新版本)支持导入/导出ES代码
4.DNF单机梦太晓IMG查找工具(附:国服ImagePacks2自建数据库)
5.PVF可视化编辑工具:添加装备代码注释(by不可奈何的射手)
6.DNF在线换装试衣间:纸娃娃系统(avatar)在线搭配时装支持导入
7.恋恋のEx白猫.1.1(当前最新版本):DNF音频补丁制作工具


作者: x25533321    时间: 2020-3-18 16:43
支持支持
作者: a1021237303    时间: 2020-3-20 21:40
定是顶顶顶顶
作者: 凯凡魔改学习者.    时间: 2020-3-21 00:48
sad撒多撒所多撒
作者: DOFXXX    时间: 2020-3-28 13:21
111111111111111111111111111
作者: functioncs    时间: 2020-4-15 13:46
来看看,特地花钱注册了的
作者: 奥拉迪    时间: 2020-4-15 14:36
66666666666666666666666666666666
作者: wklemonly    时间: 2020-4-18 07:47
好东西好东西啊,绝对的好东西,支持支持.
作者: 1205865709@Qq.c    时间: 2020-4-19 00:10
看看咋样啊哈哈哈哈哈




欢迎光临 DNF阿拉德游戏论坛 (https://oldbbs.arad.ink/) Powered by Discuz! X3.3