开启左侧

[删]从建模到音效,史上最全资源包教程

[复制链接]
☭雷光兽☭ 2023-8-10 16:25:01

还没有账号?赶快去注册吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 ☭雷光兽☭ 于 2023-8-10 16:47 编辑

1.建模篇
首先准备好方块奔驰
版本推荐4.3.3,新版本可能有部件错误现象,不过我用着没什么问题,随便

开始!
首先学会使用建模软件,教程还是有很多的,我简要说明一下基本操作
新建“模组版实体”,不要选自由模型,里面那个多面体没用的MTR不会显示,老老实实用小方块堆吧

版本选择你喜欢的版本(现在一般都在1.18以上了吧?)

分辨率一般16边长就行了,这也是MC里一个草方块的大小,更大数值是给那些想做驾驶室操作台用的
现在,点击右侧那个方方正正的+号,嘣~第一个小物块出现了!

这个叫平移大法,通过三个箭头移动你的物块↑
这个是拉伸↓,可以让你改变尺寸,同样是三个方向


这个是旋转工具,让你的物块绕着枢轴点旋转(一定要按下右侧的枢轴居中才能继续操作哦!)


第四个就是移动枢轴点,可以看到我们已经居中的枢轴,利用三个方向移动你的旋转中心


最后一个顶点捕捉我几乎没用过,这个工具似乎是能让物块的边完美对齐
就像这样↓
首先点击一个小物块,上面出现小方点,点一下它的小方点,再点另一个方块的小方点

看!无缝对接上了

基本工具介绍完毕




按住控制ctrl键点击多个方块可以多选,它们会高亮(再点一次选中的一个方块取消多选,高亮消失),也可以按住舍夫特shift点击右边大纲下的方块实现同样操作,多选的方块集合可以成为一个“整体”移动、旋转,但是你不能直接在右上角输入数值,否则所有方块无视相对位置,全部跑到那个坐标,多选状态也不能使用尺寸工具

分组每个元素,每个方块都必须在小组里,MTR模组只能识别组内物体,否则就会崩溃。拖动方块移动到小组里


点击小组就能全选组内物体,平移非常方便




基本搭建介绍完毕,我们开始认真造车吧
从底座——车底开始
这个车底分为独立一组,是在每节车厢都要出现的

注意到没有那个网格平面?那个就是判定你的列车能否贴地行驶的关键,想象一下在网格下面16单位高度的地方就是MC地面,而MTR规定列车地板到轮子底部距离必须是16像素,可以创建一个16边长方块参考


我这里刚好是这个高度,正适合一个方块高度站台
然后选中底座,看左上角变换→居中,把Z轴居中,不然在MTR里你的列车可能会没法与连接棚契合,X轴也要居中。哦对了,车辆必须是沿Z轴行驶方向的,如果不这样做在游戏里你的车就是以“漂移”的姿态在轨道上
案例↓


OK车底弄好了,在车底基础上搭好车体吧,只需要一个车头和一个车厢模型就行了

我们加亿点点细节……好了现在她很符合空气动力学

车厢也一样,利用你精湛的手艺。

最后要把车厢车头分别对齐同一个车底,就像这样

如果你得寸进尺还想要开关门动画、灯光,你就得另外再分组给一些部件,然后再资源包创建器里设置了


那么,所有完成,可以导入游戏了
OH nononono~~~
你还没上色呢总不可以开着透明列车吧
看左下角这个,创建纹理

记住!保持多纹理占用这个选项一定要关掉,不要勾!!!如果你的方块占用同一区域的材质,就会撞色,这个等纹理生成之后细说
命名、禁用“多纹理占用”,确定,然后等个三四分钟,积木越多越久,你可以在此期间打开浏览器刷会视频
哦,还得注意一点,创建纹理模板之前你得把需要用上的所有部件都显示出来,否则该物块不会有自己的领地

创建好了,现在目光转向左上角,这里有很多蓝色框,框住了色块

这些色块就是每个方块被二向箔压扁的平面展开图,而蓝框就是这些物块对应的“领地”
拖动小蓝框可以移动到其他颜色上,小蓝框也是可以多选的哦




对了,这个长得像链接的不要随便打开,否则框框会带着颜色一起移动


好了,上好色了,我们进游戏吧



2.资源包创建器的使用方法

拿出物品栏里的资源包创建器,右键打开,点击左下角选项

