超级马里奥吧 关注:48,445贴子:660,870
  • 11回复贴,共1

【NSMBW改版教程】如何制作动态Tilesets

只看楼主收藏回复

1L


IP属地:湖南1楼2021-08-23 20:49回复
    作者:幽灵Mario
    贴吧ID:本号
    B站UID:36722461
    所有操作记得备份,此教程还处在Beta版,不保证稳定性。
    一、工具准备
    1.1基本图像编辑
    (1)Puzzle Next 1.0.1
    (2)Phostoshop,当然你也可以用别的位图编辑软件
    1.2进阶功能编辑
    你还需要:
    (1)Wii.cs Tools 0.3(建议),或其他如Brawlbox、SZSModifier等可以查看和编辑arc格式文件结构的软件
    (2)Hxd Hex Editor,或其他十六进制编辑器
    1.3其他
    为了测试,我建议你也准备好:
    (1)Reggie Level Editor
    (2)Dolphin Emulator
    以上基本都可以在NSMBW custom wiki上找到。


    IP属地:湖南2楼2021-08-23 20:52
    回复
      二、进阶功能编辑
      2.1动态材质编辑
      原版中最著名的动态材质当属问号砖块、砖块、虚线金币这三种材质,而金币、花草的动态本质上是调用了sprite,与本文所讲的动态材质不是一类。如果你只想更改原版的动态材质,那么请阅读以下3.1.1~3.1.5;如果你是基于Newer引擎,除了修改还想为你的材质添加新的动态材质,那么建议阅读3.1全文。
      如果你是基于原版又想添加新的动态材质,目前暂时没有办法,但是理论上可以通过移植Newer的动态材质引擎到原版来实现;因此,理论上在成功移植Newer的动态材质引擎之后,可以用与在Newer中添加新动态材质相同的办法来完成。
      Puzzle Next 1.0.1版本更新了大量新功能。目前可以利用Puzzle的转换和计算功能更为轻松地完成动态材质编辑。
      2.1.1 提取动画文件
      使用Wii.csTools中的UltimateU8打开你要修改的材质文件,在BG_tex文件夹下的bin格式文件为保存着动态材质图像的文件。如图3-1为U8打开的Pa0_jyotyu.arc,可以看到BG_tex下有三个bin格式文件,block_anime.bin对应的是砖块闪光动画,hatena_anime.bin对应的是问号砖块的问号旋转动画,tuka_coin.bin对应的是虚线金币动画。

      图3-1 U8打开Pa0_jyotyu.arc界面
      右键单击想要提取的动画文件,选择Extract file将文件保存。本教程以问号砖块旋转问号动画为例。
      2.1.2 提取动画图像
      动画图象通过去掉头保存在提取的bin文件中。要提取,首先用十六进制编辑器打开提取的文件,如图3-2所示。

      图3-2 Hxd Hex Editor打开hatena_anime.bin界面
      在最前面根据提取的动画不同,加上以下几种文件头:
      砖块闪光动画(4张图片,32x128)block_anime.bin:
      00 20 AF 30 00 00 00 01 00 00 00 0C 00 00 0014
      00 00 00 00 00 80 0020 00 00 00 05 00 00 00 40
      00 00 00 00 00 00 00 00 00 00 0001 00 00 00 01
      00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00
      虚线金币动画(8张图片,32x256)tuka_coin_anime.bin:
      00 20 AF 30 00 00 00 01 00 00 00 0C 00 00 0014
      00 00 00 00 01 00 0020 00 00 00 05 00 00 00 40
      00 00 00 00 00 00 00 00 00 00 0001 00 00 00 01
      00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00
      问号砖块旋转问号动画(16张图片,32x512)hatena_anime.bin:
      00 20 AF 30 00 00 00 01 00 00 00 0C 00 00 0014
      00 00 00 00 02 00 0020 00 00 00 05 00 00 00 40
      00 00 00 00 00 00 00 00 00 00 0001 00 00 00 01
      00 00 00 00 00 00 00 00 00 00 0000 00 00 00 00
      加粗部分意味着不同高度的图片。
      保存更改。这时候可以使用brawlbox或者SZSmodifier直接打开bin文件,提取里面的图像。或是把bin文件的格式改为tpl格式,使用Wii.cs Tools的TplMii转换成png图像。


      IP属地:湖南3楼2021-08-23 20:55
      回复
        2.1.3 修改动画图像
        使用位图编辑器如Photoshop打开图像。以问号砖块旋转问号动画为例,有16个帧。每一帧切片如图3-3。实际有效的为正中央24×24个像素,但四周仍然需要用边缘像素夹紧,使得总宽度为32的像素。

        图3-3 问号砖块旋转问号的一帧(图源:NSMBW Custom Wiki)
        此时对每一帧进行修改,帧数可以不同。修改完成后保存为png格式。
        2.1.4 设置动态材质的帧数和链接
        用Puzzle Next打开做好的动态材质arc文件。如图3-4所示,在右边栏的Framesheets中可以看到导入的动画。此处以我添加的蝴蝶飞舞动画为例。

        图3-4 Puzzle next的Framesheets栏目
        选中目标动画,如图3-5,在AnimationEditor栏中的下拉框选择New…。

        图3-5 Puzzle next的Animation Editor栏目
        此时你可以看到下面的Preview可以预览你的动画。左半边Delays可以修改每一个状态的时长,单位是帧。
        右半边最重要的是右下半边的几个选项,如图3-6,Slot是本材质的PaX,Row和Column通过数格子得到。在PuzzleNext中,你可以直接将鼠标移到你要链接的材质图块上,会在图片上方显示以上三个数据,依次填入即可生成一个Tilenum。反转功能则是让你的动画反向播放。填好之后选择Export framesheet info,导出为txt文本格式。如果你使用Newer引擎添加材质而非替换,也可以顺便保存到材质文件内(另一个选项)。

        图3-6 链接和反转以及导出功能
        2.1.5 导入动态材质
        在AnimTiles栏目下,有一个代码编写栏。如图3-7,编写栏下方是各种不同的导入、输出功能。选择以txt格式导入,导入上一步骤输出的txt文件,可以看到输出的代码,代码意义不细说了。
        选择导出为bin格式,这样就获得了一个编辑好的动态材质文件。

        图3-7 输出为bin文件的种种功能
        使用Wii.csTools打开你要改动的材质,在BG_tex文件夹右键,选择添加新文件,导入此动态材质即可。
        如果是替换,则需要先删除原有的文件。如果是Newer引擎下添加新材质,也可以直接在3.1.4所讲的保存到材质中去,就不需要这一步的导入工作了。
        2.1.6 导入Newer的动态材质代码
        区别于原版,Newer使用了一个索引文件来记录所有添加的动态材质。该文件保存在NewerRes文件夹,为AnimTiles.bin。使用3.1.5所述的办法,用PuzzleNext的AnimTiles栏目中的以bin格式导入,可以查看AnimTiles.bin的代码。在代码最后粘贴你在3.1.4导出来的txt格式的代码,然后导出为bin格式,即获得了导入后的索引文件。替换原本的AnimTiles.bin即可。


        IP属地:湖南4楼2021-08-23 20:57
        回复
          有没有人看也无所谓了,只是记录一下自己的教程。


          IP属地:湖南5楼2021-08-23 20:57
          回复
            PDF版详细教程:
            链接: https://pan.baidu.com/s/1Ws1u8VIFvogvu70iU-tRIg 提取码: 9ct6


            IP属地:湖南6楼2021-08-23 21:00
            回复
              来了啊


              IP属地:江苏7楼2021-08-23 21:04
              回复
                我彻底落伍了


                IP属地:江苏来自Android客户端8楼2021-08-23 21:11
                收起回复
                  恭迎大佬


                  IP属地:海南来自Android客户端9楼2021-08-23 22:13
                  回复
                    马克


                    IP属地:江苏来自Android客户端10楼2021-08-24 17:50
                    回复
                      哎呀woc
                      引擎这两天忘了研究了


                      IP属地:山东来自Android客户端11楼2021-08-26 00:01
                      回复