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

语音

给角色设置音量

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

路人的语音

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

  1. 角色创建中的说明创建一个角色,luaGlobalName设为othervoiceFolder设为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的AutoVoice component中,设置每个角色的自动语音配置
    • characterName是文本中的角色名称(如王二宫),而不是Lua变量名(如ergong
    • 如果文本中设置了角色的显示名称和内部名称(如ch2.txt中的???//张浅野),而characterName设为内部名称(张浅野),那么这条对话也会播放自动语音
    • prefix是语音文件名中编号之前的字符串,比如文件名是a001001.ogg, a001002.ogg, ...,就应该把prefix设为a
  3. 设置padWidth,就是语音文件名中的编号左边补零之后,整个编号的长度
  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. AutoVoice component中,把padWidth设为3
  3. 在脚本的第一章中用auto_voice_on('王二宫', {'ch1/', 001}),就会把王二宫的Prefix改为ch1/,之后会播放ch1/001.ogg, ch1/002.ogg, ...等文件
Clone this wiki locally