加载外部立绘资源

加载外部立绘资源 #

本页内容:添加自定义角色和立绘的完整指南。 前置知识:创建新剧本

本 MOD 支持加载外部立绘资源,支持 jpg/png 格式。

角色定义格式 #

MOD支持两种角色定义格式:

  • SimpleCharacters - 简单角色,仅用于对话
  • Characters - 完整角色,自动格式化+魔女图鉴支持

两种格式可以共存,根据需求选择使用。

快速对比表 #

特性SimpleCharactersCharacters
自动格式化❌ 需手动添加所有样式标签✅ 自动生成原版风格名称
魔女图鉴支持❌ 不支持人物档案✅ 支持人物档案 (@update)
所需字段Id, DisplayNameId, Name, FamilyName, Color (必填); Age, Height, Weight (可选)
复杂度简单稍复杂
适用场景临时NPC, 一次性角色主要角色, 需要档案的角色
显示效果手动控制符合原版风格

推荐: 除非只需要简单的临时角色,否则优先使用 Characters 格式

方法一: SimpleCharacters #

适用场景 #

  • 只需要在对话中出场
  • 不需要在魔女图鉴中展示
  • 需要完全自定义名称样式

字段说明 #

字段类型必填说明
IdString角色ID,脚本中引用
DisplayName本地化对象显示名称,需手动添加样式标签

示例配置 #

{
    "Name": "测试用例",
    "Description": "测试用例",
    "Author": "雪莉苹果汁",
    "Enter": "SherryAppleJuice_ExampleMod/Main",
    "SimpleCharacters": [
        {
            "Id": "Taffy",
            "DisplayName": {
                "zh-Hans": "<color=#FFC0CB>永</color>雏塔菲",
                "ja": "<color=#FFC0CB>永</color>雛タフィ"
            }
        },
        {
            "Id": "BlackCat",
            "DisplayName": {
                "zh-Hans": "<color=#606060><size=136>谜</size></color><space=4><voffset=-2><size=73>之黑猫</size></voffset>",
                "ja": "<color=#606060><size=136>謎</size></color><space=4><voffset=-2><size=73>の黒猫</size></voffset>"
            }
        }
    ]
}

样式标签:

  • <color=#FFC0CB>文本</color> - 颜色
  • <size=136>文本</size> - 字号
  • <voffset=-2>文本</voffset> - 垂直偏移
  • <space=4> - 空格

方法二: Characters (推荐) #

适用场景 #

  • 主要剧情角色
  • 需要在魔女图鉴中展示人物档案
  • 希望名称样式符合原版风格

字段说明 #

字段类型必填说明示例
IdString角色IDEmaNew
FamilyName本地化对象姓氏(首字大号+余字小号)樱羽
Name本地化对象名字(首字大号+余字小号)艾玛
ColorString主题颜色(HEX)#ffd1d9
AgeString-年龄"14"
HeightString-身高(cm)"153"
WeightString-体重(kg)"36"

示例配置 #

{
    "Name": "梦中审判",
    "Description": "增强版示例",
    "Author": "MaxMixAlex",
    "Enter": "MaxMixAlex_ManosabaModEnhance/Main",
    "Characters": [
        {
            "Id": "EmaNew",
            "Name": {
                "zh-Hans": "艾玛",
                "ja": "エマ"
            },
            "FamilyName": {
                "zh-Hans": "樱羽",
                "ja": "桜羽"
            },
            "Color": "#ffd1d9",
            "Age": "14",
            "Height": "153",
            "Weight": "36"
        },
        {
            "Id": "Detective",
            "Name": {
                "zh-Hans": "雪莉"
            },
            "FamilyName": {
                "zh-Hans": "苹果汁"
            },
            "Color": "#66ccff",
            "Age": "16",
            "Height": "160",
            "Weight": "48"
        }
    ]
}

自动格式化效果 #

系统会自动将 FamilyNameName 组合为与原版角色一致的富文本风格:

输入: FamilyName="樱羽", Name="艾玛", Color="#ffd1d9"
↓
自动生成 (与原版模板结构一致):
  姓: <color=#ffd1d9><size=136>樱</size></color> <voffset=-2><size=73>羽</size></voffset>
  名: <size=118>艾</size> <voffset=-2><size=75>玛</size></voffset>

每个名字部分的首字使用大号字体,其余字使用小号 + 垂直偏移,与原版角色的名称排版完全一致。

优势:

  • 自动应用原版风格 (姓氏首字136号字,余字73号字; 名字首字118号字,余字75号字)
  • 姓氏首字自动着色 (Color 字段)
  • 无需手动编写复杂的富文本标签

混合使用示例 #

{
    "Name": "我的MOD",
    "Author": "作者",
    "Enter": "MyMod/Main",
    "SimpleCharacters": [
        {
            "Id": "NPC1",
            "DisplayName": {
                "zh-Hans": "<color=#aaaaaa>神秘路人</color>"
            }
        }
    ],
    "Characters": [
        {
            "Id": "MainChar",
            "Name": { "zh-Hans": "小明" },
            "FamilyName": { "zh-Hans": "李" },
            "Color": "#66ccff",
            "Age": "16",
            "Height": "165",
            "Weight": "50"
        }
    ]
}

混合使用建议:

  • 主要角色 → Characters
  • 一次性NPC → SimpleCharacters

添加立绘资源 #

1. 创建角色立绘目录 #

