Skip to content
woctordho edited this page Oct 4, 2023 · 14 revisions

头像

Nova可以在对话框中显示头像。头像和立绘一样由许多部件组合而成,可以从立绘中截取。具体的例子可以参考Assets/Resources/Scenarios/test_avatar.txt

  1. 在Unity Editor的上面的菜单中,打开Nova -> Character Pose Composer
  2. 在Project中打开Assets/StandingsUncropped/<角色名称>/文件夹,在Character Pose Composer中点击Load Selected Folder,选中Uncropped
    • 或者手动输入文件夹名称
  3. 点击Layers列表下面的加号,添加一些部件
    • 为了确定头像的范围,一般只需要脸和头发
  4. 选中Use Capture Box,立绘上显示的红框就是capture box,调节它的位置和尺寸
  5. 在Project中双击打开UncroppedStanding.prefab
  6. 在Inspector中,选中Use Capture Box,把Character Pose Composer中的Capture Box输入到这里
  7. 点击Auto Crop All,就会计算每个部件的裁剪框
    • TODO:如果没有打开prefab,就点击Auto Crop All,似乎会出问题
  8. 在Hierarchy中选中各个StandingComponent,在Inspector中检查黄色的裁剪框是否合适
  9. 在Hierarchy中选中UncroppedStanding,在Inspector中将Output Directory设为Assets/Resources/Faces/<角色名称>
  10. 点击Write Cropped Textures,就会把裁剪后的部件保存到这个文件夹
    • 如果文件夹不存在,会自动创建
  11. 在Project中选中所有裁剪后的部件,在Inspector中设置导入格式:
    • Texture TypeSprite (2D and UI)
    • Sprite ModeSingle
    • Sprite Mode -> Pixels Per Unit:保持默认值100
    • Max Size:需要大于部件的尺寸
    • Compression:设置合适的压缩格式
  12. 再次在Hierarchy中选中UncroppedStanding,点击Generate Metadata,就会在这个文件夹下生成一些asset,记录裁剪后的部件在原图中的偏移量
  13. 在Hierarchy中退出prefab,选中UI/MainUI/GameView/GamePanel/GameUI/GameUIPanel/DefaultDialogueBox/DialoguePanel/Avatar,在Inspector的Avatar Configs中设置Character Controller和子文件夹名称
    • 如果要用到多个对话框,也要在其他对话框里的Avatar中设置
  14. 头像部件的组合方式(pose)与立绘是共用的,在Assets/Nova/Lua/pose.lua中定义
  15. 在脚本中加入显示头像的代码,如avatar_show('normal')
    • 比如这条对话的角色名称是“王二宫”,就会从pose.lua中查找王二宫normal这个pose
    • 如果文本中设置了角色的显示名称和内部名称(如ch2.txt中的???//张浅野),就会按内部名称查找pose
    • 如果下一条对话的角色名称不同,头像会自动改变为那个角色当前设置的头像(如果那个角色当前没有头像,就是自动消失)
    • 如果下一条对话没有角色名称,头像会自动消失

Clone this wiki locally