Metlivi Blog

Bir Dekorasyon Oyununda Izgaraya Hizalama ve Serbest Döndürme Nasıl Birleştirilir?

Bir dekorasyon oyunu için ızgaraya hizalamayı güvenilir bir varsayılan haline getirin ve serbest döndürmeyi aynı derecede görünür, kolayca erişilebilir bir seçenek olarak sunun. Oyuncuların mevcut konumlarını kaybetmeden yerleştirme hassasiyetini değiştirmelerine izin verin, sonucu canlı bir önizlemede gösterin, bir yerleştirmenin neden engellendiğini açıklayın ve onaylanan her yerleştirmeyi geri alınabilir yapın. Bu, oyuncuya mobilyaları sıraya dizmek için basit bir yol, bir sandalyeyi veya bitkiyi kompozisyona uyacak şekilde döndürmek için ise hassas bir yöntem sunar.

30 Eylül 20266 min readBoş zaman, seyahat ve şehir deneyimleriYazan: Metlivi Editorial Team
Bölüm 1

Oyunculara net ve geri alınabilir kontrol modları sunun

Bir oyuncu, bir nesnenin ızgaraya mı oturacağını yoksa imleci serbestçe mi takip edeceğini bir bakışta anlayabilmelidir. "Izgara" ve "Serbest" gibi kalıcı, etiketli bir geçiş düğmesi ya da yanında mod etiketi bulunan net bir hizalama simgesi kullanın. Bunu seçilen nesnenin veya yerleştirme kontrollerinin yakınında tutun ve aktif durumu yalnızca hafif bir renk değişikliğinden fazlasıyla gösterin; böylece farklı ekran boyutlarında ve renkleri kolayca ayırt edemeyen oyuncular için anlaşılır kalır.

Konum fikrini döndürme fikrinden ayırın. Bir oyuncu bir nesnenin tam olarak bir karo üzerine oturmasını ve bu sırada onu küçük bir miktarda döndürmeyi isteyebilir; bir başkası ise nesneyi merkezden uzaklaştırmak ama açısını hizalı tutmak isteyebilir. Ayrı konum ve döndürme hizalama kontrolleri, bu kombinasyonları tek bir genel "serbest mod"dan daha iyi destekler. Bu, Unity'nin ızgara kontrolleri ve Unreal Engine'in ayrı sürükleme ve döndürme ızgaraları gibi hareket ve döndürme artışlarını ayrı ayrı sunan düzenleyici araçlarından çıkarılan bir tasarım önerisidir (Unity: Scene view grid snapping; Unreal Engine: Actor Snapping).

Fare, klavye ve oyun kumandası arayüzlerinde aynı terimleri ve durumları kullanın. Bir değiştirici tuş hizalamayı geçici olarak devre dışı bırakıyorsa, bu değişikliği önizlemede ve mod etiketinde gösterin. Örneğin The Sims 4, kademeli döndürme ile serbest döndürmeyi birbirinden ayırır ve fare ile konsol için farklı girdi yöntemlerini belgeler (EA Help: How to rotate objects in The Sims 4). Özel kontrollerin başka bir oyunla birebir eşleşmesi gerekmez; tutarlılık ve görünür geri bildirim aktarılabilir derslerdir.

Bölüm 2

Nesneye ve göreve uygun döndürme adımları seçin

Kademeli döndürme, nesnelerin tekrarlanan, kasıtlı yönlere yerleşmesine yardımcı olur. Büyük mobilyalar, duvarlar ve kenarları genellikle bir odayla hizalanan eşyalar için iyi bir başlangıç davranışıdır. Küçük, anlaşılması kolay bir artış kümesi sunun ve oyuncular bir nesneyi seçtiğinde mevcut artışı görünür hale getirin. Tek bir açının her nesneye uyduğunu ima etmekten kaçının: Dikdörtgen mobilyalar için çeyrek tur döndürme uygun olabilirken, bir lamba veya dekoratif aksesuar için daha ince bir adım daha kullanışlı olabilir.

