二、关于做地图和如何做成mod

本文详细介绍了如何在缺氧游戏中制作地图MOD,重点讲解了地图数据的修改,包括YAML文件的基本格式、地图生态的配置以及MOD的创建过程。通过修改Badlands.yaml文件,了解如何调整星球尺寸、生态分布等,并指导如何将修改后的文件打包成MOD进行使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先讲一下第一种mod的开发,这种mod需要对游戏文件很熟悉,注意改文件之前要先备份原文件

这里先说一下缺氧的游戏目录结构

    codex:还不知道是啥,以后更
    dlc: 应该是dlc的东西,不玩dlc没看
    elements:记录了各种物品的属性,比如水的比热容、水蒸气的比热容等等
    string:要用到的文件概述里说了,不用管他了
    templates:
    geysers:里面是各种泉的贴图数据
    poi:里面是遗迹的数据
    worldgen:
    subworlds:里面有各种生态的信息,生态名称就是文件夹名,文件夹里的是子生态名
        worlds:里面有各种世界的贴图数据

地图数据说明

这里只写一个地图修改的例子,这类不需要写代码的mod只有替换贴图的时候比较常用,加新地图属于替换地图贴图,看教程之前请先百度yaml语法,必须明白:

  1. 大小写敏感
  2. 使用缩进表示层级关系
  3. 缩进不允许使用tab,只允许空格
  4. 缩进的空格数不重要,只要相同层级的元素左对齐即可
  5. '#'表示注释

这五条,其他具体语法的可以照着文件写,上面五条是yaml文件的基本格式,格式不对游戏会崩溃!!!

这里以荒芜为例,打开荒芜所在文件夹,把荒芜的文件 Badlands.yaml 拖到vscode界面里,也就是用vscode打开它,下面的行号都是源文件的行号,在后面有带注释的完整代码

先看前三行,第一行的name是这个星球的名称,这里的在代码里定义的,包括第二行的星球的说明都是在代码里定义的不要动

直接看到第六行,wordsize是地球尺寸,X就是横着的,y就是竖着的

然后到第15行,这一行是这个星球所包含的生态类型,所有的value(看完了yaml语法应该知道key-value是什么)都是文件路径,表示subworlds文件夹下的生态文件夹下的子生态文件,子生态是什么不用管我也不知道,具体需要区分的子生态在后面会提到,minCount不用管,如果想加生态直接在后面加就行了,注意格式还有文件必须存在,如果不存在会崩溃

第31行是出生时候的生态,看后面那个子生态里有个单词Start,这个是专门为出生准备的生态

后面几行是啥我也不知道

到第48行,这里是定义各种生态的位置,第49到52行是初始出生时的,52行要跟31行保持相同

然后直接看到第88到92行,89行的AtDepths表示在最底层,90行表示替换,地图刚开始就是张白纸,所有的东西都是替换上去的,第91行是子生态类型,92行表示这个子生态是岩浆,这里可以改成subworlds/frozen/CO2Lakes这个就是冰核,第94到101行就是原油区的,那个还有个marsh是沼泽,原油区有的时候会有沼泽,看到这里应该明白,AtDepths的区域就是最底部的岩浆和上面的原油区

然后看到第103到115行,space表示太空,Surface这个子生态就是浮土,Space子生态就是浮土上面的太空,你应该也明白AtSurface是哪了

那么剩下的地方就是AtStart,看到第54到86行,也就是AtStart的,minDistance不知道写啥就写1,MaxDistance不知道写啥就是999,我也不知道这俩是啥,然后subworldNames就是这个区域的生态名

注意第48到115行的所有subworldNames标签下出现的生态必须在上面16到29行里出现过,反过来也一样,不然加载地图会报错

再往下看到第118行这里定义的是遗迹和泉的信息,第121行这里定义的是冷蒸的信息,122行表示尝试生成一个,第123行不用管,不会用到,第124行下面的zoneTypes表示所在的生态,Replace刚才说过了,这个后面也不会用到

第127行这里的name下面有两个文件,这表示二选一,再下面的148行表示油井的,油井贴图有很多,不用奇怪为什么有这么多文件,times表示三个

剩下的基本都是遗迹了,直接看到175行,这里的geysers/generic表示全部泉,下面的times表示12个,这里其实是在全部泉中进行有放回的抽样,抽12个,我是这么理解的,至于有的时候只有8个圈,有的时候14个,这个应该是在代码里面控制的

如果自己要加什么泉就直接复制175行到184行的然后粘贴到175行上面,注意格式,然后改geysers/generic跟times就行了,generic还是改成geysers文件里的泉,里面已经有所有泉的定义了

# 地图文件在steamapps\common\OxygenNotIncluded\OxygenNotIncluded_Data\StreamingAssets\templates\poi\jungle里

# Badlands:           荒芜
# ForestDefault:      乔木
# ForestHot:          干热
# ForestLush:         翠绿
# Oasis:              绿洲
# Oceania:            海洋
# SandstoneDefault:   类地
# SandstoneFrozen:    冰霜
# Volcanea:           火山

name: STRINGS.WORLDS.BADLANDS.NAME # 荒芜
description: STRINGS.WORLDS.BADLANDS.DESCRIPTION
asteroidIcon: Asteroid_badlands

# 世界特征尺度,和世界大小一起调整,特征被调整到基本的游戏世界大小
worldTraitScale: 1
# 地图大小
worldsize:
  X: 256
  Y: 384
layoutMethod: PowerTree

# Notes:
# minCounts只是足够的空间来生成有保证的模板

# 生态信息
subworldFiles:
  # 砂岩
  - name: subworlds/sandstone/SandstoneStart
  # 砂岩
  - name: subworlds/sandstone/SandstoneMiniMetal
  # 砂岩
  - name: subworlds/sandstone/SandstoneMiniWater
  # 丛林
  - name:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值