为 Mod 增加资源 |
您所在的位置:网站首页 › dokimod › 为 Mod 增加资源 |
# 为 Mod 增加资源 今天我们学习的内容会有一点点的难,但是不必担心,按照教程走,你肯定会很快学会。 警告!!! 本章会默认您在使用 Mod 模板。 一般来说,在您的 Mod 工程里的 game 文件夹下会有一个名叫 mod_assets 的文件夹,这里面存放的就是 Mod 资源。 # 获取资源您可以从 DDMC Community Assets(来自 Google Drive,需挂梯) (opens new window) 下载一些适合 DDLC Mod 的免费资源。 警告!!! 请注意资源的版权问题。 上面的文件夹(也包含其他来源)的大部分资源如果要使用,通常只要求在 Mod 里标注作者,但某些资源需要获得原作者的允许后才能添加到您的 Mod 里。 # 增加资源要使用资源,首先得增加资源。 # 增加图像资源在 DDLC 里,图像资源分为两种:角色图像资源与背景图像资源。 注意!!! 角色图像资源的格式应该为 PNG,且背景应该是透明的。角色图像资源的分辨率应为 960x960 以保证兼容性。 背景图像资源的格式可以为 PNG 或 JPG。如果您自己创作了这种资源,我们强烈建议使用 PNG 格式。 背景图像的分辨率应该为 1280x720,否则图片会意外放大。如果背景图片的分辨率超过上述分辨率,至少您的图片也应该为 16:9 的尺寸,这种情况下可以使用下方示例代码解决缩放问题: image your_image_name: "path/to/your/image.png" size (1280,720) # 添加 size 属性为了兼容性,强烈建议您保证您新建的所有文件(夹)名称全部为小写,且不使用中文。 # 增加角色图像资源 在 mod_assets 文件夹下新建一个文件夹,取名为 images(如果没有)。 在 images 文件夹下新建一个文件夹,取名为 (如果没有)。 在 文件夹里存放您的图像资源。 例如为纱世里增加面部表情资源,只需要把资源复制到 sayori 文件夹里并重命名为 26 个字母中的任意一个(为了兼容性,但请不要与原版游戏冲突),然后这些资源在生成 Mod 时就会和 Mod 一并打包了。 在 definitions.rpy 文件里定义添加的资源。(本节后面会教您怎样这样做。)注意!!! 请根据 里的内容更改。 为了兼容性,强烈建议您保证您在此步新建的所有文件(夹)名称全部为小写,且不使用中文。 # 增加背景图像资源 在 mod_assets 文件夹下新建一个文件夹,取名为 images(如果没有)。 在 images 文件夹下新建一个文件夹,取名为 bg。 在 bg 文件夹里存放背景资源。 例如新增一个学园祭时的文学社教室背景,只需要把背景复制到 bg 文件夹里并重命名为合适的名字,背景在生成 Mod 时就会和 Mod 打包在一起了。 在 definitions.rpy 文件里定义添加的资源。(本节后面会教您怎样这样做。) # 增加音频资源注意!!! Ren'Py 只支持以下几种音频格式: Opus Ogg Vorbis MP3(不建议使用) WAV (16 位 PCM 格式的带文件头音频) 在 mod_assets 文件夹下新建一个文件夹,取名为 audio 。 在 audio 文件夹里存放音频资源。 例如增加一首新的背景音乐,只需要把音频复制到 audio 文件夹中就可以了。现在新增的音频在生成 Mod 时就会和 Mod 一并打包了。 在 definitions.rpy 文件里定义添加的资源。(本节后面会教您怎样这样做。) 根据音频的特点在 definitions.rpy 文件里定义添加的音频。(本节后面会教您怎样这样做。) # 定义资源为了使用资源,还需要定义资源。 注意!!! 此步是最重要的一步,请认真跟着教程进行操作。如果哪一步出错了,可能会导致资源无法使用,甚至会使 Mod 无法运行! # 定义图像资源定义图像资源分为两种:定义角色图像资源与背景资源。 # 定义角色图像资源 / 立绘打开 definitions.rpy 文件 复制粘贴一行立绘定义: 针对已有角色: 按 Ctrl+F,查找资源关联的角色的小写英文名。 例如之前增加了纱世里的资源,那么在这一步就需要查找 sayori。 复制一行,在该角色的立绘定义区域的最底部重复任意一行已有的定义。 例如我复制了 image sayori 1 = im.Composite((960, 960), (0, 0), "sayori/1l.png", (0, 0), "sayori/1r.png", (0, 0), "sayori/a.png"),那么就需要在最后一行,也就是 image sayori 1y = im.Composite((960, 960), (0, 0), "sayori/1l.png", (0, 0), "sayori/1r.png", (0, 0), "sayori/y.png") 的下一行粘贴它。 针对新角色: 从已有的立绘定义代码中复制一行(代码例子看上面)。 在文件的最后再加一行,并粘贴刚刚复制的代码。 按照以下格式更改刚刚粘贴的那行代码: 如果是增加表情: image = im.Composite((960, 960), (0,0), "/.png", (0,0), "/.png", (0,0), "mod_assets/images//.png") 如果是增加身体部分: image = im.Composite((960, 960), (0,0), "mod_assets/images//.png", (0,0), "mod_assets/images//.png", (0,0), "/.png") 如果都增加了: image = im.Composite((960, 960), (0,0), "mod_assets/images//.png", (0,0), "mod_assets/images//.png", (0,0), "mod_assets/images//.png") 注意!!! 更改时需要注意以下四点: 所有角色名都应为小写。 请根据 里的内容更改。 立绘编号不能和已有的立绘编号重复。 所有图像资源必须存在。例如之前为纱世里加入了额外的资源,它是一个面部表情,并且名为 a.png,根据这些就应该将代码更改为: image sayori 1ma = im.Composite((960, 960), (0,0), "sayori/1l.png", (0,0), "sayori/1r.png", (0,0), "mod_assets/images/sayori/a.png") 此处立绘编号取为 1ma 以便与原版立绘区分。(这里的 m 指 mod) 现在,只需要在脚本里加入 show sayori 1ma 就能显示出纱世里的新表情了。 # 定义背景资源打开 definitions.rpy 文件 按 Ctrl+F 查找 # 背景 复制含有 image 的一行,然后粘贴在下一行。 按以下格式更改刚刚粘贴的代码: image bg = "mod_assets/images/bg/" 注意!!! 更改时需要注意以下三点: 请根据 里的内容更改。 背景编号不能和已有的背景重复。 图像必须存在。例如之前添加了一张学园祭时的文学社背景,且图像文件名为 clubroom_festival.png,就应该更改为: image bg clubroom_festival = "mod_assets/images/bg/clubroom_festival.png" 现在,只需要在脚本里加入 scene clubroom_festival 就能显示新背景了。 # 定义音频资源打开 definitions.rpy 文件 按 Ctrl+F 查找 audio 复制开头带有 audio 的一行,然后粘贴在下一行。 按以下格式更改刚刚粘贴的代码: define audio. = "mod_assets/audio/" 注意!!! 更改时需要注意以下三点: 请根据 里的内容更改。 音频编号不能和已有的音频编号重复。 音频必须存在。例如之前增加了一首学园祭背景音乐,就应该更改为: define audio.tm1 = "mod_assets/audio/clubday_festival.ogg" 现在,只需要在脚本里加入 play music tm1 就能播放新音乐了。 扩展知识 Ren'Py 支持节选播放音频。在官方文档是这样介绍的: Ren’Py支持节选播放音频文件。节选播放的语法是,在play语句的文件名之前,加上用英文尖括号包含的播放起始点。节选播放规范应该包含成对属性名和属性值,并用空格分隔。 属性值以秒为单位,集成在文件名前面的英文尖括号内。三种属性名分别为: from 指定播放文件的起始时间点。(默认值为0.0秒) to 指定播放文件的终止时间点。(默认值为文件结束。) loop 指定需要循环播放的文件起始和终止时间点。(默认的起始时间点为文件开头或 from 指定的时间点。) 例如要让学园祭的背景音乐在播放完后循环回到 3.55 秒,刚刚的代码就可以改为: define audio.tm1 = "mod_assets/audio/clubday_festival.ogg" 再例如要让学园祭的背景音乐播放 5 秒到 10 秒的内容,刚刚的代码就可以改为: define audio.tm1 = "mod_assets/audio/clubday_festival.ogg" |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |