当前位置: 首页 > news >正文

我的世界1.20.1forge模组开发进阶物品(7)——具有动画、3D立体效果的物品

基础的物品大家都会做了对吧?包括武器的释放技能,这次来点难度,让物品的贴图呈现动画效果和扔出后显示3D立体效果,这个3D立体效果需要先学习blockbench,学习如何制作贴图。

Blockbench

Blockbench是一个用于创建和编辑三维模型的免费软件,特别适用于Minecraft模型的设计。以下是一些基本的使用指南:

  1. 下载和安装Blockbench软件:可以在Blockbench官方网站上下载适用于您的操作系统的软件版本,安装完成后打开软件。

  2. 创建新模型:在Blockbench中,可以选择新建一个项目或者打开现有的模型文件。点击"File"菜单,选择"New"开始一个新项目。

  3. 绘制和编辑模型:Blockbench提供了各种工具来绘制和编辑模型。可以使用方块工具、拉伸工具、旋转工具等来创建和调整模型的形状。

  4. 添加纹理:可以导入纹理文件来为模型添加颜色和贴图。在Blockbench中,可以点击"Texture"选项卡,选择"Import"导入纹理文件。

  5. 导出模型:完成模型的设计后,可以将模型导出为常见的模型文件格式,如.obj、.fbx等。点击"File"菜单,选择"Export"来导出模型文件。

可以去网上搜搜这个软件的用法,只有这个软件用好了,才会做出出色的贴图纹理。

动画效果 

如果仅仅只是要纹理的动画效果,不要立体效果,那就可以这样做:

  • 创建纹理文件:

{"parent": "minecraft:item/generated","textures": {"layer0": "mymod:item/active_heart"},"animation": {"frametime": 40,    "loop": true}
}
  • 创建动画纹理元文件 (与纹理文件同名,格式为mcmeta):

{"animation": {"interpolate": true,"frames": [{"index": 0, "time": 40},{"index": 1, "time": 40},{"index": 2, "time": 40},{"index": 3, "time": 40},{"index": 0, "time": 1}]}
}

文件解析:

frametime: 每帧持续时间(游戏刻)

interpolate:启用帧过渡平滑

frames :帧序列(与模型文件一致)

然后给纹理文件加序号,分别为0,1,2,3。举个例子,比如你的物品为heart,留一个heart.json文件,假如需要4张图片来显示动画、每张图像的像素为256,那么主纹理文件的像素大小就是1024*256,从最开始的第一张横着放到最后一张,每一张的纹理文件命名为heart_序号.json,序号从0开始算,每一张纹理图片播放2秒,最后一帧到第一帧播放1tick。

若动画不播放,检查纹理文件是否符合以下特征:

  • 尺寸为2的幂次方(如64x256)
  • 帧区域对齐(引用纹理文件为帧序列图片从左往右横排排放)

立体效果

如果要实现立体效果,有两种方法,一种是在blockbench中选择Java版方块实体,导出json文件,和以前一样,放到item目录下就有立体效果了,第二种是选择通用模型,也就是obj模型,需要单独新建一个obj目录,把obj模型导入到obj目录中即可,两种方式的差异如下:

首先,用户可能已经知道Blockbench是一个常用的建模工具,用于创建Minecraft的模型。但他们对这两种模型的具体区别和适用场景不太清楚。我需要先明确OBJ模型和Java版方块物品模型各自的结构和用途。

OBJ模型是Blockbench导出的一种3D模型格式,通常用于更复杂或自定义的模型,支持更多的几何细节。而Java版方块物品模型是Minecraft原生的JSON模型格式,主要用于方块和物品的标准表示,兼容性更好。

接下来,用户可能想知道它们各自的优缺点。比如OBJ模型的优点可能是更灵活,可以制作更复杂的形状,但可能在性能或兼容性上有问题。而Java版模型虽然简单,但可能在优化和集成方面更好。

我需要考虑用户可能的实际需求。比如他们是否在制作一个需要高细节的物品,或者是否需要与游戏机制深度集成。如果用户是新手,可能需要更直观的模型创建方式,这时候Blockbench的OBJ导出可能更合适。但如果他们需要确保模型在各种情况下的稳定运行,Java版原生模型可能更好。

