【MOD教程】--教你制作简单的mod
石炉吧
全部回复
仅看楼主
level 12
lee_振光 楼主
MOD教程
--作者: 百度ID: lee_振光
目录:
第零章 基础-------------------------02楼
第二章 制作简单的mod----------------03楼
第三章 添加物体特效-----------------xx页
第四章 添加新的职业-----------------xx页
第..章 ........---------------------xx页
附录一 mod框架文件和软件------------xx页
附录二 .................------------xx页
ps:资源在后面
2015年03月27日 16点03分 1
level 12
lee_振光 楼主
第零章-基础
我们首先讲一讲制作mod所使用的软件还有游戏的基本框架.
1.游戏的基本框架:
这游戏的模型是.qb格式,是利用qubicle软件制作,跟以往的C4D和3Dmax等贴图模型软件,是不一样的。.qb模型是一种体素模型。
这游戏 引擎是C++和OpenGL。大多数都是Lua脚本。GUI是写在HTML / JS。文本和属性是json.
2.需要的软件:
模型制作需要qubicle软件,模型文件后缀名是: .qb (正版需要购买,免费版功能不全,另有软件代替,模型制作教程会讲到)
游戏脚本文件推荐用Notepad++软件打开,游戏文件包含有:.json .lua .html .less .js .
3.认识游戏文件的框架:
该游戏的主文件在:X盘:\Stonehearth v0.1.0r240\mods 文件夹里,
"stonehearth.smod"文件就是主要的游戏文件,该文件实质是压缩文件,可以用压缩软件打开,也可以修改扩展名为.zip后再打开.
打开后,我们认识一些文件夹的作用:
-ai------------------游戏AI
-call_handlers-------控制人物的脚本
-components----------存放游戏的组件
-data----------------游戏数据存放地方
-docs----------------说明文件
-entities------------游戏模型存放的地方
-jobs----------------游戏职业的文件
-lib-----------------游戏的一些脚本
-locales-------------游戏的大部分文本
-mixins--------------插入游戏内容放置的地方
-release_notes-------更新日志
-renderers-----------游戏渲染器
-scenarios-----------情景剧情文件
-services------------游戏服务器
-ui------------------游戏的界面文件
-manifest.json-------游戏指引文件
其中有一些文件我们不需要了解太多,后面会讲到我们需要的文件.
2015年03月27日 17点03分 2
在这里感谢一下 @oO芒果v布丁Oo 的指导.[呵呵]
2015年03月27日 20点03分
level 12
lee_振光 楼主

第一章 制作简单的mod
我们该如何在游戏中添加自己做的模型呢:
我们先定下一个目标,我们要制作一个添加装饰物的mod,这个装饰物的名字是:xxx
第一步:
我们先新建一个文件夹 YYYmod (YYY是自己定的)
在里面按照这样子建立文件夹和文件:
-YYYmod
----recipes
-------xxx_recipes.json
----mixins
--------recipes.json
----entities
-------xxx.json
-------xxx.qb
-------xxx.png
----manifest.json
第二步:
建立好后,我们先打开manifest.json文件 复制粘贴这段代码
{
"info" : {
"name" : "YYY Mod",
"version" : 1
},
"aliases" : {
"YYYmod:decoration:xxx" : "file(entities/decoration/xxx)"
},
"mixintos" : {
"/stonehearth/jobs/carpenter/recipes/recipes.json" : ["file(mixins/recipes.json)"]
}
}
注释:
1."info"是信息,填写你的mod的信息,名字和版本号什么的.
2."aliases"作用是为你的项目和物体命名,就是赋予它一个ID.
前面就是该物体的ID,后面是它存放的地方.
(decoration)是装饰的意思,多了这个我们更好的将物体分类,就好像你是几班的某某.
这个英语,要看你给该物体分什么类,还有家具furniture等等,以后再说.
3."mixintos"作用是将某段语句插入到某个文件中,
上面说的就是,将"file(mixins/recipes.json)里的内容
插入到"/stonehearth/jobs/carpenter/recipes/recipes.json"
前面是原版的路径,后面是我们mod的路径.意思是把该物体合成配方添加
到木匠的工作台的合成配方,carpenter是木匠,可以改为其他职业.
2015年03月27日 17点03分 4
,能不能输入中文[疑问]
2016年08月10日 05点08分
level 12
lee_振光 楼主

