教程:修改实体模型 您所在的位置:网站首页 ecotect如何修改模型高度 教程:修改实体模型

教程:修改实体模型

2024-07-02 14:44| 来源: 网络整理| 查看: 265

该页面需要整理以符合格式指导。 讨论

请协助改善内容来使它符合规定。

本文章所述内容仅适用于基岩版。 目录 1 概括 1.1 所需时间 1.2 所需工具 2 入门 3 Minecraft模型格式 3.1 1.13之前的版本 3.2 1.13及之后版本 3.3 JSON语言解释 3.3.1 骨骼动画 3.4 重要注意事项 4 修改苦力怕 4.1 1.13之前的版本 4.2 结果 4.3 修改其他生物 4.4 1.13及以后版本 4.5 结果 4.6 修改其他生物 5 总结

本教程是对官方支持的附加包来修改的。

概括[编辑 | 编辑源代码]

本教程是对于高级用户编写的!普通用户可使用Blockbench等易于使用的可视化模型制作软件。请你熟悉JSON的数据格式。如果你并不熟悉的话,请阅读行为附加包教程的JSON部分。在本教程中,我们将涉及:

Minecraft的JSON模型格式 如何去修改模型 所需时间[编辑 | 编辑源代码]

30 分钟

所需工具[编辑 | 编辑源代码]

一个文本编辑器

任何的文本编辑器应该都是可以的,但是我们建议你使用用于编程的IDE软件。如果你想有效管理多个文件,建议使用Visual Studio Code。而在iOS上,用Textcode Viewer则是不错的选择,如果你的iOS设备已经越狱,也可以尝试使用iFile或者Filza。对于Android系统来讲,MT管理器将是一个不错的选择。

入门[编辑 | 编辑源代码]

在本教程中我们将使苦力怕有3个头。但是在修改苦力怕之前,我们来看看组成模型的代码。

Minecraft模型格式[编辑 | 编辑源代码] 1.13之前的版本[编辑 | 编辑源代码]

Minecraft的实体建模由JSON语言编程,模型由mobs.json这个.json文件决定。你可以在Vanilla Minecraft资源包找到它,路径为Vanilla Resource Pack/models/mobs.json。这些文件包含了所有Minecraft中实体的模型代码。模型代码们看起来是这个样子的:

实体模板的伪代码 "geometry.entityname": { "texturewidth": x, "textureheight": y, "bones": [ { "name": "body part name", "pivot": [ x, y, z ], "cubes": [ { "origin": [ x, y, z ], "size": [ x, y, z ], "uv": [ x, y ] } ] } ] }

注: 这只是一个参考例子,不是一个可用的实体模型。使用它作为代码是没用的!

1.13及之后版本[编辑 | 编辑源代码]

Minecraft的模型仍然由JSON语言编写,不过从models/mobs.json的单一文件变为如图的文件结构。可以在Vanilla Resource Pack/models/entity中找到它们。生物模型被从mobs.json中分离为单一文件,命名方式为name(实体名称).geo.json,但仍有部分实体被留在了mobs.json中。

JSON语言解释[编辑 | 编辑源代码] geometry.entity 这个是要修改的实体的名称 texturewidth 宽度单位,1个像素 textureheight 长度单位,1个像素 bones 骨骼模型运动的动画,它包含了使几何体运转的信息。注:但这也有局限性,他只能使包含在源代码骨骼动画清单的骨骼部分运。 name 骨骼动画的名称 pivot 轴地址是实体肢体的旋转中心。例如:苦力怕的头是能绕着这一点旋转的方形构成。 rotation 旋转实体的部分在xyz轴上。注: 游戏可能会以动画覆盖包含动画的对象。 mirror 布尔值,可设置为true或false。如果填true,游戏会根据UV地址映射对应的肢体。 cubes 如果几何没有骨骼动画,写入此关键符并键入要映射的动画肢体名,即可赋予几何动画。 origin 几何体的地址和实体模型的起点地址有关。 注: 这个点在模型的左前下角。

例如: 这个苦力怕身体的红色顶点,就是这个身体的模型地址。

size 几何体的大小。注: 16x16x16是一个方块的大小!(中文补充:它和肢体大小确实有关,但是只是用来确认肢体纹理地址的,放大用inflate见下文) uv 这个是实体肢体纹理的起点。

注:这是规定x(横轴),y(纵轴)轴的第一个点 注:这个点应该是一个实体的某个肢体纹理的区域的左上角。 例如: 这个红点是你想做成苦力怕"body"(身体,因为是代码不译)的UV 做成点。 ("uv": [ 16, 16 ]). 身体将会使用被框起的部分作为纹理.

