打包模型包
制作好模型后,需要打包成模型包方便我们的Mod使用。
模型包结构
每个模型包文件夹应包含以下文件:
- 模型包文件夹模型包根目录
- bundleinfo.json必需模型包配置文件
- modelbundle.assetbundle必需Unity AssetBundle 文件
- thumbnail.png缩略图文件(建议)
- sounds音频文件夹(可选)
- normal1.ogg普通音效
- surprise.ogg警戒音效
- idle.ogg待机音效
模型包目录结构
bundleinfo.json 格式
json
{
"BundleName": "模型包名称",
"BundlePath": "modelbundle.assetbundle",
"Models": [
{
"ModelID": "unique_model_id",
"Name": "模型显示名称",
"Author": "作者名称",
"Description": "模型描述",
"Version": "1.0.0",
"ThumbnailPath": "thumbnail.png",
"PrefabPath": "Assets/Model.prefab",
"DeathLootBoxPrefabPath": "Assets/DeathLootBox.prefab",
"Target": ["Character", "AICharacter"],
"SupportedAICharacters": ["Cname_Wolf", "Cname_Scav", "*"],
"CustomSounds": [
{
"Path": "sounds/normal1.wav",
"Tags": ["normal"]
},
{
"Path": "sounds/normal2.wav",
"Tags": ["normal"]
},
{
"Path": "sounds/surprise.wav",
"Tags": ["surprise", "normal"]
},
{
"Path": "sounds/得吃的小曲.ogg",
"Tags": ["search_found_item_quality_red"]
},
{
"Path": "sounds/idle1.wav",
"Tags": ["idle"]
}
]
}
]
}字段说明
BundleName(必需)
模型包名称,用于标识和显示
BundlePath(必需)
AssetBundle 文件路径,相对于模型包文件夹的路径
Models(必需)
模型信息数组,可包含多个模型
ModelInfo 字段
ModelID(必需):模型的唯一标识符,用于在配置文件中引用模型,可以是数字,中文或英文Name(可选):模型在界面中显示的名称Author(可选):模型作者Description(可选):模型描述信息Version(可选):模型版本号ThumbnailPath(可选):缩略图路径,相对于模型包文件夹的外部文件路径(如"thumbnail.png")PrefabPath(必需):模型 Prefab 在打包 AssetBundle 时,在 Unity 内的资源路径(如"Assets/Model.prefab")DeathLootBoxPrefabPath(可选):死亡战利品箱 Prefab 在打包 AssetBundle 时,在 Unity 内的资源路径(如"Assets/DeathLootBox.prefab")- 当角色使用该模型并死亡时,如果配置了此字段,死亡战利品箱会使用自定义的 Prefab 替换默认模型
- 如果未配置此字段,死亡战利品箱将使用默认模型
Target(可选):模型适用的目标类型数组(默认:["Character"])- 可选值:
"Character"(角色)、"Pet"(宠物)、"AICharacter"(AI 角色) - 可以同时包含多个值,表示该模型同时适用于多个目标类型
- 模型选择界面会根据当前选择的目标类型过滤显示兼容的模型
- 可选值:
SupportedAICharacters(可选):支持的 AI 角色名称键数组(仅在Target包含"AICharacter"时有效)- 可以指定该模型适用于哪些 AI 角色,具体请查看AI 角色适配
- 特殊值
"*":表示该模型适用于所有 AI 角色 - 如果为空数组且
Target包含"AICharacter",则该模型不会应用于任何 AI 角色
CustomSounds(可选):自定义音效信息数组,支持为音效配置标签,具体标签信息请查看添加自定义音效- 每个音效可以配置多个标签(
normal、surprise) - 未指定标签时,默认为
["normal"] - 同一音效文件可以同时用于多个场景
- 音效文件路径在
Path中指定,相对于模型包文件夹
- 每个音效可以配置多个标签(
WalkSoundFrequency(可选):走路时每秒的脚步声触发频率- 用于控制角色走路时脚步声的播放频率
- 如果未指定,将自动使用原始角色的走路脚步声频率设置
RunSoundFrequency(可选):跑步时每秒的脚步声触发频率- 用于控制角色跑步时脚步声的播放频率
- 如果未指定,将自动使用原始角色的跑步脚步声频率设置
添加多个模型
可以在Models内添加多个模型,以下是酒狐Mod的示例bundleinfo.json文件。文件内添加了酒狐的Character模型和狐狸的Pet模型,同时两个模型都支持替换所有AICharacter模型。
json
{
"BundleName": "jiuhu",
"BundlePath": "jiuhu",
"Models": [
{
"ModelID": "10004",
"Name": "酒狐",
"Author": "酒石酸菌",
"Description": "酒狐模型",
"Version": "1.0.12",
"ThumbnailPath": "preview.png",
"PrefabPath": "Assets/酒狐模型.prefab",
"Target": [
"Character",
"AICharacter"
],
"SupportedAICharacters": ["*"],
"CustomSounds": [
{
"Path": "sounds/idle1.ogg",
"Tags": [
"normal"
]
},
{
"Path": "sounds/idle2.ogg",
"Tags": [
"normal"
]
}
]
},
{
"ModelID": "10005",
"Name": "酒狐(狐狸形态)",
"Author": "酒石酸菌",
"Description": "酒狐狐狸模型",
"Version": "1.0.12",
"ThumbnailPath": "preview2.png",
"PrefabPath": "Assets/酒狐狐狸.prefab",
"Target": [
"Pet",
"AICharacter"
],
"SupportedAICharacters": ["*"]
}
]
}下一步
完成打包模型包后,轮到我们的最后一步——创建模组,就快要成功了!