跳转至

开始

sam 在捣鼓 Dialog 百思不得其解拼尽全力无法战胜后表示: 我以后一定要做一个更加详细易懂的教程

我听到这句话后感觉天都塌了, 我们的教程不能被 sam 所理解, 那一定是写的还不够清晰易懂, 感谢 sam 旁敲侧击, 我马上就改😭

Note

本文使用的环境为 Windows 11

请先阅读引言, 不管你是做着玩的还是想做出东西的, 制图都值得你认真对待, 在那之后制图一定会成为你独特的回忆

建议

  • 建议一开始的时候先过一遍教程有个印象, 虽然我知道你很想赶紧在制图器里摆几个砖然后开u, 但还是请你先忍一忍

    K: 所有不看群文件教程就在群里问教程讲过的东西的人直接踢出群聊

  • 建议你下载的所有东西, 蔚蓝, 制图工具和素材等都放在英文路径下(如果用户名是中文那么桌面也算中文路径), 不然可能会有奇奇怪怪的bug(同时这也是个良好的习惯, 不仅仅适用于蔚蓝)
  • 学会提问/搜索/自学

前期准备

显示文件后缀/扩展名

初出茅庐

游戏是咋做出来的

要知道我们在电脑上运行一款软件本质上是跑了一段.exe 格式的程序, 游戏也是如此, 是不过写出来的程序是拿来给人玩的, 想象一个画面, Madeline(后续称作player/玩家) 在一块平坦的地面上不断向右走, 镜头跟随, 你听到了玛德琳跑步的声音, 这个过程中实际上发生了什么呢? 程序发现你按着右键, 于是更新 player x 方向的速度, 尝试将 player 位置右移若干格, 发现途中没有发生碰撞, 所以移动成功, 然后程序设置镜头跟随 player, 接着程序发现 player 现在是"跑步"状态, 所以绘制跑步的素材, 并播放跑步的声音

example_of_making_game

所以我想...你大概已经明白了, 程序员用一行行代码定义规则模拟出一个世界, 用图片来绘制游戏对象, 用音效来增添真实感, 用音乐来渲染氛围, 用文本来添加对话, 用角色互动来演绎剧情等等等等, 然后游戏就做出来了

所以如果我们把蔚蓝大卸八块, 大概能看到这样的结构(有些不理解也没事, 以后会明白的)

程序

  • 核心程序: 资源的加载, 游戏逻辑的执行

资源

  • 代码Code: Coders写的各种 Helper
  • 美术Graphics: 游戏中你看得见的几乎都是, 就是一张张.png图片
  • 音乐音效Audio: BGM, 玛德琳音等等
  • 文本Dialog: 对话, 文本本地化/汉化
  • 过场Lua Cutscenes: 游戏中各种剧情的演绎
  • 残影Tutorials: 9a凌波教程
  • 地图Maps: 包含上述所有内容, 使用Loenn制作(马上就要提到了)
  • 等等

啥是 Mod, 啥是 Everest

你说蔚蓝是这么做出来的, 那理论上我们要是写出跟官方一样的代码, 画出一样的素材, 做出一样的音乐也能搓个蔚蓝出来咯, 还能加自己想要的功能, 事实也确实如此, 但是别急, 蔚蓝代码就在那儿啊, 素材也能解包, 与其重新造轮子, 不如直接在原版的基础上改, 🤔 ... 欸☝️🤓, 这不就是 Mod 吗

所以你应该明白了, 为一个游戏做Mod, 本质上就是修改部分核心程序, 让程序按我们的意愿额外加载我们资源(所以你经常能看到各种游戏跟Mod有关的资源都是放到游戏本体根目录下的Mods文件夹中), 然后Modder在Mods文件夹中添加各种上述资源, 我们的Mod就完成啦

显然, 不是所有人都有能力去修改核心程序的, 这不仅需要门槛, 而且大家各改各的容易造成混乱, 所以需要一个中间商来制定一套规则, 只要大伙儿都遵循这套规则, 做出来的东西就方便传播和使用

这就是Everest Mod加载器在干的事, 它修改了游戏的核心程序并在此基础上添加了更丰富的内容, 我们无需关心资源是怎么读取的, 只需要按它规定的把我们的Mod放到.../Steam/steamapps/common/Celeste/Mods/文件夹下, 然后把上文说的所谓的游戏资源也按它规定的格式放在自己的Mod里该放的位置, 理论上你的Mod就能被正确的加载并运行

如果我们把 Celeste 跟民间制作的 Mod 加载器(Celeste0, Celeste1, Everest等)看作一个个节点, 则可以画出如下的思维导图(因为蔚蓝相对小众所以一种 Mod 加载器已经满足需求了, 没必要再整一个)

why_everest

下载OlympusCelemod并安装Everest

简单来说这俩就是Mod管理器, 方便我们下载和更新Everest, 启用和禁用Mod, 下载安装Mod, 设置Mod预设等等, 这里推荐小白用Celemod

下载Loenn(或者群文件里下)

