Metlivi Blog

Bir NPC Senaryo Dışındaki Soruları Nasıl Yanıtlamalıdır?

Bir oyuncu bir NPC'ye diyalog senaryosunun kapsamadığı bir şey sorduğunda, karaktere bildikleriyle ve neden daha fazlasını yanıtlayamayacağıyla uyumlu kısa bir yanıt verin. İlk olarak bilginin bilinmiyor mu, biliniyor ama gizli mi, yoksa kasten erişilemez mi olduğuna karar verin. Ardından karaktere uygun şekilde yanıt verin; oyunun bir sistem sınırını açıklaması gerekiyorsa, ayrı ve isteğe bağlı bir açıklama ekleyin. Bu, desteklenmeyen bir tahmini hikaye gerçeğine dönüştürmeden oyuncunun sınırı anlamasını sağlar.

27 Eylül 20268 dk okumaOkuma, sanat ve kültürYazan: Metlivi Editorial Team
Bölüm 1

Yalnızca eksik diyaloğu değil, önce soruyu sınıflandırın

“Senaryo dışı”, yazarlık aşamasındaki boşluğu tanımlar. Karakterin ne bildiğini söylemez. Desteklenmeyen her soruyu aynı türden bir hata olarak ele almak kafa karıştırıcı yanıtlara yol açar: Bir NPC adını hiç duymadığı bir şey hakkında kaçamak konuşuyormuş gibi görünebilir veya oyunun koruması gereken bir sırrı yanlışlıkla açığa vurabilir.

Üç kategori kullanın:

**Bilinmeyen:** Karakterin elinde güvenilir bir bilgi yoktur. Konuyu tanımayabilir veya konunun var olduğunu bilse de belirli soruya verecek bir yanıtı olmayabilir.

**Bilinen ancak gizli:** Karakter ilgili bilgiyi bilir; ancak bir hikaye koşulu, ilişki, kişisel tercih veya açık bir sır, bunu şu anda paylaşmasını engeller. “Gizli”, bir hikaye durumudur; her reddedişin bir ipucu gizlediğini ima etmeye yönelik bir davet değildir.

**İzin verilmeyen bilgi:** Yanıt, karakterin yerleşik dünyasının, rolünün veya izin verilen bilgisinin dışındadır. Örneğin orta çağdan bir kayıkçı, aniden gerçek dünyadaki bir yazılım sürümünü açıklamamalıdır. Bu durum, yerel bir sırrı bilen ancak paylaşmayan bir karakterden farklıdır.

Bu kategoriler bir tasarım yardımcısıdır; alıntılanan diyalog çalışmalarınca doğrulanmış bir taksonomi değildir. Değerleri pratiktir: Her biri farklı bir doğru yanıta işaret eder. Oyununuz bir karaktere büyü, gözetleme veya alışılmadık bir rol aracılığıyla kasıtlı olarak bilgi veriyorsa, bunu yanıt oluşturucunun tahmin edebileceği bir istisna olarak ele almak yerine karakterin izin verilen bilgisine kodlayın.

Bölüm 2

Doğru olandan zarif bir yanıt inşa edin

Kullanışlı bir yedek yanıt genellikle üç bölümden oluşur: konuyu kabul etmek, karakterin gerçek sınırını belirtmek ve mevcut olduğunda ilgili bir sonraki adımı sunmak. Bir sonraki adım, oyunda zaten yerleşik olan bir kişi, yer veya eylem olabilir. Hiçbiri yoksa sınırdan sonra durun. Sırf repliğin yardımcı hissettirmesi için bir yönlendirme uydurmayın.

Örneğin, oyuncunun kasabadaki bir fırıncıya “Kuzey geçidinin ötesinde ne var?” diye sorduğunu varsayalım. Fırıncı oraya hiç gitmediyse, ayakları yere basan bir yanıt şöyle olabilir: “O kadar kuzeye hiç gitmedim. Benim unum vadiden gelir.” Bu yanıt karakterde kalır, sınırı belirtir ve fırıncının deneyimi dahilindeki bir şeye geri döner. Un detayı açıklayıcıdır, bir ipucu değildir; piyasaya sürülen bir oyunda, karakter ve ortam tarafından zaten desteklenen bir ayrıntı kullanın.

Fırıncı biliyor ancak bilgiyi saklıyorsa, yanıt cehalet iddia etmek yerine bu durumu yansıtmalıdır: “Hangi yoldan bahsettiğini biliyorum. Onu kimin kullandığı hakkında konuşmayacağıma söz verdim.” Bu replik, gizli yanıtı vermeden bir sınır bildirir. Bu tür bir reddi yalnızca karakterin bilgisi ve sessizlik nedeni oyun durumunda gerçek olduğunda kullanın.

Soru, karakterin dünyasının veya rolünün dışındaki bir şeyi soruyorsa, sınırı bir olay örgüsü gizemiymiş gibi göstermeden anlaşılır kılın: “‘Bulut sunucusu’ nedir bilmem. Bir çeşit hava durumu istasyonu mu?” Belirli ifadeler ortama ve tona bağlıdır. Bir modelin genel bilgisinin, sanki yaşanmış veya dünyevi bir bilgiymiş gibi karakterin sesine sızmasına izin vermekten kaçının.