第三步:
好了,我们编写好了指引文件,接下来要编写,添加该物体的合成配方到木匠的工作台上:
我们打开 YYYmod/mixins/recipes.json 复制粘贴这段代码
{
"craftable_recipes" : {
"furniture" : {
"recipes" : {
"xxx" : {
"recipe" : "file(/recipes/xxx_recipe.json)"}
}
}
}
}
注释:
1."craftable_recipes"是工作台合成配方,这个不用管,是固定的.
2."furniture"是工作台的合成分类,可以修改,一般用回原版的分类,也可以自定义一个.
3."recipes"是配方,后面跟着的就是你要添加的配方.xxx是物体的名字.
4."recipe" : "file(/recipes/xxx_recipe.json)"}是该物体的合成配方存放的路径.
第四步:
编写xxx物体的合成配方:
我们打开 YYYmod/recipes/xxx_recipes.json 复制粘贴这段代码
{
"type":"recipe",
"work_units" : 3,
"recipe_name" : "xxx",
"description" : "--------------------",
"flavor" : "---------!!!!",
"portrait" : "/YYYmod/entities/decoration/xxx/xxx.png",
"ingredients": [
{
"material" : "wood resource",
"count" : 1
}
],
"produces": [
{
"item":"YYYmod:decoration:xxx"
}
]
}
注释:
1."type" 类型
2."work_units" 制作该物体的时间,3下
3."recipe_name" 显示在合成界面上的名字.也就是物体的名字.
4."description" 物体的描述文字,作用和用途.
5."flavor" 特别的描述,类似后缀描述.
6."portrait" 显示在合成界面上的图片,后面是图片存放的路径.
7."ingredients" 材料,后面跟着的是需要合成的材料和数量.
8."wood resource" 这里可以替换的,石头是"stone resource".
9."produces" 产物. 而"item":"YYYmod:decoration:xxx"这个就是前面提到的ID.
2015年03月27日 17点03分 5
level 12
lee_振光 楼主

第五步:
编写物体的属性和数据:
打开 YYYmod/entities/decoration/xxx/xxx.json 复制粘贴这段代码
{
"type" : "entity",
"mixins" : "file(xxx_ghost.json)",
"components": {
"stonehearth:entity_forms" : {
"iconic_form" : "file(xxx_iconic.json)",
"ghost_form" : "file(xxx_ghost.json)",
"placeable_on_ground" : true
},
"region_collision_shape" : {
"region": [
{
"min" : { "x" : -1, "y" : 0, "z" : 0 },
"max" : { "x" : 2, "y" : 2, "z" : 1 }
}
]
}
},
"entity_data" : {
"stonehearth:net_worth" : {
"value_in_gold" : 50,
"rarity" : "common",
"shop_info" : {
"buyable" : true,
"sellable" : true,
"shopkeeper_level" : 1,
"shopkeeper_type" : "caravan"
}
}
}
}
注释:
1."type" 物体的类型,entity是实体
2."mixins" : "file(xxx_ghost.json)" 意思是该物体混入到某个属性里,不用管.
3."stonehearth:entity_forms" 这里是设置物体在仓库时和虚影时分别的模型,
"iconic_form"是物体在仓库时的模型,"ghost_form"是物体虚影时的模型.后面的是相应的路径.
"placeable_on_ground" : true,表示该物体可以放在地方,"placeable_on_wall" 是在墙上,可以替换
4."region_collision_shape"设置模型的碰撞体,x y z 数据自己填,要看自己的模型大小来调.
5."entity_data" 实体数据,"value_in_gold" 价值是多少."rarity" : "common" 稀有程度:普通.
6."shop_info" 商店设置;"buyable"是否可以购买,"sellable"是否可以出售.
第六步:
编写物体虚影文件:
我们打开 YYYmod/entities/decoration/xxx/xxx_ghosts.json 制粘贴这段代码
{
"components": {
"model_variants": {
"default": {
"models": [
"file(xxx.qb)"
]
}
},
"unit_info": {
"name": "xxx",
"description": "---------------------------",
"icon" : "file(xxx.png)"
},
"stonehearth:material" : {
"tags" : "wood furniture crafted"
},
"mob" : {
"model_origin" : { "x": -0.05, "y": 0, "z": 0.05 },
"region_origin" : { "x": 0.5, "y": 0, "z": 0.5 }
}
}
}
注释:
1."models":[ "file(dresser.qb)" ] 是物体虚影的模型来源.
2."unit_info":信息."name"名字; "description"描述;"icon"图标.
3."stonehearth:material": {"tags" : "wood furniture crafted"} 定义物体,是木制的物品.
4."mob" 这个没什么实质意义,是对于模型是奇数像素时,用来调整的.不用管.
2015年03月27日 17点03分 6
注释1里面.":[ "file(dresser.qb)" ] 打错了,是":[ "file(xxx.qb)" ]才对,
2015年04月03日 17点04分
level 12
lee_振光 楼主