分别载入你的模型文件、贴图,中间那个属性文件你第一次做资源包用不上,是留给你之后修改已有资源包用的
下面ID就是你的列车在文件夹里显示的名字,只能英文,名称随便,如果要中文最好填写U码,不然可能有乱码问题(案例:乱码问题,为什么同一个资源包导出会有不同的结果? - 资源包开发 - MTRBBS 我的世界铁路中文论坛

按下完成,然后进入编辑界面

把你需要的部件(都是分组)加进去
调整右上角长度,使你的车厢之间距离合理


这时候发现你的所有部件叠在一起了咋办?
正常
我知道你很急但你先别急
点进右边任意一个部件,比如一号车头


白名单填1,代表你这个只能在第一节(前向车头)出现,黑名单填%2,%2+1,代表你在所有车厢都不会出现
车厢也一样,我这里设定车厢为“只能第二节出现”


是不是好看多了?



众所周知,高铁是需要两个车头的,但是为什么这里后面是个平板车???
我们从左边再加一个1号车头


镜像对称
设置好黑白名单
完美



如果你做得很细,有其他部件
同样是添加,写好黑白名单
看右上角,选择它的类型
如果是车门,就把车门偏移换成别的,+左侧和-左侧代表只有左边有站台才会开门,+右侧和-右侧代表只有右边有站台才会开门
车门一定要左右两侧是独立的,不能两边车门是同一组,你可以在建模阶段做两个不同组的门,也可以只做一侧的门,在资源包创建器里添加两个一样的车门,然后镜像对称,就像车头一样,然后呢。。。
位置错啦


别忘了创建器也是有平移大法的,只不过比较鸡肋,只能输入数值回车


凭感觉慢慢移动它
对齐了!



经过类似的一堆骚操作后,你的列车已经设置并组装好了,可以导出资源包了
选项→导出


现在生成了一个压缩包,已经是可以载入游戏使用的了


等等!
有聪明的小伙伴们就要问了:“LZLZ,无限车厢怎么做?就是轨道多长列车多长的那个”
你只需要把车厢的白名单从2改成%2,%2+1,黑名单改为1就行了
“但是这样只有一个前向车头啊,怎么办?”
很简单,把你第二个车头…就是镜像的那个,黑名单设置为%2,%2+1,白名单填-1,把车厢黑名单加上-1,这样后向车头就会一直出现在最后一节了,而不是车厢。(这种设计的缺点是单节状态前后车头会叠在一起)
所以就有了2.5——子教程



2.5.让单节状态变成双向车头


首先明确车厢与车头的共同点——就是车厢,可以和底座绑定为同一组

做好其中一个驾驶舱


进入游戏,拿出资源包创建器


添加一个共同点车体和两个驾驶室,其中一个驾驶室镜像
共同点车体白名单:%2,%2+1,黑名单无
驾驶室白名单:1,黑名单:%2,%2+1
镜像驾驶室白名单:-1,黑名单:%2,%2+1
现在单节车厢会有两个车头,多节车厢也没问题了

所以可以导出资源包了吗?
呃···当然可以


3.我们需要更深入一点


Pack.png是你的资源包LOGO,可以不加,此时你的资源包在游戏里就是石头图案
Pack.mameta是很重要的文件,打开
里面写着
{"pack":{"pack_format":资源包的世代,1.19的填9,"description":"赞扬你资源包的文字"}}
这个文本很简单的,写好后保存更新压缩包
再打开里面的文件夹


来到这里(资源包压缩包\assets\mtr),这里每个文件夹(除sounds外,这是音效区)都是你的列车本体
点进去可以看到列车三要素——模型文件、属性JSON、贴图


这里我们着重看上一页的mtr_custom_resources.json
打开它


我这里一大堆是因为我资源包里有多个列车,资源包创建器生成的资源包只包含一辆车
所以是这样的
{"custom_trains":{
"列车文件夹名称":{
"name":"你的列车名字(U码","description":"称赞你列车的华丽文案":"。","color":"颜色代码,决定你的列车在仪表板里图标的颜色",
//一般不用填↓
"gangway_connection_id":"要引用连接棚的列车文件夹名称",
"train_barrier_id":"(不知道啥玩意)",
//一般不用填↑
"door_animation_type":"车门活动类型",
"render_door_overlay":false,
//↓玩家站立高度,也就是车内的地板高度,在资源包创建器里那个“乘坐偏移值”就是这个数据。如果发现玩家腿陷进地板或者车内浮空可以考虑动一下这个,是一个小数↓
"rider_offset":0.0,
//↓从上到下依次是:列车贴图路径、模型路径、属性文件。这些是已经生成好的
"texture_id":"mtr:该列车文件夹/列车英文ID",
"model":"mtr:该列车文件夹/列车英文ID.bbmodel",
"model_properties":"mtr:该列车文件夹/列车英文ID.json"
}
}}

按规定语法写好上面的代码,你的单列车资源包已经可以正常使用了。(其实模组已经帮你生成了,只不过是密集堆积没有转行,不好看。

  4.多列车资源包
选择一个已有资源包作为“核心”,把其他资源包里面的列车文件夹统一移动到“核心”对应的位置,这里依然是拿我的列车包做示例


然后打开刚刚的mtr_custom_resources.json
按照以下语法
"车1文件夹":{
"name":"\u8f95\u9f99","description":"赞美车1的文字","wikipedia_article":"","color":"车1的颜色代码",
"gangway_connection_id":"",
"train_barrier_id":"",
"door_animation_type":"LUG_FAST",
"render_door_overlay":false,
"rider_offset":0.0,
//模型与贴图与各部件属性
"texture_id":"mtr:dragon/dragon",
"model":"mtr:dragon/dragon.bbmodel",
"model_properties":"mtr:dragon/dragon.json",
},←注意这,这里应该是一个逗号,如果没有,车1就会被判定为最后一辆车,游戏里不会加载



"车2":{"name":"\u78a7\u7532","description":"描述车2的文字","wikipedia_article":"","color":"车2的颜色代码",
//一堆属性
"gangway_connection_id":"",
"train_barrier_id":"",
"door_animation_type":"STANDARD",
"render_door_overlay":false,
"rider_offset":0.0,
"speed_sound_base_id":"k_train",
"speed_sound_count": 66,
"door_sound_base_id":"xuanwu",
"texture_id":"mtr:xuanwu/xuanwu",
"model":"mtr:xuanwu/xuanwu.bbmodel",
"model_properties":"mtr:xuanwu/xuanwu.json"
}←注意了,如果你还想加车,这个}后面要加英文逗号,如果这是最后一车,就千万别加逗号
}}