另外,用户可能遇到了一些具体的问题,比如导入OBJ模型时出现的错误,或者在性能上的问题,所以想了解两种模型的区别来做出选择。这时候需要详细说明两者的技术差异,比如文件结构、资源引用方式、性能影响等。

还要考虑到Minecraft的版本差异,比如Java版和基岩版的不同支持情况。OBJ模型可能在某些版本或模组加载器中的支持有限,而原生JSON模型则被广泛支持。

最后,用户可能需要一些指导,比如在什么情况下选择哪种模型,以及如何优化他们的选择。这时候需要给出具体的建议,帮助他们根据项目需求做出决策。

总结一下,我需要分步骤解释OBJ模型和Java版方块物品模型的技术区别、优缺点,适用场景,并给出实际开发中的建议,帮助用户更好地选择适合他们项目的模型类型。


在开发《我的世界》模组时,使用 **Blockbench 导出的 OBJ 模型** 和 **Java 版原生方块/物品模型(JSON 格式)** 有显著区别,分别适用于不同的场景和需求。以下是两者的对比分析及优缺点总结:

一、技术实现与核心区别

二、优点与缺点


#### **1. OBJ 模型**
- **优点**  
  - **高精度建模**:支持复杂几何形状,适用于非方块化物品(如武器、机械零件)。  
  - **跨工具兼容**:可在 Blender 等专业 3D 软件中编辑,再导入 Blockbench 优化。  
  - **材质细节**:MTL 文件支持多纹理通道(漫反射、法线、高光等)。  

- **缺点**  
  - **性能开销**:高面数模型可能导致渲染卡顿,需手动优化。  
  - **兼容性限制**:需安装 OBJ 模型加载器(如 Forge 的 `ObjLoader`),与其他模组可能冲突。  
  - **开发复杂度**:需手动处理材质路径、缩放、坐标系转换等问题。  

#### **2. Java 版原生模型(JSON)**
- **优点**  
  - **原生支持**:无需额外加载器,兼容性最佳,适用于所有 Java 版模组。  
  - **高效渲染**:基于立方体优化的渲染管线,性能开销极低。  
  - **动态行为集成**:原生支持物品旋转、光照效果、条件纹理(如耐久度变化)。  

- **缺点**  
  - **几何限制**:仅支持立方体或简单变形(如 `rotation` 和 `shade` 参数),无法实现复杂形状。  
  - **工具依赖**:需依赖 Blockbench 或手动编写 JSON,专业 3D 软件无法直接导出。  

---

三、适用场景


#### **1. 使用 OBJ 模型的最佳场景**
- **高精度物品**:如武器、载具、装饰物(需精细曲面)。  
- **跨游戏移植**:复用其他游戏或 3D 软件中的模型。  
- **特效需求**:需要法线贴图、环境光遮蔽等高级材质效果。  

#### **2. 使用 Java 版原生模型的最佳场景**
- **方块类物品**:如自定义方块、工具(斧、镐等)。  
- **动态交互需求**:如根据物品状态切换纹理(耐久度、附魔)。  
- **性能敏感场景**:如大型模组需保证低性能开销。  

---

四、开发建议


#### **1. 混合使用策略**
- **基础模型用 JSON**:方块、工具等标准物品使用 JSON 模型。  
- **复杂部件用 OBJ**:为关键物品(如魔法法杖)添加 OBJ 细节模型。  
  ```java
  // 示例:在物品渲染时动态切换模型
  @Override
  public Model getModel(ItemStack stack) {
      if (isEnchanted(stack)) {
          return OBJ_MODEL; // 高精度 OBJ 模型
      } else {
          return JSON_MODEL; // 原生 JSON 模型
      }
  }
  ```

#### **2. OBJ 模型优化技巧**
- **减少面数**:使用 Blockbench 的“减面工具”(Decimate Modifier)。  
- **合并材质**:将多个材质合并到同一张纹理图集(Texture Atlas)。  
- **坐标系对齐**:确保 OBJ 模型的原点对齐 Minecraft 网格(0.5, 0.5, 0.5)。  

