Jak implementovat zvukové efekty a hudbu na pozadí v Godot

Ve světě vývoje her hraje zvuk klíčovou roli při utváření celkového zážitku hráče. Zvukové efekty a hudba na pozadí jsou mocnými nástroji, které mohou zlepšit pohlcení, atmosféru a emocionální dopad vaší hry Godot.

Implementace zvukových efektů a hudby na pozadí v Godot je nejen zásadní, ale překvapivě přímočará. Engine poskytuje vestavěné funkce a funkce, které zjednodušují proces, a to i pro ty, kteří mají omezené zkušenosti s kódováním.

Nastavení hry Godot

Než se pustíte do implementace zvuku, nastavte jednoduchou 2D hru v herním enginu Godot, která bude sloužit jako základ. Spusťte Godota a vytvořte nový 2D projekt. V editoru Godot vytvořte novou scénu kliknutím pravým tlačítkem na kořenový uzel a výběrem Přidat podřízený uzel.

Vytvořte uzel KinematicBody2D a pojmenujte jej Player. Do uzlu Player přidejte uzel CollisionShape2D s tvarem obdélníku. Tento tvar představuje hráčovy kolizní hranice.

Přidejte uzel Sprite do uzlu Player, abyste vizuálně reprezentovali postavu hráče. K uzlu Sprite můžete přiřadit texturu sprite, abyste své postavě dodali vizuální vzhled.

Kód použitý v tomto článku je k dispozici v tomto úložiště GitHub a můžete jej používat zdarma pod licencí MIT.

Nyní přidejte kód GDScript, aby se přehrávač mohl pohybovat všemi čtyřmi směry pomocí vstupu z klávesnice.

 extends KinematicBody2D

const SPEED = 150

func _physics_process(delta):
    var velocity = Vector2.ZERO
    if Input.is_action_pressed("move_right"):
        velocity.x += SPEED
    if Input.is_action_pressed("move_left"):
        velocity.x -= SPEED
    if Input.is_action_pressed("move_down"):
        velocity.y += SPEED
    if Input.is_action_pressed("move_up"):
        velocity.y -= SPEED

    velocity = move_and_slide(velocity)

Níže je výstup:

  Jak zjistit, zda vás někdo nepřidal nebo se s vámi spřátelil na Snapchatu

Přidání zvukových efektů

Chcete-li do Godot přidat zvukové efekty, použijte k ovládání přehrávání zvukových souborů uzly AudioStreamPlayer. Než budete pokračovat, ujistěte se, že máte do svého projektu Godot importovány zvukové soubory v podporovaných formátech (jako je WAV nebo OGG).

Kdykoli přehrávač narazí do rohu obrazovky, můžete načíst a přehrát zvukový efekt, což znamená, že jste mimo hranice.

 extends KinematicBody2D


var sound_player := AudioStreamPlayer.new()

func _ready():
    
    add_child(sound_player)

func _physics_process(delta):
    

    var c1 = position.x <= 0
    var c2 = position.x >= get_viewport().size.x
    var c3 = position.y <= 0
    var c4 = position.y >= get_viewport().size.y

    if c1 or c2 or c3 or c4:
        var sound_effect = load("res://path_to_sound_effect.wav")
        sound_player.stream = sound_effect
        sound_player.play()

Vytvořte uzel AudioStreamPlayer a přidejte jej jako podřízený do uzlu přehrávače během funkce _ready. Když přehrávač koliduje s rohy obrazovky, načtěte zvukový efekt pomocí funkce načíst a nastavte jej jako stream pro AudioStreamPlayer.

Poté zavolejte přehrávání v uzlu AudioStreamPlayer a spusťte přehrávání zvukového efektu.

Přidání hudby na pozadí

Hudba na pozadí je klíčovou součástí každé hry, protože hráčům nastavuje náladu a atmosféru. Pro hudbu na pozadí budete chtít mít zacyklený zvukový soubor (obvykle ve formátu OGG), který se během hry nepřetržitě přehrává.

Chcete-li přidat hudbu na pozadí a opakovat ji v Godot, klikněte na zvukový soubor představující vaši hudbu na pozadí na panelu Godot FileSystem.

Na kartě Import uvidíte různé možnosti nastavení importu zvuku. Vyhledejte možnost s názvem Smyčka na kartě Import. Klepnutím na zaškrtávací políčko vedle položky Smyčka povolíte opakování zvukového souboru.

  Jak automaticky změnit ciferník Apple Watch na základě času nebo polohy

Po povolení opakování klikněte na tlačítko Znovu importovat ve spodní části karty Import, abyste použili změny.

Nyní přidejte skript pro přehrávání hudby na pozadí:

 extends KinematicBody2D

var bg_music := AudioStreamPlayer.new()

func _ready():
    bg_music.stream = load("res://path_to_bg_music.ogg")
    bg_music.autoplay = true
    add_child(bg_music)

