base addon version?
This commit is contained in:
commit
8e56975f09
21 changed files with 1304 additions and 0 deletions
134
addons/dvn/label/dvn_label.gd
Normal file
134
addons/dvn/label/dvn_label.gd
Normal file
|
@ -0,0 +1,134 @@
|
|||
@icon("res://addons/dialogue_manager/assets/icon.svg")
|
||||
class_name DVNLabel extends DialogueLabel
|
||||
## The DVNLabel Class takes care of dialogue related functions on the label-level
|
||||
|
||||
## ToneTypes for the Talktone player.
|
||||
## [br][param NONE] plays no sound when text is outputted
|
||||
## [br][param VOICE] plays a [AudioStream] from [member voice_clips] at the beginning of each dialogue box,
|
||||
## the index of [member voice clips] increases with each dialogue box. Use this for full voice acting.
|
||||
## [br][param HALF_BEEP] plays a [member beep_noise] for every other letter outputted
|
||||
## [br][param BEEP] plays a [member beep_noise] for every letter outputted
|
||||
## [br][param BLABBER] plays a random [AudioStream] from [member blabber_noises] for every letter outputted.
|
||||
## Its pitch is a random value between [member blabber_pitch_minumum] and [member blabber_pitch_maximum]
|
||||
## [br][param MARISESE] uses rudimentary voice synthesis (a specific sound is mapped to each letter aka each [AudioStream] from values 0-25, with every other symbol being represented by value 26)
|
||||
## ## Its pitch is a random value between [member marisese_pitch_minumum] and [member marisese_pitch_maximum]
|
||||
enum ToneTypes{NONE,VOICE,HALF_BEEP,BEEP,BLABBER,MARISESE}
|
||||
@export var talktone_player_path: NodePath
|
||||
var talktone_player = null
|
||||
var current_voice_line:int = 0
|
||||
# Current TalkType
|
||||
@export_enum("None","Voice","Half Beep","Beep","Blabber","Marisese") var tone_type: int
|
||||
# Tone Noises
|
||||
@export var voice_clips: Array[Resource] = []
|
||||
@export var beep_noise: Resource
|
||||
@export var blabber_noises: Array[Resource] = []
|
||||
@export var blabber_pitch_minumum: float = 1.0
|
||||
@export var blabber_pitch_maximum: float = 1.0
|
||||
@export var marisese_noises: Array[Resource] = []
|
||||
@export var marisese_pitch_minumum: float = 0.9
|
||||
@export var marisese_pitch_maximum: float = 1.1
|
||||
@export var can_speak: bool = true
|
||||
|
||||
@onready var scene = get_owner().get_parent()
|
||||
@onready var balloon = get_owner()
|
||||
|
||||
func _init() -> void:
|
||||
bbcode_enabled = true
|
||||
fit_content = true
|
||||
scroll_active = false
|
||||
shortcut_keys_enabled = false
|
||||
meta_underlined = false
|
||||
hint_underlined = false
|
||||
deselect_on_focus_loss_enabled = false
|
||||
visible_characters_behavior = TextServer.VisibleCharactersBehavior.VC_CHARS_AFTER_SHAPING
|
||||
set_anchors_preset(Control.PRESET_TOP_WIDE)
|
||||
size.x = 640.0
|
||||
mouse_filter = MOUSE_FILTER_PASS
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
talktone_player = get_node(talktone_player_path)
|
||||
talktone_player.finished.connect(on_talktone_finished)
|
||||
spoke.connect(_on_spoke)
|
||||
finished_typing.connect(_on_finished_typing)
|
||||
|
||||
func type_out():
|
||||
super()
|
||||
if tone_type == ToneTypes.VOICE && can_speak:
|
||||
if current_voice_line <= voice_clips.size() - 1:
|
||||
talktone_player.stream = voice_clips[current_voice_line]
|
||||
talktone_player.play()
|
||||
current_voice_line += 1
|
||||
|
||||
func play_beep_tone(sound:Resource = beep_noise,pitch_minimum:float = 1.0,pitch_maximum:float = 1.0,player:Node = talktone_player):
|
||||
var r = randf_range(pitch_minimum,pitch_maximum)
|
||||
player.stream = sound
|
||||
player.pitch_scale = r
|
||||
player.play()
|
||||
|
||||
func play_blabber_tone(sounds:Array = blabber_noises,volume:float = 0.0,pitch_minimum:float = blabber_pitch_minumum,pitch_maximum:float = blabber_pitch_maximum,player:Node = talktone_player):
|
||||
var r = randi_range(0,sounds.size() - 1)
|
||||
player.stream = sounds[r]
|
||||
var r2 = randf_range(pitch_minimum,pitch_maximum)
|
||||
player.pitch_scale = r2
|
||||
player.play()
|
||||
|
||||
func play_marisese(letter:String = "A",sounds:Array = marisese_noises,volume:float = 0.0,pitch_minimum:float = marisese_pitch_minumum,pitch_maximum:float = marisese_pitch_maximum,player:Node = talktone_player):
|
||||
var snd = 26
|
||||
#region check every letter
|
||||
match letter.to_upper():
|
||||
"A": snd = 0
|
||||
"B": snd = 1
|
||||
"C": snd = 2
|
||||
"D": snd = 3
|
||||
"E": snd = 4
|
||||
"F": snd = 5
|
||||
"G": snd = 6
|
||||
"H": snd = 7
|
||||
"I": snd = 8
|
||||
"J": snd = 9
|
||||
"K": snd = 10
|
||||
"L": snd = 11
|
||||
"M": snd = 12
|
||||
"N": snd = 13
|
||||
"O": snd = 14
|
||||
"P": snd = 15
|
||||
"Q": snd = 16
|
||||
"R": snd = 17
|
||||
"S": snd = 18
|
||||
"T": snd = 19
|
||||
"U": snd = 20
|
||||
"V": snd = 21
|
||||
"W": snd = 22
|
||||
"X": snd = 23
|
||||
"Y": snd = 24
|
||||
"Z": snd = 25
|
||||
#endregion
|
||||
player.stream = sounds[snd]
|
||||
var r = randf_range(pitch_minimum,pitch_maximum)
|
||||
player.pitch_scale = r
|
||||
player.play()
|
||||
|
||||
func _on_spoke(letter: String, letter_index: int, speed: float) -> void:
|
||||
if can_speak:
|
||||
match tone_type:
|
||||
ToneTypes.HALF_BEEP:
|
||||
if letter_index % 2 == 0:
|
||||
play_beep_tone()
|
||||
ToneTypes.BEEP:
|
||||
play_beep_tone()
|
||||
ToneTypes.BLABBER:
|
||||
play_blabber_tone()
|
||||
ToneTypes.MARISESE:
|
||||
play_marisese(letter)
|
||||
|
||||
func on_talktone_finished():
|
||||
if scene.dialogue_automation_type == scene.DialogueAutomationTypes.AUTO_VOICE:
|
||||
balloon.next(balloon.dialogue_line.next_id)
|
||||
|
||||
|
||||
func _on_finished_typing():
|
||||
if scene.dialogue_automation_type == scene.DialogueAutomationTypes.AUTO_TEXT:
|
||||
await get_tree().create_timer(scene.auto_text_delay).timeout
|
||||
if balloon.dialogue_line.responses.size() == 0:
|
||||
balloon.next(balloon.dialogue_line.next_id)
|
82
addons/dvn/label/dvn_label.tscn
Normal file
82
addons/dvn/label/dvn_label.tscn
Normal file
|
@ -0,0 +1,82 @@
|
|||
[gd_scene load_steps=71 format=3 uid="uid://cca3fm3pojb41"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/dvn/label/dvn_label.gd" id="1_fv617"]
|
||||
[ext_resource type="AudioStream" uid="uid://b5g1o68bedpma" path="res://dvn/test_resources/punchy_2.ogg" id="2_hquny"]
|
||||
[ext_resource type="AudioStream" uid="uid://sm4230h82f5q" path="res://dvn/test_resources/blabber/pi1.wav" id="2_tuq54"]
|
||||
[ext_resource type="AudioStream" uid="uid://b5kfcwr6q6dps" path="res://dvn/test_resources/blabber/fal1.wav" id="3_bmk75"]
|
||||
[ext_resource type="AudioStream" uid="uid://bg3bavm00pcnk" path="res://dvn/test_resources/blabber/pe1.wav" id="3_d0ft6"]
|
||||
[ext_resource type="AudioStream" uid="uid://bpgaqfi7u7lxs" path="res://dvn/test_resources/blabber/far1.wav" id="4_1qnca"]
|
||||
[ext_resource type="AudioStream" uid="uid://t3re1rycy7j2" path="res://dvn/test_resources/blabber/ga1.wav" id="5_cbw33"]
|
||||
[ext_resource type="AudioStream" uid="uid://0v1iv2ra8x8w" path="res://dvn/test_resources/blabber/ga2.wav" id="6_40gsr"]
|
||||
[ext_resource type="AudioStream" uid="uid://b2wynph473uvs" path="res://dvn/test_resources/blabber/le1.wav" id="7_ibxmc"]
|
||||
[ext_resource type="AudioStream" uid="uid://dqltsvqf3k6vc" path="res://dvn/test_resources/blabber/ne1'.wav" id="8_jtpjw"]
|
||||
[ext_resource type="AudioStream" uid="uid://dfv7i773v1345" path="res://dvn/test_resources/blabber/ni.wav" id="9_54x41"]
|
||||
[ext_resource type="AudioStream" uid="uid://dxfs35l47g73l" path="res://dvn/test_resources/blabber/pa1.wav" id="10_u3rmo"]
|
||||
[ext_resource type="AudioStream" uid="uid://chppepwyeaxo1" path="res://dvn/test_resources/blabber/ri1.wav" id="13_qjq1i"]
|
||||
[ext_resource type="AudioStream" uid="uid://dalsdbfgokvh8" path="res://dvn/test_resources/blabber/ri2.wav" id="14_ubu0w"]
|
||||
[ext_resource type="AudioStream" uid="uid://mwypw3x0tsjd" path="res://dvn/test_resources/blabber/sd1.wav" id="15_8x2tu"]
|
||||
[ext_resource type="AudioStream" uid="uid://g64h12p8xumh" path="res://dvn/test_resources/blabber/sd2.wav" id="16_doa2h"]
|
||||
[ext_resource type="AudioStream" uid="uid://do4bmxgaj20n" path="res://dvn/test_resources/blabber/sd3.wav" id="17_l6dov"]
|
||||
[ext_resource type="AudioStream" uid="uid://5fmqnqdna8lv" path="res://dvn/test_resources/blabber/sd4.wav" id="18_pdvjt"]
|
||||
[ext_resource type="AudioStream" uid="uid://bxjkrlc4vt2kh" path="res://dvn/test_resources/blabber/sd5.wav" id="19_4s5lc"]
|
||||
[ext_resource type="AudioStream" uid="uid://b0ys7cac48mox" path="res://dvn/test_resources/blabber/sd6.wav" id="20_m42sg"]
|
||||
[ext_resource type="AudioStream" uid="uid://i77kull066ki" path="res://dvn/test_resources/blabber/sd7.wav" id="21_hcdah"]
|
||||
[ext_resource type="AudioStream" uid="uid://cx76n171p3cuj" path="res://dvn/test_resources/blabber/sd8.wav" id="22_cexo3"]
|
||||
[ext_resource type="AudioStream" uid="uid://cq2ogvp0ojpfn" path="res://dvn/test_resources/blabber/sd9.wav" id="23_v8lqv"]
|
||||
[ext_resource type="AudioStream" uid="uid://cnre5w258b5h8" path="res://dvn/test_resources/blabber/sd10.wav" id="24_o3iql"]
|
||||
[ext_resource type="AudioStream" uid="uid://0hucylbigf3v" path="res://dvn/test_resources/blabber/sd11.wav" id="25_577es"]
|
||||
[ext_resource type="AudioStream" uid="uid://61m5vy2qnxog" path="res://dvn/test_resources/blabber/sd12.wav" id="26_yuaul"]
|
||||
[ext_resource type="AudioStream" uid="uid://cirx6t05t8ao0" path="res://dvn/test_resources/blabber/sd13.wav" id="27_nlfp5"]
|
||||
[ext_resource type="AudioStream" uid="uid://c36rbn6sic5pt" path="res://dvn/test_resources/blabber/sd14.wav" id="28_3ag1d"]
|
||||
[ext_resource type="AudioStream" uid="uid://bpa2mw442i3xc" path="res://dvn/test_resources/blabber/sd15.wav" id="29_ph7ej"]
|
||||
[ext_resource type="AudioStream" uid="uid://cjl1n6g2m36b" path="res://dvn/test_resources/blabber/sd16.wav" id="30_envgi"]
|
||||
[ext_resource type="AudioStream" uid="uid://ge3im18rj7ay" path="res://dvn/test_resources/blabber/sd17.wav" id="31_6w17e"]
|
||||
[ext_resource type="AudioStream" uid="uid://bhyypbcfh348o" path="res://dvn/test_resources/blabber/sd18.wav" id="32_ms2qy"]
|
||||
[ext_resource type="AudioStream" uid="uid://gwk6piygd8ui" path="res://dvn/test_resources/blabber/sd19.wav" id="33_u3qhm"]
|
||||
[ext_resource type="AudioStream" uid="uid://ceq1ke4reramj" path="res://dvn/test_resources/blabber/sd20.wav" id="34_r1oa5"]
|
||||
[ext_resource type="AudioStream" uid="uid://8wjlqeg6b8xx" path="res://dvn/test_resources/blabber/sd21.wav" id="35_mqmkp"]
|
||||
[ext_resource type="AudioStream" uid="uid://bqfn6evn120or" path="res://dvn/test_resources/blabber/sd22.wav" id="36_nlt07"]
|
||||
[ext_resource type="AudioStream" uid="uid://i7lo7bm16vff" path="res://dvn/test_resources/blabber/sd23.wav" id="37_mstcy"]
|
||||
[ext_resource type="AudioStream" uid="uid://bax606i3nxh7l" path="res://dvn/test_resources/blabber/ss1.wav" id="38_0v0fh"]
|
||||
[ext_resource type="AudioStream" uid="uid://37cucmolvd3f" path="res://dvn/test_resources/blabber/ta1.wav" id="39_bhuw4"]
|
||||
[ext_resource type="AudioStream" uid="uid://c58ka00u052yv" path="res://dvn/test_resources/blabber/te1.wav" id="40_i10fu"]
|
||||
[ext_resource type="AudioStream" uid="uid://dcqmpdxusohbq" path="res://dvn/test_resources/blabber/ti1.wav" id="41_ijnny"]
|
||||
[ext_resource type="AudioStream" uid="uid://dtdt4e3u6nvnv" path="res://dvn/test_resources/blabber/to1.wav" id="42_b88mp"]
|
||||
[ext_resource type="AudioStream" uid="uid://i5d6kk1knsma" path="res://dvn/test_resources/blabber/za1.wav" id="43_2ojxd"]
|
||||
[ext_resource type="AudioStream" uid="uid://lj6cmjs2fcoy" path="res://dvn/test_resources/marisese/a.ogg" id="44_0vfbl"]
|
||||
[ext_resource type="AudioStream" uid="uid://hpua870udnef" path="res://dvn/test_resources/marisese/b.ogg" id="45_61hs3"]
|
||||
[ext_resource type="AudioStream" uid="uid://cjvp4618k1655" path="res://dvn/test_resources/marisese/c.ogg" id="46_liuih"]
|
||||
[ext_resource type="AudioStream" uid="uid://mdubpok7ngrq" path="res://dvn/test_resources/marisese/d.ogg" id="47_r6a1e"]
|
||||
[ext_resource type="AudioStream" uid="uid://b4au507qswa1v" path="res://dvn/test_resources/marisese/e.ogg" id="48_llf7d"]
|
||||
[ext_resource type="AudioStream" uid="uid://d1osi4yd264ha" path="res://dvn/test_resources/marisese/f.ogg" id="49_lu43n"]
|
||||
[ext_resource type="AudioStream" uid="uid://d2tf84enhxeb7" path="res://dvn/test_resources/marisese/g.ogg" id="50_x05xc"]
|
||||
[ext_resource type="AudioStream" uid="uid://b8bbdmrbv4enj" path="res://dvn/test_resources/marisese/h.ogg" id="51_l7627"]
|
||||
[ext_resource type="AudioStream" uid="uid://d3ckkydmnk8gl" path="res://dvn/test_resources/marisese/i.ogg" id="52_ho0bb"]
|
||||
[ext_resource type="AudioStream" uid="uid://cimlinpp0blqe" path="res://dvn/test_resources/marisese/j.ogg" id="53_4wpxl"]
|
||||
[ext_resource type="AudioStream" uid="uid://od5mo70vksk" path="res://dvn/test_resources/marisese/k.ogg" id="54_i0f61"]
|
||||
[ext_resource type="AudioStream" uid="uid://cms646gy24tg1" path="res://dvn/test_resources/marisese/l.ogg" id="55_fjfa5"]
|
||||
[ext_resource type="AudioStream" uid="uid://drcrhooamcuv4" path="res://dvn/test_resources/marisese/m.ogg" id="56_u00wn"]
|
||||
[ext_resource type="AudioStream" uid="uid://bqoygbln7xe5b" path="res://dvn/test_resources/marisese/n.ogg" id="57_d5p6b"]
|
||||
[ext_resource type="AudioStream" uid="uid://nrhmwe1yb04k" path="res://dvn/test_resources/marisese/o.ogg" id="58_uk4g0"]
|
||||
[ext_resource type="AudioStream" uid="uid://hycxcbqq6i6d" path="res://dvn/test_resources/marisese/p.ogg" id="59_nntae"]
|
||||
[ext_resource type="AudioStream" uid="uid://fkdc5nuwwtrv" path="res://dvn/test_resources/marisese/q.ogg" id="60_3nwmx"]
|
||||
[ext_resource type="AudioStream" uid="uid://cnw5pe2mew1ns" path="res://dvn/test_resources/marisese/r.ogg" id="61_81l4p"]
|
||||
[ext_resource type="AudioStream" uid="uid://dr52n8ld32c3h" path="res://dvn/test_resources/marisese/s.ogg" id="62_mb7y7"]
|
||||
[ext_resource type="AudioStream" uid="uid://loxlrrvh88gx" path="res://dvn/test_resources/marisese/t.ogg" id="63_0rkin"]
|
||||
[ext_resource type="AudioStream" uid="uid://borglhy7pdu7a" path="res://dvn/test_resources/marisese/u.ogg" id="64_81htt"]
|
||||
[ext_resource type="AudioStream" uid="uid://cwgc5q6gkk24m" path="res://dvn/test_resources/marisese/v.ogg" id="65_j0h54"]
|
||||
[ext_resource type="AudioStream" uid="uid://d3d4qd504q88s" path="res://dvn/test_resources/marisese/w.ogg" id="66_qvihc"]
|
||||
[ext_resource type="AudioStream" uid="uid://2yfoybsar237" path="res://dvn/test_resources/marisese/x.ogg" id="67_5y7v3"]
|
||||
[ext_resource type="AudioStream" uid="uid://bl6crwxrpbtn1" path="res://dvn/test_resources/marisese/y.ogg" id="68_k2fgx"]
|
||||
[ext_resource type="AudioStream" uid="uid://24xlk8xji84c" path="res://dvn/test_resources/marisese/z.ogg" id="69_gfbuo"]
|
||||
[ext_resource type="AudioStream" uid="uid://dov7x4duhpcmv" path="res://dvn/test_resources/marisese/null.ogg" id="70_cva4i"]
|
||||
|
||||
[node name="DVNLabel" type="RichTextLabel"]
|
||||
script = ExtResource("1_fv617")
|
||||
talktone_player_path = NodePath("../../../../../AudioStreamPlayer")
|
||||
tone_type = 3
|
||||
beep_noise = ExtResource("2_hquny")
|
||||
blabber_noises = Array[Resource]([ExtResource("3_bmk75"), ExtResource("4_1qnca"), ExtResource("5_cbw33"), ExtResource("6_40gsr"), ExtResource("7_ibxmc"), ExtResource("8_jtpjw"), ExtResource("9_54x41"), ExtResource("10_u3rmo"), ExtResource("3_d0ft6"), ExtResource("2_tuq54"), ExtResource("13_qjq1i"), ExtResource("14_ubu0w"), ExtResource("15_8x2tu"), ExtResource("16_doa2h"), ExtResource("17_l6dov"), ExtResource("18_pdvjt"), ExtResource("19_4s5lc"), ExtResource("20_m42sg"), ExtResource("21_hcdah"), ExtResource("22_cexo3"), ExtResource("23_v8lqv"), ExtResource("24_o3iql"), ExtResource("25_577es"), ExtResource("26_yuaul"), ExtResource("27_nlfp5"), ExtResource("28_3ag1d"), ExtResource("29_ph7ej"), ExtResource("30_envgi"), ExtResource("31_6w17e"), ExtResource("32_ms2qy"), ExtResource("33_u3qhm"), ExtResource("34_r1oa5"), ExtResource("35_mqmkp"), ExtResource("36_nlt07"), ExtResource("37_mstcy"), ExtResource("38_0v0fh"), ExtResource("39_bhuw4"), ExtResource("40_i10fu"), ExtResource("41_ijnny"), ExtResource("42_b88mp"), ExtResource("43_2ojxd")])
|
||||
marisese_noises = Array[Resource]([ExtResource("44_0vfbl"), ExtResource("45_61hs3"), ExtResource("46_liuih"), ExtResource("47_r6a1e"), ExtResource("48_llf7d"), ExtResource("49_lu43n"), ExtResource("50_x05xc"), ExtResource("51_l7627"), ExtResource("52_ho0bb"), ExtResource("53_4wpxl"), ExtResource("54_i0f61"), ExtResource("55_fjfa5"), ExtResource("56_u00wn"), ExtResource("57_d5p6b"), ExtResource("58_uk4g0"), ExtResource("59_nntae"), ExtResource("60_3nwmx"), ExtResource("61_81l4p"), ExtResource("62_mb7y7"), ExtResource("63_0rkin"), ExtResource("64_81htt"), ExtResource("65_j0h54"), ExtResource("66_qvihc"), ExtResource("67_5y7v3"), ExtResource("68_k2fgx"), ExtResource("69_gfbuo"), ExtResource("70_cva4i")])
|
||||
|
||||
[connection signal="spoke" from="." to="." method="_on_spoke"]
|
Loading…
Add table
Add a link
Reference in a new issue