#### **3. JSON 模型扩展性**
- **动态纹理**:通过 `overrides` 实现条件纹理切换。  
  ```json
  {
    "overrides": [
      { "predicate": { "damaged": 1 }, "model": "item/damaged_sword" }
    ]
  }
  ```

---

五、典型案例


- **OBJ 模型成功应用**:  
  模组《Immersive Engineering》中的机械臂和传送带,利用 OBJ 实现工业级细节。  
- **JSON 模型深度集成**:  
  模组《Quark》的自定义方块(如石板、木柱),通过 JSON 实现高效渲染和动态行为。  

---

### **总结**
- **选择 OBJ 模型**:当需要高精度、跨工具兼容性或高级材质效果时。  
- **选择 JSON 模型**:当追求性能、原生兼容性或简单动态行为时。  
- **混合使用**:结合两者优势,既能保证性能ÿ

相关文章:

我的世界1.20.1forge模组开发进阶物品(7)——具有动画、3D立体效果的物品

基础的物品大家都会做了对吧?包括武器的释放技能,这次来点难度,让物品的贴图呈现动画效果和扔出后显示3D立体效果,这个3D立体效果需要先学习blockbench,学习如何制作贴图。 Blockbench Blockbench是一个用于创建和编辑三维模型的免费软件,特别适用于Minecraft模型的设计…...

ubuntu22.04安装docker engine

在Ubuntu 22.04上安装Docker Engine可以通过以下步骤完成: 更新系统包索引: sudo apt update安装必要的依赖包: 这些包允许apt通过HTTPS使用仓库。 sudo apt install -y apt-transport-https ca-certificates curl software-properties-commo…...

性能测试测试策略制定|知名软件测评机构经验分享

随着互联网产品的普及,产品面对的用户量级也越来越大,能抗住指数级增长的瞬间访问量以及交易量是保障购物体验是否顺畅的至关重要的一环,而我们的性能测试恰恰也是为此而存在的。 性能测试是什么呢?性能测试要怎么测呢&#xff1f…...

Let‘s Encrypt免费证书的应用示例

文章目录 前言证书申请证书介绍cert.pemchain.pemfullchain.pemprivkey.pem 使用步骤搭建简易demo应用新建nginx配置文件测试SSL是否生效 总结 前言 最近在搞苹果应用上架的问题,据说用HTTP会被拒,但貌似不绝对,2017年苹果曾发公告说必须要求…...

threeJS——安装以及三要素

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装二、三要素1.场景1.1创建场景1.2向场景添加元素1.3场景属性 2.相机2.1相机特点2.2正交相机2.3空间布局2.4小姐操作 3.渲染器 总结 前言 本章简单介绍前…...

【Electron入门】进程环境和隔离

目录 一、主进程和渲染进程 1、主进程(main) 2、渲染进程(renderer) 二、预加载脚本 三、沙盒化 为单个进程禁用沙盒 全局启用沙盒 四、环境访问权限控制:contextIsolation和nodeIntegration 1、contextIsola…...

提示词框架介绍和使用场景

框架介绍 CO-STAR 框架 定义 CO-STAR是六个关键要素的缩写,每个字母代表一个特定的部分: Context(上下文) :提供任务的背景信息或环境 当前任务是为一家科技公司撰写一篇关于人工智能发展趋势的文章/ 需要为一场面向高中生的科普讲座准备内容Objective(目标) :明确任…...

牛客NC288803 和+和