mirror 布尔值,可设置为true或false。如果填true,游戏会根据UV地址映射对应的部位。 inflate 使这部分肢体按数值增大或缩小(可为小数或负数),且使用的贴图的像素大小及地址不变。例如 "name": "hat", "parent": "head", "pivot": [ 0.0, 24.0, 0.0 ], "cubes": [ { "origin": [ -4.0, 24.0, -4.0 ], "size": [ 8, 8, 8 ], "uv": [ 32, 0 ], "inflate": 0.5 }

inflat对应的值为0.5,则方块在x y z三轴正负方向各伸长0.5格,即这个块的大小由8×8×8变为9×9×9。对应的值为负数同理,即缩小。

骨骼动画[编辑 | 编辑源代码]

骨骼是我们用来制作模型的。把它想象成一具骷髅!在人体中,骨骼是由肌肉运动的,而你的肌肉也随着肌肉运动。在3D动画中,骨骼是由动画移动的,而动画反过来又会移动附着在骨骼上的几何图形!

重要注意事项[编辑 | 编辑源代码]

模型还不是完全由数据驱动的。虽然可以更改模型的内容,但是仍然有一些硬编码的值,比如:一个实体需要哪些骨骼,一个实体用什么材料呈现,以及一个实体有什么动画。这意味着你不能只是复制和粘贴几何形状从村民到蜘蛛部分,并希望它工作!在这个系统变得更加数据驱动之前,你需要做一些实验来达到你想要的结果!

确保你的骨骼名称正确!实体的骨骼名称应该与Minecraft-vanilla资源包中的骨骼名称相同。模型的动画和渲染依赖于上述信息的正确性!

修改苦力怕[编辑 | 编辑源代码]

现在我们已经了解了Minecraft模型格式是如何设置的,让我们稍微修改一下creeper。我们要让他有3个正面,2个在底部,1个堆在顶部,像金字塔一样。

1.13之前的版本[编辑 | 编辑源代码] 首先,在Vanilla Minecraft的Vanilla包里 mobs.json找到geometry.creeper区复制下来。 Vanilla Resource Pack/models/mobs.json 在资源包中创建一个名为models的文件夹 创建一个名为mobs.json 的新json文件并将其保存到新模型文件夹中。 输入一对大括号({ })在你新建的 mobs.json 然后粘贴geometry.creeper 。 现在,让我们先把它原来的头向左移一点。为了做到这一点,我们要改变骨头命名的原点的x分量"head" 从 -4 到 -8. 现在将 "cubes" 复制到 "head"的方括号中。. 这时文本应该是灰色的。 mobs.json – geometry.creeper – head section { "name": "head", "pivot": [ 0.0, 18.0, 0.0 ], "cubes": [ { "origin": [ -8.0, 18.0, -4.0 ], "size": [ 8, 8, 8 ], "uv": [ 0, 0 ] } ] }, 在你复制的行后面加上一个逗号。 粘贴你在逗号后面复制的行 在刚刚粘贴的行后面加一个逗号 在新逗号后再次粘贴复制的行 你现在应该有3对大括号在 "cubes" 每个都有一个原点,大小和uv对象 在复制的第一行中,我们将把原点的x分量从-8改变为0,向右移动 在第二个副本中,将原点的x分量改为-4,y分量改为26 苦力怕的头部部分现在应该看起来像(新文本为灰色): mobs.json – geometry.creeper – head section { "name": "head", "pivot": [ 0.0, 18.0, 0.0 ], "cubes": [ { "origin": [ -8.0, 18.0, -4.0 ], "size": [ 8, 8, 8 ], "uv": [ 0, 0 ] }, { "origin": [ 0.0, 18.0, -4.0 ], "size": [ 8, 8, 8 ], "uv": [ 0, 0 ] }, { "origin": [ -4.0, 26.0, -4.0 ], "size": [ 8, 8, 8 ], "uv": [ 0, 0 ] } ] },

注意,我们不需要改变新头像的UV因为我们复制了旧头像的UV坐标我们没有给新头像添加不同的纹理。

结果[编辑 | 编辑源代码] 三个头的 苦力怕 修改其他生物[编辑 | 编辑源代码]

如果要更改另一个实体的模型,请确保在右大括号后面加上逗号 geometry.creeper.

伪代码示例

别忘了逗号!(红色突出显示)

{ "geometry.creeper": { // model stuff }, "geometry.chicken": { // model stuff } } 1.13及以后版本[编辑 | 编辑源代码] 首先,在原版资源包里找到models/entity/creeper.geo.json,将其复制进你的资源包中的models/entity/ 打开creeper.geo.json,它看起来应该是这样的: creeper.geo.json { "format_version": "1.8.0", "geometry.creeper": { "visible_bounds_width": 1, "visible_bounds_height": 2, "visible_bounds_offset": [ 0, 0.75, 0 ], "texturewidth": 64, "textureheight": 32, "bones": [ { "name": "body", "cubes": [ { "origin": [ -4.0, 6.0, -2.0 ], "size": [ 8, 12, 4 ], "uv": [ 16, 16 ] } ] }, { "name": "head", "parent": "body", "pivot": [ 0.0, 18.0, 0.0 ], "cubes": [ { "origin": [ -4.0, 18.0, -4.0 ], "size": [ 8, 8, 8 ], "uv": [ 0, 0 ] } ] }, { "name": "leg0", "parent": "body", "pivot": [ -2.0, 6.0, 4.0 ], "cubes": [ { "origin": [ -4.0, 0.0, 2.0 ], "size": [ 4, 6, 4 ], "uv": [ 0, 16 ] } ] }, { "name": "leg1", "parent": "body", "pivot": [ 2.0, 6.0, 4.0 ], "cubes": [ { "origin": [ 0.0, 0.0, 2.0 ], "size": [ 4, 6, 4 ], "uv": [ 0, 16 ] } ] }, { "name": "leg2", "parent": "body", "pivot": [ -2.0, 6.0, -4.0 ], "cubes": [ { "origin": [ -4.0, 0.0, -6.0 ], "size": [ 4, 6, 4 ], "uv": [ 0, 16 ] } ] }, { "name": "leg3", "parent": "body", "pivot": [ 2.0, 6.0, -4.0 ], "cubes": [ { "origin": [ 0.0, 0.0, -6.0 ], "size": [ 4, 6, 4 ], "uv": [ 0, 16 ] } ] } ] }, "geometry.creeper.charged": { "visible_bounds_width": 1, "visible_bounds_height": 2, "visible_bounds_offset": [ 0, 0.75, 0 ], "texturewidth": 64, "textureheight": 32, "bones": [ { "name": "body", "cubes": [ { "origin": [ -4.0, 6.0, -2.0 ], "size": [ 8, 12, 4 ], "uv": [ 16, 16 ] } ], "inflate": 2.0 }, { "name": "head", "parent": "body", "pivot": [ 0.0, 18.0, 0.0 ], "cubes": [ { "origin": [ -4.0, 18.0, -4.0 ], "size": [ 8, 8, 8 ], "uv": [ 0, 0 ] } ], "inflate": 2.0 }, { "name": "leg0", "parent": "body", "pivot": [ -2.0, 6.0, 4.0 ], "cubes": [ { "origin": [ -4.0, 0.0, 2.0 ], "size": [ 4, 6, 4 ], "uv": [ 0, 16 ] } ], "inflate": 2.0 }, { "name": "leg1", "parent": "body", "pivot": [ 2.0, 6.0, 4.0 ], "cubes": [ { "origin": [ 0.0, 0.0, 2.0 ], "size": [ 4, 6, 4 ], "uv": [ 0, 16 ] } ], "inflate": 2.0 }, { "name": "leg2", "parent": "body", "pivot": [ -2.0, 6.0, -4.0 ], "cubes": [ { "origin": [ -4.0, 0.0, -6.0 ], "size": [ 4, 6, 4 ], "uv": [ 0, 16 ] } ], "inflate": 2.0 }, { "name": "leg3", "parent": "body", "pivot": [ 2.0, 6.0, -4.0 ], "cubes": [ { "origin": [ 0.0, 0.0, -6.0 ], "size": [ 4, 6, 4 ], "uv": [ 0, 16 ] } ], "inflate": 2.0 } ] } } 现在,让我们先把它原来的头向左移一点。为了做到这一点,我们要改变骨头命名的原点的x分量"head." 从 -4 到 -8。 现在将 "cubes" 复制到 "head."的方括号中。这时文本应该是灰色的。 creeper.geo.json – geometry.creeper – head section { "name": "head", "pivot": [ 0.0, 18.0, 0.0 ], "cubes": [ { "origin": [ -8.0, 18.0, -4.0 ], "size": [ 8, 8, 8 ], "uv": [ 0, 0 ] } ] }, 在你复制的行后面加上一个逗号 粘贴你在逗号后面复制的行 在刚刚粘贴的行后面加一个逗号 在新逗号后再次粘贴复制的行 你现在应该有3对大括号在 "cubes." 每个都有一个原点,大小和uv对象 在复制的第一行中,我们将把原点的x分量从-8改变为0,向右移动 在第二个副本中,将原点的x分量改为-4,y分量改为26 苦力怕的头部部分现在应该看起来像(新文本为灰色): creeper.geo.json – geometry.creeper – head section { "name": "head", "pivot": [ 0.0, 18.0, 0.0 ], "cubes": [ { "origin": [ -8.0, 18.0, -4.0 ], "size": [ 8, 8, 8 ], "uv": [ 0, 0 ] }, { "origin": [ 0.0, 18.0, -4.0 ], "size": [ 8, 8, 8 ], "uv": [ 0, 0 ] }, { "origin": [ -4.0, 26.0, -4.0 ], "size": [ 8, 8, 8 ], "uv": [ 0, 0 ] } ] },

注意,我们不需要改变新头颅的UV,因为我们复制了,即用了旧头颅的UV。

结果[编辑 | 编辑源代码] 三个头的 苦力怕 修改其他生物[编辑 | 编辑源代码] 回到你新建的models/entity文件夹中。 新建一个名字叫生物的英文.geo.json并重复以上操作。如cow.geo.json 总结[编辑 | 编辑源代码]

恭喜你!

如果你已经做到了这一点,那么现在你应该已经知道了制作你自己的实体模型所需要知道的一切!

查 论 编 基岩版 版本 已合并 携带版 Windows 10版 移植到主机 Xbox One版 Nintendo Switch版 PlayStation 4版 已终止 Apple TV版 Gear VR版 Fire TV版 开发 版本记录 Alpha 正式版 开发版本 已移除特性 方块 配方 未使用特性 独有特性 提及特性 Super Duper图形包 计划版本 Minecraft Preview 技术性 已知漏洞 RenderDragon 数据值 实体组件 硬件性能 世界格式 附加包 Molang 方块实体 命名空间ID com.mojang 命令 函数 开发者命令 生成事件 坐标 材料 种子 服务器 sound_definitions.json options.txt 刻 常加载区域 世界加载屏幕 族 定义 基岩版编辑器 多人游戏 服务器 Realms Plus 服务器列表 server.properties 定制服务器 特色功能 实验性玩法 加载提示 种子模板 角色创建器 表情 市场 精选服务器 活动服务器 VR 查 论 编教程(作下划线标记的教程为中文原创教程) 新手教程 菜单屏幕 游戏术语 计量单位 下载、安装与购买 成功地启动游戏 新手生存 新手指南 第一天 第二天 第三天 提示与技巧 饥饿管理 不该做的事 生存注意事项 庇护所 庇护所 沙漠 微型 最佳居住生物群系 最佳建筑材料 建筑与结构 房屋类型 导航 综合 无聊的时候做什么 跑酷 空置域 伪和平[仅Java版] 节省时间的小窍门 在水下利用TNT破坏方块 成就指南[仅基岩版] 进度指南[仅Java版] 拓殖 战斗 完成冒险 双持 探索洞穴 利用碰撞箱 马 使用地图 测量距离和角度 采矿技术 钻石 化石 远古残骸 下界快速旅行 下界传送门 支柱跳跃 幻翼防护 生成骑士 穿越和破坏基岩 防卫僵尸围城[仅Java版] 考古 不可破坏的末地水晶 使用更少的末地水晶重生末影龙 透视镜 挂机池 整理物品 潜影盒储存 物品运输 方法 自动化烧炼 选择燃料 爆炸室 凋灵笼 光速船[仅基岩版] 无材料消耗转换药水类型[仅基岩版] 在超平坦世界中管理史莱姆 Minecraft和教育 视频 村民和交易 村庄生存 创建村庄 村庄机制 治愈僵尸村民 村民养殖 村民交易所 流浪商人陷阱 建筑 给工程添加美感 空气闸 建筑术语 建造游轮 建造大都市 建造过山车 建造安全的家园 建造水建筑 建造几何体 防御 家具 电梯 带釉陶瓦的图案 建造地板 像素艺术 牧场 屋顶类型 弧形屋顶 屋顶建造指南 装饰屋顶 暗门 建造居住地 水下建筑 墙壁和桥墩 水闸 调色板 活塞吊桥 挑战 获得潮涌核心 冒险模式生存 挑战自定义地图 制作自定义地图 征服神殿和神庙 触发及战胜袭击 征服掠夺者前哨站 征服堡垒遗迹 征服林地府邸 征服海底神殿 征服试炼密室 征服下界要塞 征服末地城 打败末影龙 打败凋灵 极限模式[仅Java版] 超极限模式[仅Java版] 在一个地区中长期生存下去 沙漠生存 在无限沙漠中生存 下界生存 从零开始下界生存 末地生存 雷暴生存 超平坦世界生存[仅Java版] 岛屿生存 空岛生存 在和平难度中收集资源 速通 游荡模式 探索深暗之域和远古城市 愚人节版本生存[仅Java版] 22w13oneBlockAtATime 24w14potato 农场 方块和物品 紫水晶 骨粉 仙人掌 农作物(小麦、胡萝卜、马铃薯、甜菜根、火把花和瓶子草) 西瓜、南瓜 紫颂果 圆石或石头 可可豆 泥土 滴水石锥 鸡蛋 鱼 花朵 蛙明灯 蜂蜜 冰 海带 肉 蘑菇 唱片 下界疣 黑曜石 袭击农场 海泡菜 雪 甘蔗 甜浆果 原木、树苗和苹果 海龟鳞甲 藤蔓 羊毛 药水 经验 基岩 方块和物品复制 铁轨复制机[仅Java版] TNT复制[仅Java版] 零刻作物催熟技术[仅基岩版] 生物 刷怪塔 怪物磨床 刷怪笼陷阱 动物(猪、牛、绵羊) 烈焰人 洞穴蜘蛛 闪电苦力怕 溺尸 末影人 山羊 守卫者 铁傀儡 岩浆怪 以物易物 潜影贝 史莱姆 鱿鱼 海龟 村民 女巫 流浪商人 凋灵骷髅 僵尸猪灵 红石 基础红石 基本逻辑门 高频电路 计时器 抽奖箱 漏斗 通用物品分类器 机械 侦测器稳定器 密码锁 随机发生器 红石机械 红石音乐 红石技巧 鲁布·戈德堡机械 探测器 方块更新感应器 比较器更新感应器 阳光探测器 昼夜探测器 矿车 矿车 火车站 储存 数字化存储系统 陷阱 陷阱 陷阱设计 雪傀儡防御炮 TNT大炮 活板门利用 活塞 活塞使用 活塞电路 无延迟科技 飞行器 半连接性[仅Java版] 零刻活塞[仅Java版] 无头活塞[仅Java版] 高级红石 高级红石电路 算术逻辑 计算器 时钟 摩尔斯码 打印机 红石计算机 红石电报机 多人游戏 玩法 游玩服务器 PvP Java版1.9前、基岩版 基地 隐藏箱子 起床战争 空岛战争 猎人游戏 服务器管理 防止恶意破坏 服务器监狱 服务器商店 雪球菜单 架设服务器 架设Java版服务器 架设基岩版服务器 服务器架设脚本 服务器启动脚本 FreeBSD启动脚本 OpenBSD启动脚本 Ubuntu启动脚本 WebSocket服务器[仅基岩版] 架设Mod服务器[仅Java版] 架设Hamachi服务器 架设Spigot服务器 虚拟硬盘服务器 使用ngrok搭建服务器 架设ZeroTier服务器 本地局域网联机 服务器维护 技术性 Minecraft帮助FAQ 地图 自定义地图 下载地图 使用MCEdit刷新旧区块[仅Java版] 强制打开存档[仅Java版] 降级 资源包 制作资源包 /纹理 /音效和音乐 /语言和文本 加载资源包 模型 数据包[仅Java版] 制作数据包 实例:蜜蜂助手 消除视线 安装数据包 自定义世界生成 自定义结构生成 附加包[仅基岩版] 基岩版开发指南 制作资源附加包 高级 基岩版实体文档 修改实体模型 制作行为包 自定义实体 自定义方块 自定义物品 自定义附加包语言文件 自定义音效 命令格式 仅Java版 生成下落的方块 命令统计值 运行数据生成器 文本组件 NBT命令标签 自定义物品堆叠组件 命令方块 结构方块 用命令操控实体 NBT与JSON 自定义命令触发 游戏安装 仅Java版 提高帧率 更新Java 修复Apache Log4j2漏洞 编写启动器 快照版本安装 获取崩溃报告 仅基岩版 Minecraft URL Scheme 汇报漏洞 在U盘中使用旧版启动器运行游戏 恢复损坏的地图数据 在Google Drive上运行游戏 将游戏数据保存到Dropbox云端 仅限地图数据 在Chrome OS上运行游戏 过时教程 到达边境之地 获取崩溃报告(旧版) 无数据包生存 升级LWJGL 更新Minecraft 村民养殖(村庄与掠夺前) 村庄链 水道 游戏直播 水车 仅英文 自定义纹理包 基于门的铁傀儡陷阱 人工湖 矿车加速器 中继器重启系统 水梯 无延迟电路 教程 新手手册 高难度通关配装总结 成就指南 高塔指南 教程 新手手册 基地建设指南


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有