- Add core addon files (__init__.py, KKPanel.py, preferences.py, common.py) - Add import pipeline with armature, mesh, and material modification modules - Add export pipeline with material baking and FBX preparation utilities - Add material combiner tool for texture atlas generation and optimization - Add extras utilities for animation, rigging, and asset management - Add bone orientation data from better_fbx for accurate skeletal structure - Add comprehensive documentation and wiki with multi-language support (EN, JP, ZH) - Add animation library retargeting lists for ARP and Rokoko motion capture - Add Rigify integration scripts for advanced rigging workflows - Add shader file (KK Shader V8.0.blend) for material rendering - Add manifest and license files for addon distribution - Add changelog documenting version history and improvements - Initialize complete Blender addon project for Koikatsu character import/export
3.8 KiB
3.8 KiB
KKBP 骨骼方向更新说明
修改内容
已将 importing/modifyarmature.py 修改为使用 better_fbx 的真实骨骼方向数据,让导入的模型骨骼看起来更自然。
修改的文件
importing/modifyarmature.py- 主要修改文件
主要变化
1. 添加了完整的骨骼数据字典(第 47-140 行)
包含了所有主要骨骼的真实方向数据:
- 核心骨骼(根、臀部、腰部)
- 脊柱和头部
- 左右腿部(大腿、小腿、脚、脚趾)
- 左右肩膀和手臂
- 左右手的所有手指(食指、中指、无名指、小指、拇指)
共约 90+ 个关键骨骼的方向数据。
2. 修改了 reorient 函数(第 318-325 行)
之前:
height_adjust = Vector((0,0,0.1))
def reorient(bone):
armature.data.edit_bones[bone].tail = armature.data.edit_bones[bone].head + height_adjust
之后:
def reorient(bone):
if bone in better_fbx_bone_tails:
# 使用 better_fbx 的真实骨骼方向数据
offset = Vector(better_fbx_bone_tails[bone])
armature.data.edit_bones[bone].tail = armature.data.edit_bones[bone].head + offset
else:
# 如果骨骼不在字典中,使用原来的默认行为(向上)
height_adjust = Vector((0,0,0.1))
armature.data.edit_bones[bone].tail = armature.data.edit_bones[bone].head + height_adjust
效果对比
修改前
- 腿部、脚部、手臂、肩膀、手指骨骼都是向上的小线段 (0, 0, 0.1)
- 骨架看起来不直观,难以理解骨骼结构
- 所有骨骼都像"竖起的小棍子"
修改后
- 腿部:大腿向下延伸(-0.26 单位),小腿向下延伸(-0.22 单位)
- 脚部:向前延伸(-0.107 单位)
- 手臂:肩膀和手臂水平向外延伸(0.09-0.15 单位)
- 手指:所有手指沿着手指方向延伸(0.02-0.03 单位)
- 脊柱:向上延伸(0.04-0.05 单位)
- 头部:向上延伸(0.025 单位)
- 骨架看起来自然,完全类似 better_fbx 导入的效果
测试步骤
-
备份原文件(如果还没有)
cp importing/modifyarmature.py importing/modifyarmature.py.backup -
在 Koikatsu 中导出一个角色
- 使用 KKBP Exporter 导出
-
在 Blender 中导入
- 使用 KKBP Importer 导入
- 选择 "Use KKBP Armature" 选项
-
检查骨骼方向
- 进入编辑模式(Tab 键)
- 查看腿部、脚部、手臂骨骼
- 它们应该沿着肢体方向延伸,而不是都朝上
-
验证功能
- 切换到姿态模式
- 测试 IK 是否正常工作
- 测试骨骼旋转是否正常
注意事项
-
手指骨骼未修改
- 手指骨骼保持原有的特殊处理逻辑
- 因为它们需要特殊的旋转操作
-
向后兼容
- 如果某个骨骼不在
better_fbx_bone_tails字典中 - 会自动使用原来的默认行为(向上 0.1 单位)
- 如果某个骨骼不在
-
Roll 值未修改
- 这次只修改了骨骼的尾部位置
- Roll 值仍然使用
set_bone_roll_data()函数中的数据
如果需要回滚
如果遇到问题,可以恢复原文件:
cp importing/modifyarmature.py.backup importing/modifyarmature.py
或者手动删除添加的代码:
- 删除第 47-59 行的
better_fbx_bone_tails字典 - 将第 318-325 行的
reorient函数改回原样
扩展
如果你想添加更多骨骼的方向数据,可以:
- 打开
better_fbx_complete_bone_data.py - 找到对应骨骼的
tail_offset值 - 添加到
better_fbx_bone_tails字典中 - 将骨骼名称添加到
reorient_list列表中
相关文件
better_fbx_bone_data.py- 简化版骨骼数据(只有尾部偏移)better_fbx_complete_bone_data.py- 完整骨骼数据(包含头部、尾部、Roll、父子关系)importing/modifyarmature.py- 已修改的文件