Serbest döndürme, bir oyuncu hafif bir açı istediğinde veya serbest bir kompozisyon düzenlediğinde yardımcı olur. Bunu açıkça belirtilmiş bir geçiş düğmesi veya geçici bir değiştirici tuş aracılığıyla erişilebilir kılın ve bilinen bir yöne hızla dönmenin bir yolunu sunun. Bir döndürme sıfırlama veya "en yakın adıma hizala" eylemi, serbest ayarlamanın tek yönlü bir çıkmaza dönüşmesini önler. Yerleşik modellere örnek olarak EA, The Sims 4'te serbest fareyle döndürmenin yanı sıra 45 derecelik kademeli döndürmeyi belgeler; Unity ve Unreal, düzenleyici iş akışlarında yapılandırılabilir döndürme adımlarını sunar. Bu örnekler evrensel bir ideal açıyı değil, seçenekleri gösterir (EA Help; Unity grid snapping; Unreal Engine Actor Snapping).

Bölüm 3

Bir sonraki soruyu yanıtlayan bir yerleştirme önizlemesi gösterin

Onaylamadan önce, nesnenin önerilen gerçek konumunda ve açısında yarı saydam veya dış hatları belirgin bir versiyonunu gösterin. Oyuncu öğeyi taşırken veya döndürürken bunu sürekli olarak güncelleyin. Özellikle modelin küçük bir merkezi pivot noktası olduğu ancak önemli miktarda zemin alanı kapladığı durumlarda, boyutunu iletmek için nesnenin taban alanını yeterince dahil edin. Yalnızca pivot noktasını gösteren bir önizleme, normalde net olan bir hizalamanın rastgele hissettirmesine neden olabilir.

Önizlemeyi yerleştirmeye izin verilip verilmediğini bildirmek için kullanın, ancak rengi bir simge, dış çizgi deseni veya kısa bir durum etiketi gibi ikinci bir ipucuyla eşleştirin. Öğe yerleştirilemiyorsa, uygulanabilir nedeni belirtin: "oda dışında", "masa tarafından engellendi" veya "bir yüzeyde değil". Oyun bir çakışmaya izin veriyorsa, bunu belirtin veya çakışmanın kasıtlı olduğunu gösterin. Önemli olan her çakışmayı yasaklamak değil; onay öncesinde oyunun kuralını okunabilir kılmaktır.

Izgara hizalaması, odayı ağır çizgilerle kaplamadan da görünür olabilir. Mevcut karoyu veya hizalama noktasını vurgulayın ve nesne bir duvarla, başka bir mobilyayla veya bir oda sınırı ile hizalandığında hizalama kılavuzlarını gösterin. Unity'nin belgeleri, özelleştirilebilir bir görsel ızgarayı ve en yakın ızgara konumuna hizalamayı tanımlar; bu, ızgara görünürlüğünü ve hizalama davranışını arayüzün ilişkili ancak ayarlanabilir parçaları olarak ele almayı destekler (Unity: Scene view grid snapping).

Bölüm 4

Çarpışma kurallarını öngörülebilir ve hoşgörülü yapın

Oynanış için hangi tür çakışmaların önemli olduğuna karar verin. Bir kanepenin bir duvardan veya kapı aralığından kaçınması gerekebilirken, bir minder, kitap veya masa üstü süsünün onu destekleyen yüzeyle çakışması beklenebilir. Her geometrik kesişimi eşit derecede geçersiz saymak yerine, yerleştirme kontrollerini nesne rolüne ve ilgili sınırlara göre tanımlayın. Bu bir tasarım çıkarımıdır, bir fizik motoru tarafından dayatılan bir kural değildir: Çarpışma sistemleri farklı tepkileri ayırt eder ve nesne sınırları farklı şekillerde temsil edilebilir. Örneğin Unity'nin çarpıştırıcı (collider) belgeleri, çarpıştırıcıları fiziksel etkileşimler ve algılama için kullanılan, bir nesneye uyacak şekilde seçilebilen şekillere sahip sınırlar olarak tanımlar (Unity: Collider components).