第七步:
编写物体图标文件:
打开 YYYmod/entities/decoration/xxx/xxx_icionic.json 制粘贴这段代码
{
"mixins": "stonehearth:mixins:item_properties",
"type": "entity",
"components": {
"item" : {
"category" : "furniture"
},
"model_variants": {
"default": {
"models": [
"file(xxx_iconic.qb)"
]
}
},
"mob" : {
"model_origin" : { "x": 0, "y": 0, "z": 0 }
}
}
}
注释:
1."item" : { "category" : "furniture" } 是给物体归类的,是仓库用来分类的.
2.其他的雷同,请参考其他的注释.
第八步:
物体模型:
1.xxx.qb 是物体模型.
2.xxx_iconic.qb 是物体存放在仓库时的缩小模型,尺寸是10*10*10的像素.制作模型时要注意,简单的制作一下就行.
把 .qb 格式的模型放入到 YYYmod/entities/decoration/xxx文件夹里.
关于.qb模型的制作 我放到另一个教程里说-(模型制作教程).
2015年03月27日 17点03分 7
level 5
大顶
2015年03月28日 08点03分 9
level 10
前排
支持....[乖]
2015年03月28日 10点03分 10
level 10
前来占楼
2015年03月29日 11点03分 11
level 10
然而逼格太高,看的不是很懂
2015年03月29日 11点03分 12
level 12
lee_振光 楼主
你不需要懂太多,我只需把框架文件下载,按照教程把xxx换成你想要的文件即可。(≥▽≤)
2015年03月29日 12点03分 13
我可以否定吗,编程需深入,才能变通
2015年03月29日 15点03分
level 2
看上去很高端的样子,前来膜拜
2015年04月02日 04点04分 14
level 3
忽然感觉~你都成吧主了,光哥
2015年04月29日 05点04分 15
level 1
不错哦!
2015年05月21日 10点05分 16
level 1
然而会越发的不稳定……
瞬间爆炸[滑稽]
2015年06月13日 03点06分 17
你的签名档略屌
2016年01月04日 12点01分
level 1
那么复杂
2015年09月19日 07点09分 18
level 6
nice
2015年12月02日 01点12分 20
level 7
[咦]好难的样子,我还是等别人弄好了之后去下载好了。
2015年12月02日 02点12分 21
level 6
好复杂qwwq
2015年12月07日 13点12分 22
level 11
哇哦 屌[真棒] 我就说在哪见过你
2015年12月12日 16点12分 23
1 2 尾页