Skip to content
woctordho edited this page Sep 12, 2024 · 14 revisions

头像

Nova可以在对话框中显示头像,具体的例子可以参考Assets/Resources/Scenarios/test_avatar.txt

头像是从立绘中截取一部分得到的。在Unity Editor的Hierarchy里选中UI,Inspector中的AvatarConfigs可以设置截取的参数。每一项AvatarConfig包括:

  • characterName:文本中的角色名称(如王二宫),而不是Lua变量名(如ergong
    • 如果文本中设置了角色的显示名称和内部名称(如ch2.txt中的???//张浅野),就会按内部名称查找GameCharacterController
  • characterController:Hierarchy中的角色
  • rects:可以有多项,每一项包括:
    • key:pose名称的前缀,可以把头部位置不同的pose用不同的前缀命名,然后设置不同的截取位置
    • rect:截取位置

可以用CharacterPoseComposer来设置rect

  1. 在Unity Editor的上面的菜单中,打开Nova -> Character Pose Composer
  2. Select Character处选择一个角色
  3. Select Pose处选择一个pose
  4. 选中下面的Use Capture Box
  5. 调节X, Y, W, H,调到合适的位置和大小之后,把参数填到AvatarConfigsrect

在脚本中加入显示头像的代码,如avatar('normal'),然后头像系统会进行以下处理:

  • 比如这条对话的角色名称是“王二宫”,就会从Avatar Configs中得到“王二宫”对应的GameCharacterControllerluaGlobalNameergong,然后从pose.lua中得到ergongnormal这个pose
  • 如果下一条对话的角色名称不同,头像会自动改变为那个角色当前设置的头像(如果那个角色当前没有头像,就是自动消失)
  • 如果下一条对话没有角色名称,头像会自动消失

做了一段需要头像的演出之后,如果接下来不需要头像,可以用avatar_clear()清空所有头像。

如果你确实需要不同的图片作为头像和立绘,可以给它们定义不同的pose,或者创建不同的角色。

Clone this wiki locally