在MOD目录下创建 Characters 文件夹,然后创建角色ID文件夹:

[MOD根目录]/
  ├─ Characters/
  │   ├─ Taffy/         ← 角色ID文件夹
  │   │   └─ Hanna.jpg  ← 立绘文件
  │   └─ EmaNew/
  │       ├─ 1.png
  │       └─ 2.png
  ├─ Scripts/
  └─ info.json

路径示例

2. 准备立绘图片 #

推荐规格:

  • 尺寸: 1500x3000 像素(参考原版)
  • 格式: PNG(透明背景)或 JPG
  • 命名: 任意,建议使用数字或表情名称

文件名示例:

  • 1.png, 2.png, 3.png(简单编号)
  • Normal.png, Smile.png, Sad.png(表情命名)
  • 1_1_2.png(眉毛_眼睛_嘴巴组合)

3. 在脚本中使用 @char 指令 #

基础用法:

; 显示立绘: 角色ID.立绘文件名(不含扩展名)
@char Taffy.Hanna

; 显示 EmaNew 的 1.png
@char EmaNew.1

; 带位置和缩放
@char SubId:"Middle" EmaNew.2 pos:50,0 Scale:1.2

高级用法:

; 表情组合 (如果文件存在)
@char Taffy.1_2_3

; 转向
@char Taffy.Hanna look:Left

; 带转场效果
@char EmaNew.1 transition:DropFade time:0.5

; 隐藏角色
@hide Taffy

效果演示 #

创建了Taffy文件夹,里面有Hanna.jpg:

; 显示背景
@back 1_1

; 显示立绘
@char Taffy.Hanna

; 对话
塔菲: 你好呀!

效果


与魔女图鉴集成 #

使用 Characters 格式定义的角色可以在魔女图鉴中添加人物档案。

1. 添加人物档案图片 #

[MOD根目录]/
  ├─ WitchBook/
  │   └─ Profiles/
  │       └─ EmaNew.png  ← 与角色ID同名
  └─ info.json

推荐尺寸: 400x600 像素

2. 在 info.json 中配置 Profiles #

{
    "Characters": [
        {
            "Id": "EmaNew",
            "Name": { "zh-Hans": "艾玛" },
            "FamilyName": { "zh-Hans": "樱羽" },
            "Color": "#ffd1d9",
            "Age": "14",
            "Height": "153",
            "Weight": "36"
        }
    ],
    "Profiles": [
        {
            "Id": "EmaNew",
            "Items": [
                {
                    "Version": 1,
                    "Description": {
                        "zh-Hans": "14岁,初中时期的樱羽艾玛。<br><br>希罗的好友。"
                    }
                },
                {
                    "Version": 2,
                    "Description": {
                        "zh-Hans": "14岁,初中时期的樱羽艾玛。<br><br>在审判中作为关键证人被传唤。"
                    }
                }
            ]
        }
    ]
}

3. 在脚本中更新档案 #

; 初次出场时解锁档案
@update "EmaNew" Category:"Profile" Version:1

; 剧情发展后更新档案
@update "EmaNew" Category:"Profile" Version:2

; 在审判中出示人物档案
@evidence correct:"EmaNew" Profile

完整说明: 参见 魔女图鉴


常见问题 #

Q: 应该选择 SimpleCharacters 还是 Characters?

A:

选择 SimpleCharacters 如果:

  • 只需要临时NPC, 一两句台词
  • 需要完全自定义的名称样式 (如特殊符号, 非人名)
  • 不需要魔女图鉴支持

选择 Characters 如果:

  • 主要剧情角色
  • 需要在魔女图鉴中展示
  • 希望名称样式符合原版风格

推荐: 主要角色用 Characters, 路人用 SimpleCharacters

Q: Characters 格式必须填写所有字段吗?

A: IdNameFamilyNameColor 是必填字段,系统需要这些数据来生成正确的显示效果。

AgeHeightWeight 是可选字段,不填则默认为空。这些字段用于魔女图鉴中的人物档案显示。

Q: 如何让 Characters 不自动格式化?

A: 如果需要完全自定义名称样式,请使用 SimpleCharacters 而不是 Characters

Characters 的设计目的就是自动格式化,无法关闭此功能。

Q: Color 字段有什么作用?

A: Color 字段用于:

  1. 角色名称的颜色 (对话框, 对话日志)
  2. 人物档案中的主题色
  3. 可能的UI元素强调色

建议: 选择与角色设定相符的颜色,如温柔角色用粉色 #ffd1d9, 冷静角色用蓝色 #66ccff

Q: 可以覆写原版角色吗?

A: 可以! 如果 Id 与原版角色相同 (如 Ema, Sherry):

Characters: 会替换角色的所有信息 Profiles: 只替换人物档案文本,保留原版图像

示例:

"Profiles": [
    {
        "Id": "Ema",
        "Items": [
            {
                "Version": 1,
                "Description": {
                    "zh-Hans": "自定义的艾玛介绍……"
                }
            }
        ]
    }
]
Q: 立绘文件名有什么要求?

A:

  • 无特殊字符要求,但建议使用英文/数字
  • 不需要扩展名,脚本中写文件名即可
  • 支持子表情组合,如 1_2_3.png 对应眉毛1、眼睛2、嘴巴3

推荐命名:

  • 简单:1.png, 2.png

  • 语义化:Normal.png, Smile.png

  • 组合:1_1_1.png(如果支持表情分层)


相关教程 #