Loenn被称作制图器, 它的前辈是Ahorn, 它为作图提供了图形化界面, 让我们制作Map这个游戏内容方便不少, 要知道, 前文提及的Code, Graphics, Audio, Dialog, Lua Cutscenes都是为了Map 服务的, 所以Loenn可以说是制图的核心, 如果你现在什么Mod都没下, 那么你在Loenn右侧栏目里看到的一切全都是原版官图的内容, 而如果你下了, 往往你能看到各种带[xxx resources pack] [xxx Helper] [Everest]标签的条目, 这些就是其他Mod里的资源(大部分都是可以随便用的, 小部分不能用, 小部分在你发布Mod的时候要填写致谢, 初学的时候不用很关注这个, 想用就用, 真到发布Mod的时候再说)

注意事项

Loenn初次打开就报错的解决方案

小试牛刀

理论上, 现在你应该已经了解了什么是Mod, 什么是Everest, 下载好CelemodLoenn并且Loenn能正常启动了

随便捣鼓下Loenn并保存生成.bin地图文件

可以自己捣鼓或者阅读下【Celeste蔚蓝】二代作图教程 1-1 Loenn的使用【Celeste蔚蓝】二代作图教程 2-1 基础trigger

或者你很急的话可按照如下操作光速出图:

  1. 打开Loenn
  2. 点击上侧导航栏File -> New新建一张图
  3. 点击上侧导航栏Room -> Add, 在Room Name这一栏写一个不那么抽象的名字(建议使用数字/字母/下划线, 例如A_01), 然后点击下方Create Room来创建一个房间
  4. 点击右侧Rectangle, 随便选个砖在房间里随便涂涂(主要是为了让Player有个落脚的地方)
  5. 点击右侧Placement, 下方选择Entities, 在右下角搜索栏输入Player, 选择Player (Spawn Point), 并在房间内放置至少一个重生点(Player无法进入没有重生点的房间)
  6. 点击右侧Placement, 下方选择Entities, 在右下角搜索栏输入Crystal Heart, 选择Crystal Heart, 并在房间内放置一个水晶之心
  7. 点击上侧导航栏Map -> Metadata, 把General这一栏的End Level on Heart勾上, 点击Save changes
  8. 最后Ctrl + S保存地图到随便一个位置(重点是你知道存哪儿了), 格式为.bin

了解Mod的结构

我们要遵循前文所提到的Everest所定的规范, 即我们的Mod应该有哪些东西, 层次是怎样的, 这样我们的Mod才能被正确加载, 而且方便传播和学习(俗称拆包), 其实是方便抄(bushi

丰富地图内容

理论上, 现在你应该已经做好了一个流程勉强能跑通的图, 并且Mod的格式也没什么问题, 接下来我们会丰富游戏各方面的内容(有些不是必须的)

虽然我目前还没做过图, 但很多东西理解原理后其实门槛不高, 难住新手的主要是不熟悉操作和原理, 但这两者都是可以慢慢积累的, 所以大家也别急着放弃(, 一开始也别觉得哎哟卧槽怎么这么多东西, 其实不用都学, 你图做到哪儿了想实现什么东西的时候再去捣鼓对应方向即可

建议

  • 下载CelesteTas这个Mod, 在游戏内按Ctrl + B就能查看Entity和Trigger碰撞箱, 方便制图
  • 下载官图图片素材, 以后肯定用得上
  • 上网了解下什么是相对路径和绝对路径, 当使用自定义实体替换贴图的时候填写的路径几乎都是相对路径, 一般都是相对于官图素材里Gameplay里的一些文件夹的路径
  • 了解啥是Flag, 简单来说就是带名字的开关, 我们一般使用某个实体或者Trigger触发某个flag, 以触发对应flag实体(例如FlagSwitchGate), 做到一对一的交互
  • 了解啥是XML, 方便你以后改各种XML
  • 碰到问题时可以查看Loenn常见问题
  • 不会就抄别人的Mod, 抄多了就会了

本地化/汉化你的地图

此时你会发现你地图的名字还没有取, 吃心文本等显示的都是一些被括号包裹键名如{XXX_Tutorial_CelesteWikiTutorial}, 这就需要你自己去配置对应的内容

设置选关界面图标

修改地图的元数据Metadata

  • 游戏外: 修改章节等各种图标
  • 游戏内: bgm, 核心模式, 擦除方式, 入场方式, 滤镜, 泛光, 冲刺模式, 添加自定义xml, 吃心结算, 结算背景图等

设置存档点(章节)的插图

看电箱教程或者冬菜教程

为游戏添加更多自定义实体丰富内容

你可以通过如下渠道下载别的Helper来拓展更多的功能(可能是扩展Loenn的, 也可能是扩展游戏的), 或者一些素材包(本质上也是Mod), 一般下个草莓酱大部分Helper就不缺了😋

常见问题(解决方案):

  • 不知道某个实体叫什么
  • 不知道自己缺什么Helper
  • 不知道用什么实体实现某个功能
  • ...

进阶

怎么改背景

详情见Stylegrounds

怎么修改房间属性

详情见房间属性

详情见Metadata

怎么改对话, 地图名字等

详情见Dialog

怎么做皮肤, 改贴图等

详情见Graphics

怎么运镜

详情见Camera

怎么写音乐音效等

详情见Audio

怎么写过场动画等

详情见LuaCutscene

怎么写自定义Entity和Trigger

详情见Code

怎么发布我的Mod, 又该注意些什么

详情见发布Mod