Dota 2 Spikerleri özel olaylara cevap veren bir veri tabanı olarak çalışır: “üst kuleniz düştü”, “rakip takımın alt barakaları yıkıldı”, “kurye öldürüldü” ve benzeri. Özel spikerler, bu her bir durum için repliklerin kaydedilmesi ve varsayılan spikerin sesinin değiştirilmesiyle oluşturulabilir. Şu an için, Gönderim amacıyla yeni bir spiker için senaryo oluşturmanın en kolay yolu aşağıda sağlanmış olan Senaryo Şablonunu kullanmaktır. Bu şablon, her spiker paketi için gerekli olan replikleri, paketinizin öne çıkmasını sağlayacak birkaç isteğe bağlı fırsatları ve spiker paketinizin olabildiğince başarılı olmasına yardım edecek rehberleri listeler.Senaryonuzu kaydettikten sonra, aşağıdaki Örnek Çalışma Tablolarını kullanarak her replik için tahmini tetikleyici olayları tasarlayabilirsiniz. Örnek Çalışma Tabloları, Senaryo Şablonunda detaylı bir şekilde yer alan olaylar için örnek tetikleyicileri listeler, ancak daha detaylı bir tetikleyiciler listesi için Etkinlik Tetikleyicileri listesine bakabilirsiniz. Ek çalışma ve esin kaynağı olarak başvurulabilecek, daha önce satışa çıkmış Bastion spiker paketinin hafif ek açıklamalı sürümünü rehber çalışma tablolarını içeren bir şekilde sunulmuştur.
Kaynaklar:
Eğitici Komut Şablonu - Updated 07/16/2013
Olay Tetikleyicileri Listesi - Updated 07/18/2013
Örnek Spiker Çalışma Tablosu - Updated 07/18/2013
Örnek Yardırıyor Serisi Spiker Çalışma Tablosu - Updated 07/18/2013
Bastion Spiker Çalışma Tablosu - Updated 07/18/2013
Bastion Yardırıyor Serisi Spiker Çalışma Tablosu - Updated 07/18/2013
Çarpıcılık, Kişilik, Özlülük, Çeşitlilik ve yukarıdakilerin tamamı başarılı bir spiker oluşturmanın anahtarlarıdır.
Kaydettiğiniz her replik o olayı etkinleştiren her oyuncu tarafından pek çok kez duyulacaktır. Bir oyunda, bir oyuncu on beş “kuleniz düştü” olayını, üç “Roshan öldürüldü” olayını ve otuzdan fazla kez “[binanız] saldırı altında” olayını duyabilir. Pek çok oyundan sonra bile spikerlerin taze kalması adına, her olayın mevcut replikler için geniş bir çeşitliliğe sahip olmalıdır. Juggernaut spikeri her replik için üç varyasyona sahipken, Dr. Kleiner spikeri bazı kategorilerde beş varyasyona kadar seslendirilmiştir. Spikerin bir ana olayı ("üst kuleniz düştü”) konu ile alakalı birbirini takip eden farklı replikler ("bu sizin için iyi görünmüyor”) kullanarak çeşitlilik sağlamak amacı ile takipçi mekanizmalar da kullanmayı düşünebilirsiniz. Bastion ve Axe spiklerleri bu takipçi özellikleri abartılı bir şekilde kullanır. Atölye spikerleri için 600 satırlık bir limitimizin olduğunu lütfen unutmayın.
Çok büyük bir performans sergile! Ön plana çıkmak için spikeriniz mutlaka dinleyiciler üzerinde sadece birkaç kelimeyle sağlam bir izlenim bırakmalıdır. Diyaloğun her bir satırına çarpıcılığı ve kişiliği getirmen karakterini özgün yapmanda yardım edecektir. Ayrıca karakterinizin sesiyle her bir etkinliği "düz" bir sesle de kaydetmeniz gerekmektedir. Örneğin; Renaissance Faire Spiker Paketinin "Dikat! Üst kulen kuşatma altında!" gibi bir kaydı olduğu gibi aynı seste temel "Üst kuleniz saldırı altında" şekilde kaydedilmelidir. Bu senin abartılı satırlarının, daha az sıklıkta olan basit satırlarla karışacağından dolayı daha fazla tekrarlanmasına yardımcı olacaktır.
Düzgün ve pozitif tutun! Dota 2 çok geniş bir izleyici kitlesine sahiptir ve her spikerin mümkün olabildiğince çok kişiye hitap etmesini istiyoruz. Spikeriniz için senaryo oluştururken lütfen mizahınızı oldukça düzgün tutmaya, cinsiyetçi veya ırkçı ya da dini açıdan saldırgan diyaloglardan kaçınmaya çalışın. Ek olarak, Dota 2 bazen gerçekten stresli bir oyun olabilmektedir. Bir oyuncunun takımı sıklıkla kaybetmeye başladığında bir spikerin onur kırıcı davranması ve oynayışlarını azarlaması en son duymak istediğimiz şeydir. Uygun olan durumlarda spikerinizin yorumunu pozitif, komik veya en azından cesaret verici tutmaya çalışın. Ayrıca telif hakkı bulunan müzikler, filmler veya gerçek insanlar hakkında açıklama yapmaktan kaçınmanızı öneririz.
Dota 2'nin kaotik bir oyun olabileceğini ve olayların hızlıca gerçekleşebileceğini unutma. Bir kulenin yıkılması ve kahramanın konuşması arasında sadece birkaç saniye veya daha az bir zaman olduğundan spikerin satırlarını kısa tutmaya çalış. Uzun satırlar kahramanlarını hayatta tutmaya çalışan oyuncuların dikkatinin dağılmasına neden olabilir. Oldukça sık tekrarlanan uzun satırlar ayrıca başka bir spiker satırının tetiklenmesi nedenliye yarıda kesilebilir. Genellikle, ana kural satırları üç saniyenin altında tutmaktır ve hiçbir şekilde beş saniyeden fazla olmamasıdır.
İzleyiciye özgü satırlar sadece bir spiker paketi bir oyunu izleyen kullanıcılar tarafından kuşanıldığında duyulur ve uzunluğu ve içeriği izleyicilerin oynayan oyuncular gibi oyun içi önemli bilgilerin seslerini duymaya odaklanmadığı için daha uzun sürebilir. Aynı olaylar için izleyiciler ve oyuncular tamamen farklı diyaloglar duyduğundan herhangi bir satırı izleyicilere özgü olarak işaretleyebilirsin. Örnek tabloda aynı olay için oyuncu "kuleniz saldırı altında" satırını duyarken izleyiciler "radiant'ın kulesi saldırı altında" satırını duyacaktır.
Spiker Şablon Kılavuzu kısmında daha fazla bilgi ve rehber bulunmaktadır.
Değerlendirme için profesyonel kalitede materyaller tasarlamak en yüksek önceliklerinizden birisi olmalıdır. Uygun kayıt donanımı ve araçları, iyi mikrofon tekniği ve aralık ile düzgün bir şekilde ayarlanmış ses seviyeleri en sonunda ortaya çıkacak sunucu paketinizin ne kadar iyi olacağını önemli ölçüde etkileyecektir.
Kulaklık mikrofonu kullanılarak yapılan spiker kayıtları kabul edilebilir olmayacaktır.
Bir stüdyo kiralamanızı veya bir proje stüdyosuna sahip ses hobisi olan birisini bulmanızı şiddetle tavsiye ederiz. Size ses kaydetmenin inceliklerini gösterecek profesyonel bir mühendis veya ses hobisine sahip birisiyle bize en iyi kalitede materyali sağlayabilirsiniz.
Esas sesinizi mono kullanarak tam çözünürlük formatında (WAV veya AIF gibi) en az 16 bit derinliğinde ve 44.1hkz örnek hızında kaydetmelisiniz. Spikerinizin kaydı tamamlandığında materyalinizi düzenlemeye başlayarak gözden kaçırdığınız sert patlamaları veya bozulmuş çıkışları yeniden kaydetmeniz veya tamamen kaldırmanız gerekebilir. Mühendislik amaçlı lütfen her bir kaydın her iki ucuna çeyrek saniyelik çevre sesi uygulayın.
Eğer gönderiminiz kabul edilirse, yüksek çözünürlüklü orijinal dosyalar için sizinle iletişine geçeceğiz. Fakat, genel olarak taşınması ve üzerinde çalışılması adına ilk atölye gönderiminizin boyutunu düşürmek için yüklemeden önce SoundForge veya iTunes gibi programları kullanarak ses dosyalarınızı .MP3 formatına değiştirebilirsiniz.
Derlediğiniz sesi ve olay tetikleyicisini gösteren tabloyu oyun istemcisinden bir atölye öğesi olarak paketleyin ve gönderin.
Dosyalarınızın ses kaydını yaptıktan ve işledikten sonra hangi dosyanın hangi olay gerçekleştiğinde devreye gireceğini gösterecek bir tabloyu doldurmanız gerekmektedir. Örneğin buradaki örnekte "announcer_battle_begin_02 " dosyasının "game start" borusu çaldıktan sonra yürütüleceğini gösterir.
A | B | C | D |
announcer_battle_begin_02 | The battle begins! | Custom | IsGameStart |
NOT: Özel birkaç durumla (tamamlayıcı, canlanma ve satın alım), bütün replikler C sütunundaki "Özel" bölümü olan bir spiker tarafından tetiklenir.
Aynı olay için birden fazla replik belirtebilirsiniz. Mesela Dr. Kleiner spiker örneğinde olduğu gibi:
announcer_fort_rad_01 | I've never seen Radiant's structures looking so fortified. | Custom | GlyphUsedGood |
announcer_fort_rad_02 | Radiant's structures are beautifully fortified. | Custom | GlyphUsedGood |
announcer_fort_rad_03 | Radiant's structures are fortified. | Custom | GlyphUsedGood |
announcer_fort_rad_04 | Radiant's structures are fortified. There appears to be some sort of magic at work. | Custom | GlyphUsedGood |
Yukarıdaki durumda oyun Radiant takımı ("iyi") kuvvetlendirme kalkanını kullandığında announcer_fort_rad_01, announcer_fort_rad_02, announcer_fort_rad_03 veya announcer_fort_rad_04 arasından bir replik seçecektir. Birden fazla replik aynı ölçütteyse aynı olay için alternatif replikler olarak değerlendirilecektir.
Bazı durumlarda D sütunundaki tabloda birden fazla ölçüt bulunmaktadır. Bu ölçütler birlikte hangi repliğin olaya tepki olarak bölümdekilerin sadece tamamı gerçekleşirse yürütüleceğini gösterir. Ayrıca kısmi eşleşmeler olduğunda sistem, ölçütle hangi satırın daha fazla eşleştiğine bağlı olarak seçecektir. Aşağıdaki örnekte, announcer_rax_fall_yr_top şu olayların tamamı gerçekleştiğinde yürütülecektir: bir kule yıkıldığında, üst kulvarda olduğunda ve "yıkılma" kuleyi reddetme sonucu gerçekleşmemişse.
announcer_twr_fall_yr_top | Your top tower has fallen. | Custom | IsTowerKilled IsTopLane IsNotDeny |
Bazı seçmeli ölçütler D sütununa ileride hangi repliğin yürütülmesini belirtmek için eklenebilir. Örneğin; IsSpectator'ı sadece izleyiciler için yürütülecek repliği belirlemek için kullanabilirsiniz.
announcer_rax_attack_dire_bot | Dire's bottom barracks are under attack. | Custom | IsBarracksAttacked IsBadAttacked IsSpectator IsBotLane |
Bazı olay türleri isteğe bağlı olarak diğer olay replikleri yürütüldükten sonra "tamamlayıcı" replikler olarak yürütülür.
announcer_followup_generic_01 | Bet that hurt! | Followup_Generic | (nothing in column D) |
Tamamlayıcı türünün C sütununda belirtildiğini unutmayın. Tamamlayıcılar, herhangi bir tür olaydan sonra gerçekleşecek şekilde veya belirli olaylar için türüne özgü bir olay olarak düzenlenebilir. Bu tamamlayıcının D sütununda hiçbir şey olmadığı için, türüne özgü bir tamamlayıcı repliğin çağırıldığı tüm durumlarda kullanılmak üzere replik havuzuna eklenecek. Bu şekilde, "kurye öldürüldü" bölümünü ve tamamlayıcı bölümleri birbirinden ayrı şekilde kaydedip tanımlayarak daha fazla repliği birbiriyle eşleştirip kullanabilirsiniz, örneğin: "Radiant Takımı'nın Kuryesi öldürüldü... Ne kadar yazık, savunmasız kurye!"
announcer_courier_rad_dead_01 | Radiant’s Courier has been killed. | Custom | CourierLostGood |
announcer_courier_dire_dead_01 | Dire’s Courier has been killed. | Custom | CourierLostBad |
announcer_courier_followup_01 | That poor, defenseless courier! | Followup_Generic | CourierLostGood Chance_25% |
announcer_courier_followup_01 | That poor, defenseless courier! | Followup_Generic | CourierLostBad Chance_25% |
Tamamlayıcı repliğin türüne özgü olmasına rağmen, belirli bir olaya ait olacak şekilde düzenlenmiş öncelikli replikle aynı olay kriterlerine sahip olacağını unutmayın. Bu, replik olayının spiker paketindeki diğer tamamlayıcılarla birlikte türüne özgü bir havuza yerleştirileceği anlamına geliyor, buna rağmen belirlenen görüntü sadece Radiant takımının kuryesi öldürüldüğünde oynatılacak.
Buna ek olarak, yukarıdaki tamamlayıcı örneği %25_Şans kriterine sahiptir. Her replik oynatılıdığında, 1 ile 100 arasında bir sayı seçilir. Seçilen sayı belirlenen şans yüzdesine eşit veya ondan küçükse Şans kriteri sağlanır. Ses sistemimiz her zaman kriterin en yüksek sayısıyla eşleşen repliği oynatacağı için, bir kurye öldürüldüyse ve seçilen sayı 25'e eşit veya ondan küçükse, yukarıdaki örneğin sonucu olarak announcer_courier_followup_01 sesi her zaman oynatılacaktır. Belirli olayları Şans kriteri ile birleştirmek, türüne özgü tamamlayıcılar ile olaya özgü tamamlayıcıları birleştirmenin bir yoludur.
Ayrıca, announcer_courier_followup_01 repliğinin CourierLostGood ("Radiant") ve CourierLostBad ("Dire") olaylarının her ikisi için de düzenlendiğini unutmayın. Tek bir replik istediğiniz kadar çok belirli olay için kullanılabilir. Eğer birbirini engelleyen birkaç olay için bir replik atamak istiyorsanız, her bir olayın tetikleyicisi ayrı ayrı düzenlenmelidir.
Son olarak, zamanlama değiştiricileri ve olay repliklerine tamamlayıcı repliklere ulaşmak için rehberlik eden bağlantılar E sütununda görüntülenecektir. Yukarıdaki örnekleri genişletmek için:
A | B | C | D | E |
announcer_courier_rad_dead_01 | Radiant’s Courier has been killed. | Custom | CourierLostGood | respeakdelay 35 then self TLK_DOTA_FOLLOWUP_GENERIC foo:0 9 |
announcer_courier_followup_01 | That poor, defenseless courier! | Followup_Generic | CourierLostGood Chance_25% | speakonce |
Bu genişletilmiş örneklerde E sütununda gösterilecek üç farklı değiştirici türü bulunuyor:
respeakdelay 35 | Bunun anlamı, belirli bir replik oynatıldıktan sonra, ayarlanan zaman aralığı boyunca tekrar oynatılamayacağıdır, bu örnekte zaman aralığı 35 saniye. |
speakonce | Bunun anlamı, replik oynatıldıktan sonra, maç boyunca tekrar oynatılmayacağıdır. |
then self TLK_DOTA_FOLLOWUP_GENERIC foo:0 9 | Bu tek bir işlemdir. Sondaki sayı tamamlayıcı oynatılmaya başlanmadan önce kaç saniye bekleneceğini gösterecek şekilde, daha sonra hangi tamamlayıcı türüne geçiş yapılacağını belirler(bu örnek için "TLK_DOTA_FOLLOWUP_GENERIC"), bu örnekte 9 saniye. |
Her olay türü, dinleyicinin tekrarlanan bilgilerle rahatsız edilmesini engellemek için belirlenmiş doğal bir tekrarlanma gecikmesine sahiptir. Yani, repliklerin çoğunda zamanlama değiştiricisi bulunmasına gerek yoktur.
Diğer tamamlayıcı tasarımları TLK_DOTA_FOLLOWUP_POSITIVE (dinleyici için iyi bir şekilde sonlanan olayları takip etmek üzere yapılmış), TLK_DOTA_FOLLOWUP_NEGATIVE (dinleyici için kötü bir şekilde sonlanan olayları takip etmek üzere yapılmış) ve TLK_DOTA_FOLLOWUP_NEGATIVE_ONGOING (şu anda gerçekleşmekte olan bir olayın repliklerini takip etmek ve dinleyicinin bu konuyla ilgili bilgilendirilmesi amacıyla yapılmış, örneğin "Fırtına bulutları toplanıyor") gibi tamamlayıcıları içeriyor.
Spiker etkinliğinizi oluşturmaya hazır olduğunuzda lütfen şu sayfaya göz atın: Olay Tetikleyicileri Listesi, Örnek Spiker Çalışma Tablosu, Örnek Yardırıyor Serisi Spiker Çalışma Tablosu kısmını daha fazla bilgi ve örnek için incelemek isteyebilirsiniz. Ayrıca isterseniz Bastion Spiker Çalışma Tablosu ve Bastion Yardırıyor Serisi Spiker Çalışma Tablosu bölümlerine bakarak Spikerlerin satırlarının ve tetiklenmesinin nasıl kullanıldığı ve birleştirildiği hakkında daha fazla örnek bulabilirsiniz.