Araştırmalar garantili bir oyun çözümünü değil, genel tasarım sorununu desteklemektedir. Shrivastava ve meslektaşlarının 2021 ACL Kısa Makalesi, diyalog sistemlerindeki yanıtlanamaz diyalog sorguları için kuralları ve sentetik soru-yanıt çiftleri üzerinde ince ayar yapılmış bir transformer'ı kullanarak bağlamsallaştırılmış yedek yanıtları açıklar; kapsamı anlatısal oyun NPC'leri değildir. [Makaleyi okuyun](https://aclanthology.org/2021.acl-short.13/). Sadeq ve meslektaşlarının 2024 EMNLP Bulguları makalesi, 2.000'den fazla karakter ve 18.000 çekişmeli soru içeren 72.000 mülakattan oluşan bir veri kümesi sunarak kurgusal karakter rol yapmasını inceler ve halüsinasyonu azaltmak için RoleFact'i önerir. Karakter bilgi sınırlarıyla ilgilidir, ancak piyasaya sürülen bir oyunda belirli bir yedek modelin işe yaradığını ortaya koymaz. [Makaleyi okuyun](https://aclanthology.org/2024.findings-emnlp.846/).

Bölüm 3

Karakterin yanıtını sistem açıklamasından ayrı tutun

Arayüz ne olduğunu açıklarken bir karakter dünya içinde kalarak yanıt verebilir. Bu ayrım, oyuncuların bir yedek yanıtı yazılmış bir diyalogla karıştırabileceği durumlarda veya oyunun serbest biçimli soruların sınırları olduğunu açıklığa kavuşturması gerektiğinde yardımcı olur.

Örneğin:

**NPC:** “Oranın adını hiç duymadım. Bana eski değirmeni sor.”

**İsteğe bağlı arayüz notu:** “Bu karakterin bu soru için bir yanıtı yok.”

Arayüz notu etkileşimi tanımlamalı, karakterin önüne geçmemeli veya gizli içeriğe işaret etmemelidir. Mümkün olduğunda isteğe bağlı veya göze çarpmayan bir şekilde tutun; tekrarlanan sistem mesajları bir sahneyi bölebilir. Oyuncunun sorusu anlaşılmış ancak desteklenen etkileşimin dışındaysa, bunu açıkça belirtin. Sistem soruyu anlamadıysa, bu hatayı karakterin bilgisiyle ilgili bir gerçek olarak sunmayın. Bunlar ayrı durumlardır ve ayrı ifadelere ihtiyaç duyabilir.

Pratik bir yanıt kuralı şudur: Hikaye gerçeği için karakterin sesini, etkileşim sınırları için ise arayüzü kullanın. Karakter içi bir repliğe, karakterin bilemeyeceği teknik bir açıklamayı yüklemeyin. Tersine, kısa ve doğru bir karakter yanıtı mevcut olduğunda genel bir sistem mesajı kullanmayın.

Bölüm 4

Bilgiyi ve hikaye durumunu bir sınır matrisi ile test edin

Tek bir örnek, yedek yanıtın durumu gözetip gözetmediğini ortaya koyamaz. Her önemli NPC veya bilgi kaynağı için küçük bir test matrisi oluşturun. Her satır için beklenen yanıt kategorisini, gerekli gerçekleri, yasak gerçekleri ve bir arayüz açıklamasının görünüp görünmeyeceğini kaydedin. Ardından aynı soruyu değişen koşullar altında çalıştırın.

**NPC'nin konu hakkında hiçbir bilgisi yok:** Yanıt bir aşinalık iddia etmez veya ayrıntı vermez. Belirsizliği veya deneyim eksikliğini karakterin sesiyle belirtin

**NPC konuyu biliyor ancak istenen ayrıntıyı bilmiyor:** Genel bilgi kesin bir yanıta dönüşmez. Neyin bilindiğini söyleyin, ardından belirli boşluğu işaretleyin

**NPC yanıtı biliyor ve paylaşabilir:** Yanıt mevcut hikaye gerçekleriyle eşleşir. Desteklenen yanıtı verin; sırf ifade biçimi alışılmadık diye yedek yanıta geçmeyin

**NPC yanıtı biliyor ancak bir gizlilik koşulu aktif:** Sır açıklanmadan kalır ve karaktere yönelik özel bir amaç yoksa karakter asılsız yere cehalet iddia etmez. Karakterizasyonla tutarlı bir şekilde reddedin, geçiştirin veya sınırı adlandırın

**Gizlilik koşulu devre dışı kalır:** Hikaye durumu ifşaya izin verdiğinde yanıt değişir. Oyuncu tekrar sorarsa veya oyun bunu başka bir şekilde açığa çıkarırsa yeni edinilen bilgiyi sağlayın

**Soru karakterin dünyasının veya rolünün dışındadır:** Gerçek dünya veya konu dışı model bilgisi kurguya bir gerçek olarak girmez. Dünya içinde uydurma bir bağlantı kurmadan kategoriyi yabancı veya alakasız olarak işaretleyin

**Diyalog sistemi soruyu yorumlayamıyor:** Bir ayrıştırma hatası NPC'nin cehaletiyle karıştırılmaz. İsteğe bağlı olarak desteklenen bir yönlendirmeyle birlikte etkileşim düzeyinde net bir yedek yanıt kullanın

**Aynı soru birkaç farklı şekilde ifade edilir:** Bilgi ve gizlilik kuralları ezberlenmiş tek bir ifadeye bağlı değildir. İfadede doğal varyasyonlara izin verirken aynı olgusal sınırı koruyun

Bu matris, yukarıdaki ayrımlardan türetilmiş bir editöryal ve kalite kontrol (QA) yöntemidir; atıfta bulunulan iki makalenin de bildirdiği bir deney değildir. Bunu kendi karakter gerçekleriniz ve fiili durum koşullarınızla doldurun. NPC'nin yanıtlaması gereken sıradan soruların yanı sıra sistemi makul ancak desteklenmeyen bir evren bilgisiyle örüntüyü tamamlamaya iten soruları da dahil edin. Her iki tarafı da doğrulayın: Yanlış ifşaları önlemek önemlidir, yanıt mevcut olduğunda gereksiz retlerden kaçınmak da öyle.

Bölüm 5

Sınırı metinde ve uygulamada test edilebilir hale getirin

Karakter bilgisini dünya gerçeğinden ayrı tutun. Kompakt bir karakter kaydı; bildikleri gerçekleri, şüphelendikleri gerçekleri, bilmedikleri gerçekleri ve bir koşul değişene kadar ifşa edemeyecekleri gerçekleri işaretleyebilir. Oyun hatalı karakterlere izin veriyorsa, kesin olmayan inançlar için kaynağı veya güven düzeyini dahil edin. Bir şüphe, her şeyi bilen bir gerçek gibi değil, bir şüphe gibi duyulmalıdır. Yanıt katmanı ilgili durumu almalı ve yalnızca o durumda izin verilen gerçekleri kullanmalıdır.

Her yedek replik veya oluşturulan yanıt için şunları sorun:

Karakterin bilmesine izin verilmeyen bir gerçeği söylüyor veya ima ediyor mu?

“Bilmiyorum” ile “Sana söylemeyeceğim”i birbirine karıştırıyor mu?

Eksik yanıtı yanlışlıkla bir sır veya görev başlangıcı gibi hissettiriyor mu?

Önerilen herhangi bir sonraki adım oyunda zaten mevcut mu ve bu duruma uyuyor mu?

Soru etkileşim sistemi tarafından desteklenmiyorsa, oyuncu bunu bir hikaye diyaloğu sanmadan arayüzden anlayabiliyor mu?

Bir replik bu kontrollerden birinde başarısız olursa, onu daraltın: Desteklenmeyen imayı kaldırın, gerçek sınırı belirtin ve yalnızca yerleşik bir sonraki adımı koruyun. Değer katan doğru bir karakter içi yanıt yoksa, kısa bir ret veya sistem notu, uydurulmuş bir evren bilgisinden daha iyidir.

Bölüm 6

Basit bir karar sırası

Senaryo dışı bir soruyu incelerken bu kontrolleri sırasıyla uygulayın:

**Oyun soruyu yorumlayabiliyor mu?** Yanıt hayırsa, NPC'ye cehalet atfetmek yerine etkileşim düzeyinde bir açıklama kullanın.

**İstenen bilgi bu karakterin bilgisi dahilinde mi?** Yanıt hayırsa, karakterin deneyimine veya rolüne uyan karakter içi bir sınır çizin.

**Karakter bunu biliyor mu ve şu anda ifşa edilmesine izin veriliyor mu?** Karakter biliyor ancak ifşa edemiyorsa, sınırı motifi ve durumuyla tutarlı hale getirin; bu ipuçları amaçlanmadığı sürece yanıtı ipuçlarıyla sızdırmayın.

**Karakter desteklenen kısmi bir yanıt veya faydalı bir sonraki adım sağlayabilir mi?** Yalnızca oyunda zaten temellendirilmişse bunu dahil edin.

**Oyuncu yedek yanıtı bir ipucu veya yazılmış bir olay örgüsü anı sanabilir mi?** Yanıt evetse, etkileşimi sistem düzeyinde netleştirin veya repliği gözden geçirin.

Amaç her sorunun tatmin edici bir evren bilgisi ifşası üretmesini sağlamak değildir. Yanıtın anlaşılır olmasını, karakterin bilgisiyle tutarlı kalmasını ve oyunun hikaye durumu açısından güvenli olmasını sağlamaktır. İyi tasarlanmış bir sınır, kurguyu bozmadan bu NPC'nin şu anda neyi yanıtlayabileceğini oyuncuya bildirir.

İlgili okumalar

Bu konuyu keşfetmeye devam et