Oyun İçi Sesler

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Arka plan müziği dışında, oyun içi sesler oyuncu deneyimini artırabilir. Bu öğretici iki oyun içi ses türüne odaklanacaktır: pozisyon ve geri bildirim sesleri.

İlk örnek için bir su kaskadesi için bir pozisyonlu ses oluşturacaksınız. İkinci örnek için, bir oyuncu bir toplayıcıyla ilgilendiğinde çalınan bir jingle oynatacaksınız.

Pozisyon Sesleri

Bir Ses nesnesi bir parçaya veya bağlantıya eşlenirse, onun konumu değiştirilmiş olur ve oyuncular yaklaştıkça, bu su kaskadesi gibi, daha gürültülü bir ses çıkarır.

Bir Ses Oluştur

  1. Herhangi bir istenen bölümde, Su KadınıSoundı adında yeni bir Ses nesnesi oluşturun.

  2. Özelliklerde, SoundId bulun ve bu su kaskadı ortamına değiştirin: rbxassetid://6564308795 .

  3. Oyun başladığında sürekli oynatmak için, şunları çevirin Oynama ve Looped çünkü açık .

  4. Su kaskadesi ortamını duyduğunuzu onaylamak için oyunu test edin.

Ses Mesafesini Ayarla

Test sırasında, ses derhal çalıştırılır ve oyuncu oyundan uzaktaysa bile fark etmez. Roll-off özelliklerini kullanarak, bir oyuncunun bir sesi duyduğunu görüntüleyebilirsiniz. Bu, solgun efektler oluşturmak için mesafeyi değiştirebilirsiniz.

  1. Değerleri RollOffMaxDistance 'e değiştirin. Bu özellik 30 olarak ölçülür.

  2. Daha düz bir solgunluk için, RollOffMode 'yu InverseTapered 'e değiştirin. Bu, sese daha az şok verir.

  3. Projeyi başlatın. Sesin sadece nesnin yakınında duyulduğunu fark edin.

Nitelikli Roll Off'ı

İhtiyaçlarınıza bağlı olarak, özel efektler veya artırılmış gerçeklik için farklı özellikleri ayarlamak isteyebilirsiniz. Aşağıdaki özellikleri görün:

  • RollOffMinDistance - En düşük mesafe (in studs) bir ses azalır.
  • SoundGroup - Sesler arasındaki hacim ayarlarını ve dengeyi ayarlar, örneğin arka plan müziği ve oyun içi efektler.

Geri bildirim sesleri

Sesler, komutlar kullanılarak çalıştırılabilir. Sesleri, oyuncuların bir parçaya dokunması veya menüyle etkileşim kurması gibi olaylara bağlayabilirsiniz. Burada, oyuncuların toplayıcı nesneleri dokunmasından herhangi bir zaman çalan bir senaryo oluşturursunuz.

Koleksiyonları Oluştur

Bu öğretimin geri kalanında, öğeler ve kaynak kodları kullanılır. Bu kodlar, oyuncuların mücevher toplayabileceği bölümleri ve kaynak kodlarını içerir.

  1. Bir tarayıcıda, Toplanabilir Mücevher Modelleri sayfasını aç ve Elde Et düğmesine tıkla.
  • Stüdyo'da Görüntü sekmesine gidin ve Araç Kutusu üzerine tıklayın.
  • Araç Kutusu penceresinde, Envanter düğmesine tıklayın. Sonra, dropdown'ın My Models 'de olduğundan emin olun.
  • oyuneklemek için Toplanabilir Mücevherleri Toplama Modeli seçin.
  1. In SoundService , yeni bir Ses oluştur ve isminde FeedbackSound olarak adlandır.

  2. In FeedbackSound, SoundId 'yi rbxassetid://4110925712 - model sayfasından indirilen basit çanın SoundId'si ile ayarlar.

Script'i Yükle

  1. In Başlangıç Oyuncusu > StarterPlayerScripts , yeni bir yerel script oluşturulur CollectableSounds .

  2. Aşağıdaki kod, partTouched işlevini herhangi bir toplayucuya dokunulduğunda çalışacaktır. Kodu kendi kodunuza kopyalayın.


    local pickupObjects = workspace.Collectables.Objects
    local objectsArray = pickupObjects:GetChildren()
    local function partTouched(otherPart, objectPart)
    local whichCharacter = otherPart.Parent
    local humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")
    if humanoid and objectPart.CanCollide == true then
    end
    end
    -- Her nesneyi dokunma işlevine bağlayarak tüm nesnelerde çalışır
    for objectIndex = 1, #objectsArray do
    local objectPart = objectsArray[objectIndex]
    objectPart.Touched:Connect(function(otherPart)
    partTouched(otherPart, objectPart)
    end)
    end

Bir Ses Oynat

  1. SoundService için bir değişken oluşturun, sonra geri bildirim sesini depolamak için başka bir değişken.


    local pickupObjects = workspace.Collectables.Objects
    local objectsArray = pickupObjects:GetChildren()
    local SoundService = game:GetService("SoundService")
    local feedbackSound = SoundService:FindFirstChild("FeedbackSound")
    local function partTouched(otherPart, objectPart)
  2. Çalmak için, işlevi partTouched bulun. if ifadesi içinde, sesi çalmak için feedbackSound:Play() çağır.


    local function partTouched(otherPart, objectPart)
    local whichCharacter = otherPart.Parent
    local humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")
    -- Sesi çal, bir kez bitti, nesneyi yok et
    if humanoid and objectPart.CanCollide == true then
    feedbackSound:Play()
    end
    end
  3. Oyunu test etmek, oyuncunun bir toplayıcıyı dokunduğunda her ikisi de kaybolduğunu ve bir ses çaldığını onaylamak için.