模组:编辑 XNB 文件

来自Stardew Valley Wiki
1059 Studio讨论 | 贡献2021年4月12日 (一) 08:41的版本
跳到导航 跳到搜索

目录

本页描述了如何编辑游戏文件以更改游戏中的数据、图像和地图。

介绍

什么是 XNB 文件?

游戏将数据、地图和纹理 存储在 .xnb 这种压缩数据文件中,它们在游戏的 Content 文件夹中。 例如,对话期间显示的阿比盖尔的头像来自这个文件: Content\Portraits\Abigail.xnb。解包这个文件,你会得到 Abigail.png 这个图片文件,内容如下:
Modding - creating an XNB mod - example portraits.png

(如果你使用 xnbcli 来解包,你通常会得到 Abigail.json 文件。 那只是用来打包回 .xnb 所需的文件,通常不需要更改它。)


XNB模组代替了一些游戏原本的XNB文件,可以让你更改图像(头像,NPC行走图或建筑物外形),数据(作物信息或对话),或地图(包括地图行为,如传送或小游戏)。 XNB模组也可以添加全新的内容(如新的NPC)。

XNB vs SMAPI mods

SMAPI is a modding API that lets you change the game using code. SMAPI mods are more powerful, easier to install and remove, and allow multiple mods to change the same content. On the other hand, SMAPI requires you to write code which some modders aren't comfortable with. If you have programming experience, creating a SMAPI mod is recommended instead if feasible.

有关这两种mod的更多信息,请看:使用模组:玩家常见问题

在哪里可以获得帮助?

The Stardew Valley modding community is very welcoming. Feel free come chat on Discord or post in the forums.

入门

第一步

在你开始之前, 你应该安装这些:

on Windows
on Linux/Mac

You should also back up your game's Content folder, so you can recover the original files if you make a mistake.

Unpack & pack game files

You can't edit an .xnb file itself, you need to edit the file that's inside it. Pulling out that inner file is called unpacking, and putting it back is called packing. Here's how to do it:

  1. Download XNB Extract (see #First-time setup).
  2. Unpack the file for editing:
    1. Find the file you want to edit in the Contents folder.
    2. Copy it into XNB Extract's Packed folder.
    3. Double-click UnpackFiles.bat (Windows) or UnpackFiles.sh (Linux/Mac).
  3. Edit the unpacked file (see below).
  4. Repack the file for the game:
    1. Double-click PackFiles.bat (Windows) or PackFiles.sh (Linux/Mac).
    2. Move the repacked .xnb file back to the original location.

Making changes

Spritesheets, tilesheets, or portraits

An example tilesheet, which consists of a grid of tiles like this: Modding - creating an XNB mod - example tile 1.png

Definitions:

  • A spritesheet is a PNG file containing small images in a regular grid pattern. Each square in the spritesheet's grid pattern is called a sprite. For example, each in-game item has a sprite in Content\Maps\spring_objects.xnb.
  • A tilesheet is a synonym for spritesheet when used for map tiles. In a tilesheet, each square is called a tile and is 16×16 pixels.
  • A portrait is a sprite from the Content\Characters\*.xnb spritesheets.

Spritesheets are easy to edit:

  1. Unpack the file you want to change.
  2. Open the unpacked .png file in an image editor (see #Getting started).
  3. Make changes directly to the image.
  4. Repack the file and copy it back to the original location.

That's it! You can launch the game to see your changes.

地图

请见:使用模组:地图