演员定位和缩放
介绍
Konado 对话系统采用屏幕区块分割算法实现角色位置的精准、自适应定位,同时内置补间动画过渡逻辑,兼顾了定位的灵活性、适配性与视觉体验。
对话管理器会根据对话内容自动生成实例,并自动管理。
演员定位
不同于传统对话系统中的角色定位方式(如固定位置、固定偏移等),Konado 采用区块分割实现角色位置的精准、自适应定位,节省了手动调整角色位置的时间,并确保角色位置在对话场景中始终处于合理范围内,加快开发效率。
同时,这样定位也可以方便在设计师在其他设计工具中使用辅助线等工具进行角色定位,而无需在游戏引擎中手动调整角色位置。
横向定位(左右位置)
画面会被分成若干等份(最少分 2 份,最多 15 份,默认分 6 份),从左到右数,角色能放在第 1 份到倒数第 1 份之间(比如分 6 份时,角色能放在第 1 到第 5 个分割线位置),不会贴到最左 / 最右。
纵向定位(上下位置)
画面会被分成若干等份(最少分 3 份,最多 15 份,默认分 6份),从上到下数,角色能放在第 1 份到倒数第 1 份之间(比如分 3 份时,角色能放在第 1 到第 2 个分割线位置),不会贴到最上 / 最下。
原理
组件将承载角色的 Control 节点画布容器横向等分为 division 个区块(区块数量可设置≥2),区块索引从左到右递增(0 为最左侧,division 为最右侧),
character_position(角色位置索引)的有效范围被限制为 [1, division-1],避免角色完全贴左/贴右导致的视觉溢出问题,角色的中心将对齐区块分割线显示。
演员缩放
通过调用 set_texture_scale 调整纹理缩放后将同步更新位置,保证缩放后的角色仍对齐目标区块,避免因缩放导致的视觉溢出问题。
自适应更新
当画布容器尺寸变化、角色位置索引修改、纹理缩放 / 替换时,组件会自动触发 _on_resized() 方法重新计算并更新角色位置;若开启补间动画,位置更新会以平滑动画过渡,否则直接生效。