Metlivi Blog

Retro Tarzı Bir Oyunda Diyalog Satırları Arasında Karakter İfadesi Nasıl Değiştirilir?

Diyalog satırları arasında bir karakterin ifadesini değiştirmek için her ifadeye uygun bir sprite hazırlayın, ardından karakterin görüntülenen görselini o ifadenin kullanıldığı satırdan hemen önce değiştirin. Sahneyi bozmadan yüz ifadesindeki değişimin net bir şekilde anlaşılabilmesi için sprite'ın konumunu ve genel silüetini tutarlı tutun. Ren’Py'da en basit yöntem, her ifadeye aynı görsel etiketini (image tag) vermek ve yeni bir ifade niteliğiyle (expression attribute) tekrar show komutunu kullanmaktır; komutlar farklı olsa da bu sıra kavramsal olarak diğer oyun motorlarında da aynı şekilde işler.

15 Ekim 20266 dk okuma süresiYazan: Metlivi Editorial Team
Bölüm 1

Değişikliği neyin tetiklemesi gerektiğine karar verin

Sprite sayfasından (sprite sheet) değil, diyalog senaryosundan başlayın. Yalnızca karakterin ifadesinin oyuncunun fark etmesi gereken bir şekilde değiştiği satırları işaretleyin: yeni bir tepki, ses tonunda bir değişim veya nötr duruma dönüş. Yüz her satırda değişirse ifade fazla bir anlam taşımamaya başlar ve çizim iş yükü hızla artar.

İşaretlenen her satır için hedeflenen ifadeyi ve bunu gösterecek sprite varlığını (asset) not edin. Nötr, mutlu, endişeli ve şaşırmış gibi küçük bir set birçok sahneyi karşılayabilir. Yalnızca belirli bir sahne gerektirdiğinde varyantlar ekleyin. Bu bir oyun motoru kuralı değil, editoryal bir tercihtir: doğru set, oyunun görsel tarzına ve diyaloglarına bağlıdır.

Bölüm 2

Sorunsuz geçiş yapan ifade sprite'ları hazırlayın

Her ifade için aynı karakter çerçevelemesini, ölçeğini ve referans noktasını (anchor point) kullanın. Her görsel eksiksiz bir sprite ise, görseli değiştirdiğinizde karakterin sıçrıyor gibi görünmemesi için gözleri, başı ve gövdeyi tüm dosyalarda aynı hizaya getirin. Sprite'ın bir sahnenin üzerinde durması gerektiğinde arka planı şeffaf tutun.

Piksel sanatı (pixel art) için görselleri oyunun gerçek ekran ölçeğinde inceleyin. Sprite'lar değiştiğinde bir piksellik bir kayma bile göze batabilir ve yeniden ölçeklendirme piksel ızgarasını yumuşatabilir veya bozabilir. Her ifadeyi aynı boyutlarda dışa aktarmayı ve tutarlı filtreleme ve ölçeklendirme ayarlarıyla içe aktarmayı tercih edin. Bunlar pratik üretim kontrolleridir; kesin ayarlar motora ve projeye bağlıdır.

mira neutral ve mira worried gibi tahmin edilebilir dosya veya görsel adları seçin. Ren’Py'da görsel adları, bir etiketin ardından gelen isteğe bağlı niteliklerden oluşur; etiket, yeni bir show komutunun yerini alabileceği karakter görselini tanımlar. Ren’Py görsel belgeleri bu adlandırma ve değiştirme davranışını açıklar.

Bölüm 3

Ren’Py'da ifadeleri değiştirme

Konuşmacıyı bir görsel etiketiyle tanımlayın, ardından diyalog satırlarında ifade niteliklerini kullanın. Örneğin:

define m = Character("Mira", image="mira")

label scene:
    show mira neutral
    m "The door is open."

    m worried "I thought I locked it."

    m "Maybe the wind caught it."

Burada mira görsel etiketi, neutral veya worried ise niteliktir. Endişeli ifadeyi içeren satır, ekrandaki karakter görselini günceller; sonraki satır ise yeni bir nitelik belirtilmediği için bu ifadeyi korur. Senaryonun karakteri açıkça nötr duruma döndürmesi gerekiyorsa, o son satıra m neutral "..." ekleyin. Ren’Py diyalog belgeleri, bir görsel etiketiyle tanımlanan bir karakterin say (konuşma) ifadesinde görsel nitelikleri alabileceğini ve bu niteliklerin görsel zaten ekrandayken ilgili show komutu gibi davrandığını açıklamaktadır. Ren’Py diyalog ve görsel nitelikleri

