holodepth

Three.js · Etkileşim · Karşılaştırma

Orbit · Fly · FPS: mekansal psikoloji

Kontrolcü seçimi yalnızca bir API çağrısı değil; kullanıcıya sahneyi kimin gözünden ve hangi beden sözleşmesiyle okutacağınızı seçmektir. Bu sayfa üç yaygın kamera politikasını «rol» dilinde özetler; matematiksel ayrıntılar ilgili derin sayfalarda kalır.

Üç mod, dikkat ekonomisini farklı böler: biri nesneyi vitrinde tutar, biri hacmi keşfettirir, biri ise zeminde duran bir figür gibi düşündürür. Soyut hattı Kontrol mantığı ile bağlayıp, aşağıda her rol için teknik derinliği OrbitControls, Fly / FirstPerson sayfalarına bırakıyoruz — burada odak ürün kararı ve duyusal sonuç.

Bölümler: üç rol, teknik tablo, seçim testi, UX tuzakları.

Üç rol: gözlemci, kaşif, beden

Aynı geometri üç farklı «oyun kuralları» ile sunulduğunda kullanıcı farklı beyin bölgelerini meşgul eder: nesne merkezli analiz, hacimsel tarama veya mekânda var olma. Aşağıdaki isimler pazarlama metaforu değil; ekip içi iletişimde hızlı ortak dil sağlar.

OrbitControls · vitrin gözlemcisi

Kullanıcı sahneye dışarıdan bakar; dikkat hedefe kilitlenir. Psikolojik etki, nesneyi elde çevirme fantezisine yakındır — fakat merkez dışına süzülme özgürlüğü sınırlıdır, çünkü sözleşme «bu objeyi kaybetme» üzerinedir. Perakende ve tek parça sergilerde bu rol en az bilişsel yükü taşır.

FlyControls · hacim kaşifi

Zemin ve yukarı vektörü ikincil kalabilir; kullanıcı boşlukta süzülür. Dikkat hacme yayılır — «her yeri görebilirim» hissi güçlüdür, yön algısı zayıflar. Dev ölçekli modellerde veya yerçekiminin semantik olmadığı ortamlarda bu rol doğal seçimdir; detaylar ve 6DOF için Fly mekaniği bölümüne gidin.

FirstPersonControls · gömülü beden

Kullanıcı zeminde duran bir figür gibi düşünür; bakış ve yürüyüş insan ölçeğine yaklaştırılır. İçerik anlatımı, müze koridoru veya mimari iç mekân deneyiminde bu rol güven üretir. Teknik sınırlar (pitch clamp, pointer lock) bu güvenin parçasıdır; bkz. FirstPerson özeti.

Teknik karşılaştırma özeti

Tablo «tek satırda neyi farklı seçtiğimi» hatırlatır; sayısal parametreler yine ilgili kontrol sayfasında okunmalıdır.

Özellik OrbitControls FlyControls FirstPersonControls
Bakış odağı Sabit target; kamera yörüngede döner. İtki vektörüne göre değişir; bakıştan kopuk hareket mümkün. Karakter göz hizası; sürekli ileri eksen hissi.
Yön duygusu Yüksek; dünya «yukarı»sı korunur. Düşük; roll ve ters dönüş sık. Yüksek; yürüyüş zemini çoğu kurulumda sabitlenir.
Tipik girdi Fare / dokunmatik sürükleme; tekerlek zoom. Fare bakış + klavye itki kombinasyonu. Fare (çoğu zaman pointer lock) + klavye.
Matematiksel omurga Küresel hedef–kamera ilişkisi (detay: Orbit sütunları). Quaternion bileşimi ve serbest öteleme (detay: Fly mekaniği). Euler sınırlı pitch + dünya yukarısı; Matrix4 güncellemesi (detay: aynı sayfada FirstPerson bölümü).

Kritik soru: izliyor mu, içinde mi?

