Skip to content
woctordho edited this page Apr 27, 2024 · 11 revisions

语音

给角色设置音量

  1. 角色创建中的说明创建角色的game object
  2. 在角色的game object的Game Character Controller component中,将Voice Folder设成角色语音所在的文件夹
  3. Audio Volume Controller component中:
    • 如果不需要给每个角色分别设置音量,就把secondaryConfigKeyName留空
    • 如果需要:
      1. secondaryConfigKeyName改成对应的名字(如XiaomingVoice
      2. Assets/Nova/Settings/Definitions.json中增加这个设置项
      3. Assets/Resources/LocalizedStrings/ChineseSimplified.json和其他语言的版本中增加这个设置项的翻译
      4. 在设置界面的UI中增加这个设置项,并把Slider game object的Config Float Slider component中的Config Key Name改成对应的名字

路人的语音

如果有很多路人角色,可以让他们共用一个Game Character Controller

  1. 角色创建中的说明创建一个角色,Lua Global Name设为otherVoice Folder设为Other,不需要立绘
  2. 把路人甲的语音文件放在Resources/Voices/Other/Lurenjia文件夹中的001.ogg, 002.ogg, ...,路人乙的语音文件则放在Resources/Voices/Other/Lurenyi文件夹中的001.ogg, 002.ogg, ...
  3. 在脚本中用say(other, 'Lurenjia/001')播放路人甲的语音

给角色设置自动语音

如果角色的语音很多,自动语音功能可以让你不用在脚本里给每句语音写一句say

  1. 把每个角色的语音文件放在各自的文件夹里,把文件名设为语音的编号
    • 每个角色的语音分开编号,比如王二宫的语音是Resources/Voices/Ergong文件夹中的001001.ogg, 001002.ogg, ...,张浅野的语音则是Resources/Voices/Qianye文件夹中的001001.ogg, 001002.ogg, ...
    • 我们一般会把不同章节的语音分开编号,比如王二宫在第一章的语音是001001.ogg, 001002.ogg, ...,第四章的语音则是004001.ogg, 004002.ogg, ...
  2. Characters game object的Auto Voice component中,设置每个角色的自动语音配置
    • Character Name是文本中的角色名称(如王二宫),而不是Lua变量名(如ergong
    • 如果文本中设置了角色的显示名称和内部名称(如ch2.txt中的???//张浅野),而Character Name设为内部名称(张浅野),那么这条对话也会播放自动语音
    • Prefix是语音文件名中编号之前的字符串,比如文件名是a001001.ogg, a001002.ogg, ...,就应该把Prefix设为a
  3. 设置Pad Width,就是语音文件名中的编号左边补零之后,整个编号的长度
  4. 在脚本每个节点的第一条对话中开启或关闭每个角色的自动语音,如auto_voice_on('王二宫', 001001)
    • 如果所有角色很多,而一段剧情中说话的角色比较少,可以先用auto_voice_off_all()关闭所有角色的自动语音,再开启需要的角色

也可以把一个角色的语音按章节放到子文件夹里:

  1. 比如王二宫在第一章的语音是Resources/Voices/Ergong/ch1文件夹中的001.ogg, 002.ogg, ...,第二章则是Resources/Voices/Ergong/ch2文件夹中的001.ogg, 002.ogg, ...
  2. Auto Voice component中,把Pad Width设为3
  3. 在脚本的第一章中用auto_voice_on('王二宫', {'ch1/', 001}),就会把王二宫的Prefix改为ch1/,之后会播放ch1/001.ogg, ch1/002.ogg, ...等文件