Skip to content

Commit 63afda5

Browse files
committed
feat: 合并 develop 到 main,发布版本 1.11.0
## 变更内容 - 新增动画参数支持:Sleeping、IsVehicle、IsControllingOtherCharacter、IsControllingVehicle、IsPlayerControlling、RidingVehicleType - 新增动作类型 CA_ControlOtherCharacter(控制其他角色) - 新增 VehicleLocator 锚点用于载具定位 - 优化模型选择界面:新增搜索功能、Shift+点击复制信息、扩展类型排序和颜色区分 - 增加马匹脚步声标签支持 - 重构和优化模型列表逻辑,提升性能和稳定性 - 优化模型列表操作:滚动位置保持、居中显示、跳转按钮 ## 版本更新 - 版本号更新至 v1.11.0
2 parents ddc34bd + 578bf86 commit 63afda5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+732
-285
lines changed

.idea/.idea.DuckovCustomModel/.idea/statistic.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CHANGELOG.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,40 @@
22

33
[English](CHANGELOG_EN.md) | 中文
44

5+
## v1.11.0
6+
7+
- 新增动画参数支持
8+
- 新增 `Sleeping`(bool):角色是否处于睡眠状态
9+
- 新增 `IsVehicle`(bool):角色是否为载具
10+
- 新增 `IsControllingOtherCharacter`(bool):角色是否正在控制其他角色
11+
- 新增 `IsControllingVehicle`(bool):角色是否正在控制载具(为 `true` 时,`IsControllingOtherCharacter` 必定为 `true`
12+
- 新增 `IsPlayerControlling`(bool):角色是否为当前玩家正在操作的角色
13+
- 新增 `RidingVehicleType`(int):角色正在骑乘的载具类型
14+
- 新增动作类型支持
15+
- 新增 `CA_ControlOtherCharacter`(控制其他角色)动作类型(ID: 10)
16+
- 新增 `VehicleLocator` 锚点,用于标识角色作为载具时的坐骑位置
17+
- 该锚点的位置和朝向可以用来调整角色在骑乘状态下的位置和朝向
18+
- 优化了模型选择界面
19+
- 现在支持搜索目标类型,以便快速找到特定类型进行设置
20+
- 按着 `Shift` 键时,点击目标类型按钮会将一些数据信息复制到剪贴板,以便于开发者获取信息
21+
- DisplayName:目标类型的多语言显示名称
22+
- TargetTypeId:目标类型的字符串标识符
23+
- ModelId:当前设置的模型 ID
24+
- FallbackModelId:当前设置的回退模型 ID
25+
- 现在其他 Mod 向本 Mod 注册的扩展类型将会排序在 “角色”、“宠物” 之后,“所有AI角色” 之前
26+
- 现在其他 Mod 向本 Mod 注册的扩展类型将会以靛蓝色显示,以便于区分内置类型和扩展类型
27+
- 修复了非 AI 角色目标类型会错误的显示回退模型的颜色标注的问题
28+
- 增加了马匹脚步声标签,并重构逻辑以保证未来能自动支持更多脚步声标签
29+
- `"footstep_horse_walk_light"`
30+
- `"footstep_horse_walk_heavy"`
31+
- `"footstep_horse_run_light"`
32+
- `"footstep_horse_run_heavy"`
33+
- 重构了部分逻辑,优化了刷新模型列表时的稳定性和性能表现
34+
- 优化了模型列表的操作逻辑
35+
- 现在切换模型时会尝试保留当前的界面滚动位置
36+
- 切换页面、刷新列表等操作会尝试居中显示当前正在使用的模型
37+
- 追加了跳转到顶部和跳转到底部的按钮,以便于快速调整滚动位置
38+
539
## v1.10.6
640

741
- 调整了模型身高调整滑条功能,现在允许点击左侧按钮切换至输入框输入以更精确地设置数值

CHANGELOG_EN.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,40 @@
22

33
English | [中文](CHANGELOG.md)
44

5+
## v1.11.0
6+
7+
- Added new animator parameters support
8+
- Added `Sleeping` (bool): Whether the character is in sleeping state
9+
- Added `IsVehicle` (bool): Whether the character is a vehicle
10+
- Added `IsControllingOtherCharacter` (bool): Whether the character is controlling another character
11+
- Added `IsControllingVehicle` (bool): Whether the character is controlling a vehicle (when `true`, `IsControllingOtherCharacter` is always `true`)
12+
- Added `IsPlayerControlling` (bool): Whether the player is currently controlling this character
13+
- Added `RidingVehicleType` (int): The type of vehicle the character is riding
14+
- Added new action type support
15+
- Added `CA_ControlOtherCharacter` (control other character) action type (ID: 10)
16+
- Added `VehicleLocator` anchor point for indicating the player's position when riding a vehicle
17+
- The position and orientation of the anchor point can be used to adjust the character's position and orientation while riding
18+
- Optimized the model selection interface
19+
- Now supports searching target types for quickly finding specific types for configuration
20+
- When holding the `Shift` key, clicking the target type button will copy some data information to the clipboard for developers to obtain information
21+
- DisplayName:Target type's multilingual display name
22+
- TargetTypeId:Target type's string identifier
23+
- ModelId:Currently set model ID
24+
- FallbackModelId:Currently set fallback model ID
25+
- Extension types registered by other mods to this mod are now sorted after "Character" and "Pet", but before "All AI Characters"
26+
- Extension types registered by other mods to this mod are now displayed in indigo color to distinguish built-in types from extension types
27+
- Fixed an issue where non-AI character target types incorrectly displayed fallback model color markings
28+
- Added horse footstep sound tags and refactored logic to ensure future automatic support for more footstep sound tags
29+
- `"footstep_horse_walk_light"`
30+
- `"footstep_horse_walk_heavy"`
31+
- `"footstep_horse_run_light"`
32+
- `"footstep_horse_run_heavy"`
33+
- Refactored some logic to improve stability and performance when refreshing the model list
34+
- Optimized the operation logic of the model list
35+
- Now attempts to preserve the current interface scroll position when switching models
36+
- Attempts to center the currently used model when switching pages, refreshing the list, and other operations
37+
- Added buttons for scrolling to the top and bottom to facilitate quick adjustment of the scroll position
38+
539
## v1.10.6
640

741
- Adjusted model scale slider functionality, now allows clicking the left button to switch to input box for more precise scale value setting

DuckovCustomModel.Core/Data/CustomAnimatorHash.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,18 @@ public static class CustomAnimatorHash
102102
public static readonly int EmotionValue1 = Animator.StringToHash("EmotionValue1"); // int
103103
public static readonly int EmotionValue2 = Animator.StringToHash("EmotionValue2"); // int
104104

105+
public static readonly int Sleeping = Animator.StringToHash("Sleeping"); // bool
106+
public static readonly int IsVehicle = Animator.StringToHash("IsVehicle"); // bool
107+
108+
public static readonly int
109+
IsControllingOtherCharacter = Animator.StringToHash("IsControllingOtherCharacter"); // bool
110+
111+
public static readonly int IsControllingVehicle = Animator.StringToHash("IsControllingVehicle"); // bool
112+
113+
public static readonly int IsPlayerControlling = Animator.StringToHash("IsPlayerControlling"); // bool
114+
115+
public static readonly int RidingVehicleType = Animator.StringToHash("RidingVehicleType"); // int
116+
105117
public static List<AnimatorParamInfo> GetAllParams()
106118
{
107119
return new List<AnimatorParamInfo>
@@ -192,6 +204,18 @@ public static List<AnimatorParamInfo> GetAllParams()
192204
},
193205
new() { Name = "EmotionValue1", Hash = EmotionValue1, Type = "int", InitialValue = 0 },
194206
new() { Name = "EmotionValue2", Hash = EmotionValue2, Type = "int", InitialValue = 0 },
207+
new() { Name = "Sleeping", Hash = Sleeping, Type = "bool", InitialValue = false },
208+
new() { Name = "IsVehicle", Hash = IsVehicle, Type = "bool", InitialValue = false },
209+
new()
210+
{
211+
Name = "IsControllingOtherCharacter", Hash = IsControllingOtherCharacter, Type = "bool",
212+
InitialValue = false,
213+
},
214+
new()
215+
{ Name = "IsControllingVehicle", Hash = IsControllingVehicle, Type = "bool", InitialValue = false },
216+
new()
217+
{ Name = "IsPlayerControlling", Hash = IsPlayerControlling, Type = "bool", InitialValue = false },
218+
new() { Name = "RidingVehicleType", Hash = RidingVehicleType, Type = "int", InitialValue = 0 },
195219
}.OrderBy(p => p.Name).ToList();
196220
}
197221
}