别忘了把pack.mcmeta(还是车1的信息)里面的信息改成组合资源包的名字哦
就这样,你完成了多列车包的组合


开车咯~~~
咦?怎么没声音?火车的隆隆声呢?那震山岗的浑厚鸣笛声呢


5.引用MTR音效
取其中一个列车的代码块
"列车ID":{
"name":"列车名称","description":"广告词","wikipedia_article":"。","color":"图标颜色代码",
"gangway_connection_id":"",
"train_barrier_id":"",
"door_animation_type":"LUG_FAST",←PLUG_FAST代表车门动画是快速的塞拉门
"render_door_overlay":false,
"rider_offset":0.0,
"texture_id":"贴图路径",
"model":"模型路径",
"model_properties":"各物块属性文件路径"
}, ←逗号代表在本JSON文档中这个列车代码块不是最后一行,如果是最后一行则没有逗号(注意细节,反复强调)
资源包创建器生成的JSON不包含音效代码,需要你自己加上去,加在  "列车ID":{    },   之间就行了
"speed_sound_base_id":"m_train",  ←行驶声音文件夹,可以填写MTR自带列车音效,比如sp1900、m_train、c_train
"speed_sound_count":66,      ←声音计数,不知道干啥的,可能是音频停留时间(过小的值导致音频没播完就停止)
"door_sound_base_id":"sp1900",   车门音效文件夹,可以填写MTR自带列车音效,比如sp1900、m_train、c_train
自此,你给自己的列车配上了MTR提供的音效
那如果想要自己的音效呢?


5.5配音(警告:本步骤对某些人可能非常耗肝!不建议肝功能低下人群做!)
再把它们每个重命名为speed_5a、speed_6c这样的,如图,如果手动一个个搞这个过程肯定是非常无聊低效率的,如果你会批量重命名软件就可以很快编号


然后把这些音效文件复制到两个文件夹里,文件夹分别命名为acceleration(加速)和decceleration(减速),因为MTR没有“鸣笛”音频,想要列车发出威风凛凛的“吼声”可以采取以下方法:把加速音频的前端音频(大概0a~0c之间,不要超过0c)和减速音频的末端(7b~8a)这几个音频片段替换成鸣笛音频,这样列车在起动和停车的一瞬间就会鸣笛


音频准备好后,在和列车文件夹同级的地方(资源包压缩包\assets\mtr)创建sounds文件夹,在sounds文件夹里新建文件夹,命名可以随意(只要你认得出来,后面需要在mtr_custom_resources.json填写该文件夹),把acceleration和decceleration两个文件夹拉进新建文件夹里面,我这里是选择和列车模型文件夹相同的名字了

与acceleration同级的两个door_open和door-close就是车门音效,名字不能自定义,必须是这个命名
音频文件已经放好了,现在需要“注册”它们