Bir öğe engellendiğinde, oyuncunun önizlemedeki seçtiği konumu ve açısını koruyun, böylece baştan başlamak yerine küçük bir düzeltme yapabilirler. Öğeyi sessizce başka bir yere itmek yerine okunabilir bir engellenme durumunu tercih edin. Yakındaki geçerli bir yerleşim kolaylık olarak sunuluyorsa, önerilen ayarlamayı gösterin ve oyuncunun bunu kabul etmesine izin verin. Bu, sonucun oyuncunun kontrolünde kalmasını sağlar ve çarpışma davranışının öğrenilmesini kolaylaştırır.

Bölüm 5

Onaylama ve geri almayı tek bir yerleştirme akışı olarak ele alın

Önizlemeyi kesinleştirmeden ayırın: Yerleştirilmemiş bir öğeyi taşımak veya döndürmek odayı kalıcı olarak değiştirmemelidir ve net bir onaylama eylemi onu yerleştirmelidir. Önceki duruma dönmek için iptal etme seçeneği sunun. Onaylamanın ardından geri almayı hemen kullanılabilir hale getirin ve mümkün olduğunda geri alma etiketinde eylemi açıklayın; örneğin "Geri al: lambader yerleştir". Roblox'un başlangıç seviyesi inşa kılavuzu, istenmeyen bir hareketi doğrudan Ctrl+Z veya Command+Z ile ilişkilendirerek doğrudan bir telafi yolunun değerini gösterir (Roblox Creator Documentation: Snap to Grid).

Geri alma işlemi, oyuncuların bu değerleri ayrı ayrı düzeltmesini gerektirmek yerine, konumu ve döndürmesi dahil olmak üzere onaylanan yerleştirmenin veya hareketin tamamını tersine çevirmelidir. Bir oyuncu onaylanmamış bir önizlemeyi ayarlamaya devam ediyorsa, geri alma işlemi beklenmedik şekilde daha önceki bir oda düzenlemesini geri sarmamalıdır. Oyun kumandasında klavye kısayollarını varsaymak yerine, geri alma ve iptal etme işlemlerini keşfedilebilir düğmeler veya istemler aracılığıyla sunun. Yineleme (redo), geri alma kazara yapıldığında kullanışlıdır ancak acil kurtarma eylemine kıyasla ikincil kalmalıdır.

Bölüm 6

Bir öğeyi yerleştirmek için pratik bir sıra

Net bir etkileşim şu sırayı takip edebilir: bir öğe seçin; önizlemesini odaya taşıyın; güvenilir bir başlangıç noktası için ızgaraya hizalamayı kullanın; döndürmeyi adımlarla ayarlayın; yalnızca kompozisyon daha ince bir açı gerektiriyorsa serbest döndürmeye geçin; taban alanını ve geçerlilik ipucunu inceleyin; ardından onaylayın. Önizleme bir çakışma bildirirse, seçilen açıyı koruyun ve durum değişene kadar küçük bir hareket yapın. Sonuç onaylandıktan sonra yanlış hissettirirse, bir kez geri alın ve tekrar deneyin.

Bu sıra önerilen bir tasarım yardımcısıdır, ölçülmüş bir kullanılabilirlik sonucu değildir. Belgelenmiş düzenleyici modellerini (yapılandırılabilir ızgaralar ve artışlar, alternatif döndürme yöntemleri, çarpışma sınırları ve geri alma) bir dekorasyon oyunu önceliğiyle birleştirir: yerleşimin telafisini kolay tutarken insanların bilinçli görsel seçimler yapmasına olanak tanımak (Unity grid snapping; EA rotation controls; Unity colliders; Roblox snap-to-grid guide).

Yararlı denge, hassasiyet ve özgürlük arasında bir uzlaşma ayarı değildir. Bu; hizalamanın güvenilir bir başlangıç noktası sunduğu, bir kompozisyon ihtiyaç duyduğunda serbest döndürmenin mevcut olduğu ve önizlemenin, net kuralların ve geri almanın her seçimi anlaşılır ve geri alınabilir kıldığı bir yerleştirme akışıdır.

İlgili okumalar

Bu konuyu keşfetmeye devam et