DuckovCustomModel.Core/Data/SocketNames.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public static class SocketNames
2727
public const string Backpack = "BackpackLocator";
2828
public const string MeleeWeapon = "MeleeWeaponLocator";
2929
public const string PopText = "PopTextLocator";
30+
public const string Vehicle = "VehicleLocator";
3031

3132
public static readonly List<string> InternalSocketNames =
3233
[
@@ -38,6 +39,7 @@ public static class SocketNames
3839
Backpack,
3940
MeleeWeapon,
4041
PopText,
42+
Vehicle,
4143
];
4244

4345
#endregion
Lines changed: 2 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
1-
using System.Collections.Generic;
2-
31
namespace DuckovCustomModel.Core.Data
42
{
53
public static class SoundTags
64
{
75
public const string Normal = "normal";
8-
public const string Surprise = "surprise";
96
public const string Idle = "idle";
107
public const string TriggerOnHurt = "trigger_on_hurt";
118
public const string TriggerOnDeath = "trigger_on_death";
@@ -15,71 +12,8 @@ public static class SoundTags
1512
public const string TriggerOnCritDead = "trigger_on_crit_dead";
1613
public const string TriggerOnCritHitTarget = "trigger_on_crit_hit_target";
1714
public const string TriggerOnCritKillTarget = "trigger_on_crit_kill_target";
18-
public const string SearchFoundItemQualityNone = "search_found_item_quality_none";
19-
public const string SearchFoundItemQualityWhite = "search_found_item_quality_white";
20-
public const string SearchFoundItemQualityGreen = "search_found_item_quality_green";
21-
public const string SearchFoundItemQualityBlue = "search_found_item_quality_blue";
22-
public const string SearchFoundItemQualityPurple = "search_found_item_quality_purple";
23-
public const string SearchFoundItemQualityOrange = "search_found_item_quality_orange";
24-
public const string SearchFoundItemQualityRed = "search_found_item_quality_red";
25-
public const string SearchFoundItemQualityQ7 = "search_found_item_quality_q7";
26-
public const string SearchFoundItemQualityQ8 = "search_found_item_quality_q8";
27-
public const string FootStepOrganicWalkLight = "footstep_organic_walk_light";
28-
public const string FootStepOrganicWalkHeavy = "footstep_organic_walk_heavy";
29-
public const string FootStepOrganicRunLight = "footstep_organic_run_light";
30-
public const string FootStepOrganicRunHeavy = "footstep_organic_run_heavy";
31-
public const string FootStepMechWalkLight = "footstep_mech_walk_light";
32-
public const string FootStepMechWalkHeavy = "footstep_mech_walk_heavy";
33-
public const string FootStepMechRunLight = "footstep_mech_run_light";
34-
public const string FootStepMechRunHeavy = "footstep_mech_run_heavy";
35-
public const string FootStepDangerWalkLight = "footstep_danger_walk_light";
36-
public const string FootStepDangerWalkHeavy = "footstep_danger_walk_heavy";
37-
public const string FootStepDangerRunLight = "footstep_danger_run_light";
38-
public const string FootStepDangerRunHeavy = "footstep_danger_run_heavy";
39-
public const string FootStepNoSoundWalkLight = "footstep_nosound_walk_light";
40-
public const string FootStepNoSoundWalkHeavy = "footstep_nosound_walk_heavy";
41-
public const string FootStepNoSoundRunLight = "footstep_nosound_run_light";
42-
public const string FootStepNoSoundRunHeavy = "footstep_nosound_run_heavy";
43-
4415

45-
public static IReadOnlyCollection<string> ValidTags =>
46-
[
47-
Normal,
48-
Surprise,
49-
Idle,
50-
TriggerOnHurt,
51-
TriggerOnDeath,
52-
TriggerOnHitTarget,
53-
TriggerOnKillTarget,
54-
TriggerOnCritHurt,
55-
TriggerOnCritDead,
56-
TriggerOnCritHitTarget,
57-
TriggerOnCritKillTarget,
58-
SearchFoundItemQualityNone,
59-
SearchFoundItemQualityWhite,
60-
SearchFoundItemQualityGreen,
61-
SearchFoundItemQualityBlue,
62-
SearchFoundItemQualityPurple,
63-
SearchFoundItemQualityOrange,
64-
SearchFoundItemQualityRed,
65-
SearchFoundItemQualityQ7,
66-
SearchFoundItemQualityQ8,
67-
FootStepOrganicWalkLight,
68-
FootStepOrganicWalkHeavy,
69-
FootStepOrganicRunLight,
70-
FootStepOrganicRunHeavy,
71-
FootStepMechWalkLight,
72-
FootStepMechWalkHeavy,
73-
FootStepMechRunLight,
74-
FootStepMechRunHeavy,
75-
FootStepDangerWalkLight,
76-
FootStepDangerWalkHeavy,
77-
FootStepDangerRunLight,
78-
FootStepDangerRunHeavy,
79-
FootStepNoSoundWalkLight,
80-
FootStepNoSoundWalkHeavy,
81-
FootStepNoSoundRunLight,
82-
FootStepNoSoundRunHeavy,
83-
];
16+
public const string SearchFoundItemQualityFormat = "search_found_item_quality_{0}";
17+
public const string FootStepFormat = "footstep_{0}_{1}";
8418
}
8519
}