Karakterin tam sprite'ının ekranda görünmesini istemiyorsanız aynı mantığı diyalog arayüzündeki bir portre ögesiyle uygulayın. Oyun motorunun hâlâ mevcut konuşmacıyı ve ifadeyi bir görselle eşleştirmesi gerekir; bir portre arayüzü farklı bir adlandırma kuralı veya veri yapısı kullanabilir. Ren’Py sözdizimini başka bir motora uyarlamadan önce seçtiğiniz çatının belgelerini kontrol edin.

Bölüm 4

Anında geçiş veya geçiş efekti seçin

Anında geçiş, net bir retro sunuma uygundur ve ifade değişikliğinin satırla sıkı bir şekilde bağlantılı kalmasını sağlar. Bir geçiş efekti değişimi yumuşatabilir, ancak bunu yalnızca oyunun görsel stili destekliyorsa kullanın. Hızlı bir dissolve (kararma/çözünme) efekti değişimin daha az ani hissedilmesini sağlayabilir; uzun bir efekt ise yeni ifadenin algılanma anını geciktirebilir.

Ren’Py, görsel değişikliklerinde dissolve gibi geçişleri destekler. Örneğin, show mira worried with dissolve, görüntülenen görseli değiştirirken bir dissolve efekti uygular. Belgelerde belirtilen varsayılan dissolve süresi yarım saniyedir ve bu, hızlı diyaloglar için yavaş kalabilir; tempoyu sahne içinde test edin ve gerekirse daha kısa özel bir süre belirleyin. Ren’Py geçiş belgeleri

Piksel sanatı için, geçiş efektini oyunun hedeflenen çözünürlüğünde doğrudan geçişle karşılaştırın. Dissolve efekti, değişim sırasında eski ve yeni pikselleri birbirine karıştırır; bu da kasıtlı olarak aşamalı veya anlık bir değişikliğe kıyasla yumuşak görünebilir. Bu, otomatik olarak eklenmesi gereken bir efekt olmaktan ziyade, çalışan bir sahnede doğrulanması gereken bir stil kararıdır.

Bölüm 5

Yüz değişirken sprite'ı sabit tutun

Daha fazla çizim eklemeden önce, ifade değişiminin hedeflenen özellik dışında herhangi bir şeyi değiştirip değiştirmediğini kontrol edin. Sprite konumu, ölçeği ve silüeti için ardışık kareleri veya ekran görüntülerini karşılaştırın. Karakter titriyor veya seğiriyor gibi görünüyorsa, kaynak görselleri hizalayın veya oyun motorundaki ortak pivot ya da orijin noktalarını düzeltin.

Ayrıca katmanları ve diyalog zamanlamasını da kontrol edin. Bir sprite geçişi yanlışlıkla arka planı silmemeli, karakteri başka bir görselin arkasına taşımamalı veya yeni satır görünmeden önce oyuncunun fazladan bir tuşa basmasını gerektirmemelidir. Ren’Py'da show, aynı etikete sahip bir görselin yerini alır; hide ise genellikle bir karakter sahneden ayrıldığında kullanılır. Belgeler, sprite'ı ayrı adımlarda gizleyip göstermek yerine duygusal bir ifadeyi show ile değiştirmeyi özellikle önerir. Ren’Py görsel görüntüleme kuralları

Bölüm 6

Değişikliği gerçek diyalog akışında kontrol edin

Sahneyi ilk değişiklikten en az bir satır öncesinden bir sonraki ifade değişikliğine kadar oynatın. Yüzün hedeflenen satırda güncellendiğini, sonrasında istendiği gibi kaldığını ve yalnızca senaryoda belirtildiğinde nötr duruma döndüğünü doğrulayın. Kararsız kaldıysanız hem anında geçişi hem de efektli versiyonları test edin.

Akışı oyunun hedef çözünürlüğünde ve diyalog kutusu görünür durumdayken inceleyin. Yüzün kapanmadığından, kırpılmadığından veya okunamayacak kadar küçük olmadığından emin olun. Değişiklik yanlış görünüyorsa şu sırayla teşhis edin: senaryodaki ifade adını doğrulayın, eşleşen görselin var olduğunu ve motor tarafından tanındığını onaylayın, ardından hizalama ve geçiş davranışını kontrol edin. Bu sıra, eksik bir varlık veya adlandırma uyumsuzluğu sorununu çizim yerleşimi sorunundan ayırır.

Tamamlanan kurulum her değişikliği amaca uygun hale getirmelidir: senaryo ifadeyi belirtir, eşleşen sprite karakterin yerleşimini korur ve kısa bir deneme oynanışı değişimin diyalog hızında algılandığını doğrular.

Bölüm 7

Kaynaklar

İlgili okumalar

Bu konuyu keşfetmeye devam et