​import java.util.Comparator;import java.util.PriorityQueue;import java.util.Scanner;​public class Main {public static void main(String[] args) {// 创建Scanner对象用于读取输入Scanner sc new Scanner(System.in);// 读取两个整数n和m,分别表示数组的…...

AI学习第七天

数组:基础概念、存储特性及力扣实战应用 在计算机科学与数学的广袤领域中,数组作为一种极为重要的数据结构,发挥着不可或缺的作用。它就像一个有序的 “数据仓库”,能高效地存储和管理大量数据。接下来,让我们深入了解…...

【uniapp原生】实时记录接口请求延迟,并生成写入文件到安卓设备

在开发实时数据监控应用时,记录接口请求的延迟对于性能分析和用户体验优化至关重要。本文将基于 UniApp 框架,介绍如何实现一个实时记录接口请求延迟的功能,并深入解析相关代码的实现细节。 前期准备&必要的理解 1. 功能概述 该功能的…...

XR应用测试:探索虚拟与现实的边界

引言 随着XR(扩展现实,Extended Reality)技术的快速发展,VR(虚拟现实)、AR(增强现实)和MR(混合现实)应用逐渐渗透到游戏、教育、医疗、工业等多个领域。对于…...

算法之算法思想

算法思想 ♥算法思想知识体系详解♥ | Java 全栈知识体系 经典算法思想总结 经典算法思想总结(含LeetCode题目推荐) | JavaGuide...

mac电脑中使用无线诊断.app查看连接的Wi-Fi带宽

问题 需要检查连接到的Wi-Fi的AP硬件支持的带宽。 步骤 1.按住 Option 键,然后点击屏幕顶部的Wi-Fi图标;2.从下拉菜单中选择 “打开无线诊断”(Open Wireless Diagnostics);3.你可能会看到一个提示窗口,…...

物理竞赛中的线性代数

线性代数 1 行列式 1.1 n n n 阶行列式 定义 1.1.1:称以下的式子为一个 n n n 阶行列式: ∣ A ∣ ∣ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ∣ \begin{vmatrix}\mathbf A\end{vmatrix} \begin{vmatrix} a_{11…...

FFmpeg-chapter3-读取视频流(原理篇)

ffmpeg网站:About FFmpeg 1 库介绍 (1)libavutil是一个包含简化编程函数的库,包括随机数生成器、数据结构、数学例程、核心多媒体实用程序等等。 (2)libavcodec是一个包含音频/视频编解码器的解码器和编…...

机器视觉线阵相机分时频闪选型/机器视觉线阵相机分时频闪选型

在机器视觉系统中,线阵相机的分时频闪技术通过单次扫描切换不同光源或亮度,实现在一幅图像中捕捉多角度光照效果,从而提升缺陷检测效率并降低成本。以下是分时频闪线阵相机的选型要点及关键考量因素: 一、分时频闪技术的核心需求 多光源同步控制 分时频闪需相机支持多路光源…...

「Selenium+Python自动化从0到1②|2025浏览器操控7大核心API实战(附高效避坑模板))」

Python 自动化操作浏览器基础方法 在进行 Web 自动化测试时,操作浏览器是必不可少的环节。Python 结合 Selenium 提供了强大的浏览器操作功能,让我们能够轻松地控制浏览器执行各种任务。本文将详细介绍如何使用 Python 和 Selenium 操作浏览器的基本方法…...

矩阵系列 题解

1.洛谷 P1962 斐波那契数列 题意 大家都知道,斐波那契数列是满足如下性质的一个数列: F n { 1 ( n ≤ 2 ) F n − 1 F n − 2 ( n ≥ 3 ) F_n \left\{\begin{aligned} 1 \space (n \le 2) \\ F_{n-1}F_{n-2} \space (n\ge 3) \end{aligned}\right. …...

活动报名:Voice Agent 技术现状及应用展望丨 3.8 北京

「人人发言,所有人向所有人学习!」——Z 沙龙 「一起探索下一代语音驱动的人机交互界面。」——RTE 开发者社区 3 月 8 日周六下午,北京,「智谱 Z 计划&Z Fund」和「RTE 开发者社区」将合办一场 Voice Agent 主题的线下活动…...

【卡牌——二分】

题目 分析 发现答案具有二分性&#xff0c;果断二分答案 代码 #include <bits/stdc.h> using namespace std; using ll long long;const int N 2e510;int n, a[N], li[N]; ll m;bool check(int x) {ll t m;for(int i 1; i < n; i){if(a[i] > x) continue; //…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...