Aşağıdaki soruları sırayla sorun; ilk net «evet» genellikle doğru aileyi işaret eder. İki soru aynı anda «hayır» diyorsa üçüncü soru (duygu önceliği) beraberliği bozar. Çelişki varsa prototipte iki modu beş dakika yan yana deneyin — form anketleri sıklıkla yanlış pozitif verir; kısa görev tamamlama süresi daha güvenilir bir sinyaldir.

  • Odak noktam sabit mi kalmalı? Evet → vitrin ve tek merkezli anlatım: OrbitControls. Hayır ve kullanıcıyı sahneye gömmek istemiyorum → Fly veya FPS ailesine kay. Gri alan: kullanıcı bazen nesneyi döndürürken bazen içeri süzülür istiyorsa mod anahtarı veya kısa süreli «inceleme» orbit’i ile ana Fly/FPS akışını ayırın; iki davranışı aynı anda varsayılamayın.
  • Zemine ve ayakta durmaya ihtiyaç var mı? Evet → FirstPersonControls (veya ona eşdeğer yürüyüş sözleşmesi). Hayır ve hacimsel tarama öncelikli → FlyControls. «Zemin var ama sıçrayarak üstten bakmak da lazım» dediğiniz üretim demo’larında Fly’ı kısıtlı süre veya yetkiyle açmak, müşteri sunumlarında sık kullanılan pragmatiktir.
  • Hangi duygu öne çıkmalı? Analiz / ölçüm → Orbit. Özgür keşif / drone → Fly. Hikâye ve iç mekân varlığı → FPS. Kutup kilidi rahatsız ediyor ama vitrin hissi korunmalıysa TrackballControls üçüncü bir eksen olarak düşünülebilir — yine de kamera üçlüsünden biriyle aynı anda iki farklı «merkez» politikası taşımayın.

Nesneyi sahne üzerinde sürükleyerek düzenlemek istiyorsanız bu üçlünün dışında TransformControls devreye girer — kamera rolü ile karıştırmayın. Gezinme ve düzenleme eşzamanlıysa girdi katmanında mod kilidi şarttır (bkz. Input mapping · birleşik strateji).

UX tuzakları ve hafifletmeler

Bu maddeler tek başına «kötü kod» değil; çoğu zaman varsayılan parametre ve erişilebilir çıkış eksikliğinden doğar.

  • Orbit ve pan sürüklemesi: Hedef uzayı taşındığında nesne kadrajdan düşebilir; reset veya «merkeze dön» kısayolu olmadan destek talebi artar. Pan hızını düşük başlatıp sınır kutusu ile hedefi sahne içinde tutmak ikinci hat savunmasıdır. İnce ayar: hedefe yumuşak geri çekim (soft bounds), kayıtlı kamera ön ayarları («ön», «üst», «detay») ve ilk yüklemede dolgu kadrajı otomatik hesaplama, kullanıcıyı kaybetme hissini belirgin azaltır.
  • Fly ve roll: Serbest roll birçok kullanıcıda saniyeler içinde rahatsızlık üretir; varsayılanda kapalı veya çok düşük kazançlı tutup «uzman modu»nda açmak daha güvenli olur. Roll açıldığında bile eksen başına ayrı hassasiyet ve kısa süreli ivme sınırı konforu yükseltir; kamera sarsıntısı ekliyorsanız şiddeti ayarlanabilir veya kapatılabilir yapın.
  • FPS ve çarpışma: Duvarın içinden geçmek «içerideyim» illüzyonunu kırar; basit süpürme ışını, kapsül gövde veya hafif fizik katmanı eklenmeden kamuya açık demosu riske atmayın. Üç ek gerçeklik: merdiven ve eşiklerde takılma için adım yüksekliği toleransı, tavan ve kemerlerde baş çarpışması için üst süpürme, iç üretim için bilinçli «hayalet» geçişinin canlıya kapalı kalması.

Holodepth sentez notu

Aynı uygulamada modları açık etiketleyin («Vitrin», «Keşif», «Yürüyüş»); sessiz geçişler kullanıcıya hangi sözleşmenin geçerli olduğunu unutturur. Mod değişiminde kamera interpolasyonu kısa ve öngörülebilir olsun — ani sıçrama hem vestibüler uyumsuzluk hem de hata raporları üretir.