在资源包压缩包\assets\mtr,新建JSON文本,sounds.json
然后又是一阵无聊的重复过程——把每个音频名字填写,这一步没有任何工具可以快捷完成,真的只能玩家一个个打字进去
示例代码
{
//必须是“列车英文ID_door_close“,否则MTR不知道你这个是关门音效→"phoenix_door_close":{
            "sounds": [
                  {
                        "name":"mtr:phoenix/door_close",←音频所在文件夹,文件夹名称也就是上面说的你刚刚命名的、包含acceleration和decceleration还有两个车门音效的文件夹
                        "pitch": 1,←不知道啥玩意
                        "attenuation_distance":32←声音传播距离,随意,但如果不是单声道,无论多远,声音也不会消减
                  }
            ]
      },   ←别忘了逗号
//必须是“列车英文ID_door_open”,否则MTR不知道你这个是开门音效→"phoenix_door_open":{
            "sounds": [
                  {
                        "name":"mtr:phoenix/door_open",
                        "pitch": 1,
                        "attenuation_distance":32
                  }
            ]
      },   ←别忘了逗号
……
//以此类推,每辆需要自定义的车都加个开关门音效
"lion_acceleration_0a":{         ←把你那25个音频按照“列车ID_acceleration_数字+字母”的方式一个个加进来
            "sounds": [
                  {
                        "name":"mtr:lion/acceleration/speed_0a",
                        "pitch": 1,
                        "attenuation_distance":32
                  }
            ]
      },   ←别忘了逗号
      "lion_acceleration_1a": {         ←把你那25个音频按照“列车ID_acceleration_数字+字母”的方式一个个加进来
            "sounds": [
                  {
                        "name":"mtr:lion/acceleration/speed_1a",
                        "pitch": 1,
                        "attenuation_distance":32
                  }
            ]
      },   ←别忘了逗号
……………………………………………
      "lion_deceleration_8c": { "lion_deceleration_8c": {
            "sounds": [
                  {
                        "name":"mtr:lion/deceleration/speed_8c",
                        "pitch": 1,
                        "attenuation_distance":32
                  }
            ]
      }   ←别忘了加逗号(反面教材)
}
            "sounds": [
                  {
                        "name":"mtr:lion/deceleration/speed_8c",
                        "pitch": 1,
                        "attenuation_distance":32
                  }
            ]
      }   ←别忘了最后一个音频不能加逗号
}
OK,所有音频注册完成,可以到mtr_custom_resources.json里配置了
就像引用音效一样,只不过这次不是填sp1900那些,而是填写自己的音效文件夹
忽略其他属性参数代码,剩下声音代码块就是这样的
"列车ID":{
"speed_sound_base_id":"m_train",
"speed_sound_count":66,
"door_sound_base_id":"tiger",
}
给每个列车代码加上声音吧~

6.恭喜你看完了这篇教程!完结撒花! 小贴士JSON语法不限制转行与空格,所以你可以在冒号后面加多点空格,变成…这样的↓"texture_id":          "mtr:19/19","model":      "mtr:1145/4514.bbmodel","speed_sound_base_id":               "m_train","speed_sound_count":                                66,"door_sound_base_id":                       "666",或者是这样的↓"louzhu":{"name":"\u697c\u4e3b","description":"§9教程的作者,发出这篇帖子的用户","wikipedia_article":"","color":"114514","gangway_connection_id":"mtr:air","train_barrier_id":"","door_animation_type":"LUG_FAST","render_door_overlay":false,"rider_offset":0.8,"texture_id":"mtr:1919/810","model":"mtr:1919/810.bbmodel","model_properties":"mtr:1919/810.json","speed_sound_base_id":"lanseyaoji","speed_sound_count":666,"door_sound_base_id":"big_door_boyboy"},
很简单的道理
如果在一个地区做了一件看似正常的小事(不管是恶意的还是友好的)也能引发轩然大波,足以引起“公愤”,那么该地区社会风气可能仍未稳定

那还是尽早隐居为好
楼主 ☭雷光兽☭ 2023-8-10 16:26:36
本帖最后由 ☭雷光兽☭ 于 2023-9-12 12:22 编辑

??????????????图呢??????????????

??????????????????
我不是全部上传的图片了吗?????
哪里去了?????


还有你这隐藏折叠内容怎么啥效果都没有啊?


什么gouba论坛

有管理员看到了记得清理一下
很简单的道理
如果在一个地区做了一件看似正常的小事(不管是恶意的还是友好的)也能引发轩然大波,足以引起“公愤”,那么该地区社会风气可能仍未稳定

那还是尽早隐居为好
楼主 ☭雷光兽☭ 2023-8-10 16:47:22
因为论坛BUG,帖子发了两个,这个是无图的
正确的帖子在https://www.mtrbbs.top/thread-5201-1-1.html
很简单的道理
如果在一个地区做了一件看似正常的小事(不管是恶意的还是友好的)也能引发轩然大波,足以引起“公愤”,那么该地区社会风气可能仍未稳定

那还是尽早隐居为好
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表