Vytvořte uzel AudioStreamPlayer s názvem bg_music. Poté nastavte vlastnost stream na hudbu na pozadí načtenou pomocí funkce load. Nastavte také vlastnost autoplay na true, která automaticky spustí přehrávání, když je scéna připravena.

Díky správnému smyčkování zvukového souboru hudby na pozadí během importu se nyní bude přehrávat a opakovat během hry, což hráčům poskytne pohlcující zážitek během celé herní relace.

Přehrát zvuk na uživatelském vstupu

Interaktivní zvukové prvky mohou dále zlepšit zapojení hráče do vaší hry. Když přehrávač stiskne mezerník, můžete přehrát zvukový efekt.

 extends KinematicBody2D

var bg_music := AudioStreamPlayer.new()
var input_sound := AudioStreamPlayer.new()

func _ready():
    bg_music.stream = load("res://path_to_bg_music.ogg")
    bg_music.autoplay = true
    add_child(bg_music)
    add_child(input_sound)

func _input(event):
    if event.is_action_pressed("ui_accept"):
        input_sound.stream = load("res://path_to_input_sound.wav")
        input_sound.play()

Ve funkci _input zkontrolujte stisk tlačítka mezera pomocí podmíněného příkazu if. Pokud přehrávač stiskne mezerník, načtěte odpovídající zvukový efekt pomocí funkce load a nastavte jej jako stream pro uzel input_sound.

Ovládání vlastností zvuku

V Godot můžete snadno ovládat různé zvukové vlastnosti pomocí uzlu AudioStreamPlayer.

 extends KinematicBody2D

var bg_music := AudioStreamPlayer.new()

func _ready():
    bg_music.stream = load("res://path_to_bg_music.ogg")
    bg_music.autoplay = true
    bg_music.volume_db = -20
    add_child(bg_music)

Hlasitost hudby na pozadí můžete ovládat pomocí vlastnosti volume_db. Tato vlastnost upravuje hlasitost zvuku v decibelech (dB). Nastavením na zápornou hodnotu, například -20, snížíte hlasitost o 20 decibelů.

Včetně dalších funkcí

Kromě základů nabízí Godot různé funkce a možnosti, které povýší váš zvukový zážitek. Mezi některé pokročilé funkce, které můžete do hry přidat, patří:

  Jak zobrazit něčí profil šeptání

Zvukové bazény

Zvukové fondy jsou skupiny předem nahraných zvukových vzorků, které můžete opakovaně používat během hry. Namísto opakovaného načítání zvukových efektů z disku můžete na začátku hry předem načíst soubor zvukových efektů bez autorských práv.

Můžete okamžitě přehrát zvukový efekt z bazénu, snížit potenciální zpoždění a zlepšit výkon.

Crossfading

Crossfading umožňuje vytvářet plynulé přechody mezi zvukovými stopami, což je ideální pro vytváření plynulých posunů v hudbě nebo atmosféře. Současným nastavením hlasitosti dvou zvukových stop můžete zeslabit jednu stopu, zatímco jinou zeslabovat, což má za následek vybroušený a pohlcující zvukový zážitek.

3D prostorový zvuk

Pro 3D hry je prostorový zvuk cenným nástrojem pro zvýšení realismu. Godot nabízí možnosti 3D zvuku, které umožňují vnímat zvuky jako přicházející z konkrétních směrů v herním světě.

Nastavením pozice a orientace zvuku vzhledem k pozici hráče můžete vytvořit přesvědčivé zvukové podněty, které dodají vaší hře hloubku a ponoření.

Doporučené postupy pro přidávání zvukových efektů

Při implementaci zvukových efektů zvažte následující osvědčené postupy, abyste zajistili vysoce kvalitní zvukový zážitek:

  • Použijte zvukové soubory s vhodnou kompresí, abyste dosáhli rovnováhy mezi kvalitou zvuku a velikostí souboru.
  • Udržujte zvukové efekty krátké a výstižné, vyhněte se příliš dlouhým nebo opakujícím se zvukům.
  • Ujistěte se, že zvolené zvuky odpovídají tématu a uměleckému stylu hry a podporují soudržnost v celkovém zážitku.
  • Otestujte zvuk na různých zařízeních a platformách, abyste ověřili kompatibilitu a konzistenci.

Díky zvukovým efektům budou hry Godot poutavější

Přidání zvukových efektů a hudby na pozadí do vaší hry Godot může být transformační a vytvořit pro hráče hluboce poutavý zážitek. Poskytnutím zvukové zpětné vazby ponoříte hráče hlouběji do herního světa, vyvoláte emoce a zpříjemníte celkový zážitek.

Dobře vytvořené zvukové efekty mohou zvýšit očekávání, posílit akce a přidat do vaší hry vrstvu bohatství. Mezitím hudba na pozadí udává tón, vylepšuje atmosféru a udrží hráče v zajetí na delší dobu.