-
Notifications
You must be signed in to change notification settings - Fork 89
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,或者创建不同的角色。