DuckovCustomModel.Core/DuckovCustomModel.Core.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
<!-- CI 环境使用 NuGet 包 -->
2121
<ItemGroup Condition="'$(UseGameLibsFromNuGet)' == 'true'">
22-
<PackageReference Include="DuckovGameLibs" Version="1.3.13-Steam"/>
22+
<PackageReference Include="DuckovGameLibs" Version="2.0.26-Steam"/>
2323
</ItemGroup>
2424

2525
<!-- 本地开发使用游戏目录 -->

DuckovCustomModel.ModLoader/DuckovCustomModel.ModLoader.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
<!-- CI 环境使用 NuGet 包 -->
2121
<ItemGroup Condition="'$(UseGameLibsFromNuGet)' == 'true'">
22-
<PackageReference Include="DuckovGameLibs" Version="1.3.13-Steam"/>
22+
<PackageReference Include="DuckovGameLibs" Version="2.0.26-Steam"/>
2323
</ItemGroup>
2424

2525
<!-- 本地开发使用游戏目录 -->

DuckovCustomModel/Constant.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ public static class Constant
44
{
55
public const string ModID = "DuckovCustomModel";
66
public const string ModName = "Duckov Custom Model";
7-
public const string ModVersion = "1.10.6";
7+
public const string ModVersion = "1.11.0";
88
public const string HarmonyId = "com.ritsukage.DuckovCustomModel";
99
}
1010
}

DuckovCustomModel/Data/CharacterActionDefinitions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ static CharacterActionDefinitions()
1818
RegisterActionType<CA_Reload>(7);
1919
RegisterActionType<CA_Skill>(8);
2020
RegisterActionType<CA_UseItem>(9);
21+
RegisterActionType<CA_ControlOtherCharacter>(10);
2122
}
2223

2324
public static IReadOnlyDictionary<Type, int> GetActionTypes()

0 commit comments

Comments
 (0)