-
Notifications
You must be signed in to change notification settings - Fork 78
Avatar
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
:
- 在Unity Editor的上面的菜单中,打开
Nova -> Character Pose Composer
- 在
Select Character
处选择一个角色 - 在
Select Pose
处选择一个pose - 选中下面的
Use Capture Box
- 调节
X, Y, W, H
,调到合适的位置和大小之后,把参数填到AvatarConfigs
的rect
里
在脚本中加入显示头像的代码,如avatar('normal')
,然后头像系统会进行以下处理:
- 比如这条对话的角色名称是“王二宫”,就会从
Avatar Configs
中得到“王二宫”对应的GameCharacterController
的luaGlobalName
是ergong
,然后从pose.lua
中得到ergong
的normal
这个pose - 如果下一条对话的角色名称不同,头像会自动改变为那个角色当前设置的头像(如果那个角色当前没有头像,就是自动消失)
- 如果下一条对话没有角色名称,头像会自动消失
做了一段需要头像的演出之后,如果接下来不需要头像,可以用avatar_clear()
清空所有头像。
如果你确实需要不同的图片作为头像和立绘,可以给它们定义不同的pose,或者创建不同的角色。