Dikey Hareket Araştırması — Tasarım Kalıpları ve Kaynaklar
Traversal R-008 Çizen: Alparslan Tamam2.5D side-scroller Action RPG'de merdiven / duvar zinciri / tutunma-sallanma katmanı: tür içindeki kalıplar, "iyi hissettiren" ayrıntılar ve izlenecek somut kaynaklar. Tasarım kalıplarının çoğu saf 2D oyunlardan (Celeste, Hollow Knight, Nine Sols) çıkarıldı; hangi parçanın düzleme kilitli 3D iskeletli karaktere taşınıp taşınmadığı ayrı bir bölümde ayrıştırılıyor. Sonda Unreal kaynaklarının puanlı listesi ve mekaniğe göre video listeleri var.
Hedef oyun 2.5D — literatürün nesi taşınır, nesi taşınmaz
Aşağıdaki tasarım bölümünün büyük kısmı saf 2D oyunlardan (Celeste, Hollow Knight, Nine Sols) çıkarıldı. Bu bilinçli: tasarım kalıpları orada olgunlaştı. Ama bu projenin teknik gerçeği farklı ve iki katman ayrılmalı.
Hedef oyunun teknik profili: Paper2D/PaperZD yok; karakter Character Creator rig’li 3D iskelet; hareket X eksenine kilitli ve derinlik açıkça sıfırlanıyor; locomotion C++ tarafında CharacterMovementComponent türevi bir bileşende, traversal ayrı bir state; Motion Warping ve Animation Locomotion Library eklentileri açık.
Yani: sprite değil, düzleme kilitli 3D iskeletli karakter. Sonuçları:
Çarpışma 3D — Celeste’in bedava numaraları burada bedava değil
- Corner correction (bkz. “İyi hissettiren ayrıntılar”) bir tile grid + AABB varsayar. Burada yuvarlak uçlu kapsül var, üstelik keyfi 3D mesh’e karşı. “Sık yapılan hatalar” bölümündeki “yuvarlatılmış platform kenarlarından kaçın” maddesi 2.5D’de bir tercih değil — kapsülün dibi zaten yuvarlaktır. Dolayısıyla corner correction bilerek yazılacak bir özellik (kafa/omuz trace’i + yanal nudge), 2D’deki gibi grid’den bedava gelmiyor.
- Duvar trace’i 3D normal döndürür. Duvar derinlikte birkaç derece eğikse normal saf ±X değildir; wall jump kuvveti ham normalden alınırsa karakteri düzlemden dışarı iter. Kuvvet oyun düzlemine projekte edilmeli.
- Merdiven hacmi 3D bir kutudur. Tutunmada Y, hacmin merkezine değil constraint düzlemine snap’lenmeli — aksi hâlde karakter görsel olarak merdivenin önünde/ arkasında asılı kalır.
Derinlik ekseni sızar — 2D kaynakların hiç uyarmadığı hata sınıfı
- Root motion montage’ları 3D’de yazılır ve yanal (Y) drift taşır. Mantle, ladder enter/exit ve swing çıkış montage’ları düzlem kısıtıyla kavga eder; sonuç ya görünür snap ya da sessiz sürüklenme. Motion Warping hedefleri kurulurken Y zorla düzleme sabitlenmeli.
- Aynı disiplin her traversal impulse’ında gerekiyor — merdiven, wall jump, swing çıkışı, 8 yönlü fırlatma dahil.
- Yön değiştirme: sprite oyunu görüntüyü flip’ler, 3D karakterde mesh 180° yaw döner. Duvar/merdiven/swing animasyonlarının mirror’ı gerçek bir iş kalemi; 2D kaynaklarda bu maliyet hiç görünmez.
Sayıların yarısı taşınır, yarısı taşınmaz
Zaman alanındaki değerler (saniye) olduğu gibi taşınır. Mesafe ve hız alanındakiler taşınmaz — Celeste’in dünyası 320×180 pikseldir. Bu yüzden o sayılar “İyi hissettiren ayrıntılar” bölümüne çevrilerek değil, tamamen çıkarılarak işlendi: yerlerini hedef projenin kendi hareket sabitleri ve onlardan türetilen cm cinsinden hedefler alır. Dış kaynaktan gelen tek mesafe çapası Unity Platformer Kit’in 20 cm’lik duvar algılama varsayılanıdır.
Kameranın 2.5D’ye özgü tek sorusu
“İyi hissettiren ayrıntılar” bölümündeki kamera kalıpları (camera-window, platform-snapping, dikey lookahead yasağı) side-scroller literatüründendir ve 2.5D’de aynen geçerlidir — Cobra Code’un 2.5D videosu da (F1) Donkey Kong Country Returns kamerasını kuruyor, ki o da 2.5D. Ama literatürde olmayan bir soru var: dikey hareketi dolly ile mi, FOV ile mi, yoksa ortografik projeksiyonla mı okutulacak. Perspektif kamerada yukarı çıkan karakter aynı zamanda derinlik hissi değiştirir; 2D’de böyle bir kararı yok. Bu soruyu bu araştırma kapsamıyor — ayrıca çalışılmalı.
Değişmeden taşınanlar
Aşağıdakiler boyuttan bağımsızdır, 2D kaynaklardan gelmeleri sorun değil: girdi affediciliği (coyote, buffer, jump-cut), state/geçiş taksonomisi (dipten/tepeden/ havadan üç ayrı giriş), tutunma ekonomisi ve stamina iadesi, animasyon iptal politikası, “Sık yapılan hatalar” bölümündeki anti-pattern’lerin tamamı, assist tasarımı, kamera kalıpları.
Tasarım özeti
Merdiven — yerleşik kalıplar
- Merdivende gravite kapatılır, karakter kinematik dikey hareket moduna geçer;
fizik simülasyonu kullanılmaz. Unreal tarafında bunun üç yaygın karşılığı var:
MOVE_Flying(en hızlı prototip),MOVE_Custom+PhysCustom(doğru olan), animasyon montajına kilitleme (en kötüsü, aşağıda). (Epic topluluk eğitimi, Nauja repo) - Tutunmada karakter merdivenin yatay merkezine snap’lenir; snap anlık değil kısa bir interpolasyonla yapılır — anlık snap yapay hissettirir.
- Üç giriş noktası ayrı ayrı tasarlanır: dipten binme, tepeden inme, havadan yakalama. Her birinin kendi anchor’ı ve kendi geçiş animasyonu olur. Udemy ladder kursu tam olarak bu ayrımı yapıyor (Enter on Bottom / Enter on Top / Exit on Bottom / Exit on Top ayrı derslerde).
- Tepede çıkış ayrı bir mantle animasyonudur; bir waypoint’e ulaşınca tetiklenir ve karakteri üst platforma yerleştirir. Merdiven tepesinden “yürüyerek” çıkmak yaygın bir hatadır.
- İki merdiven felsefesi var: glide (tırmanırken başka aksiyon yapılabilir, hızlı) ve lock-in (animasyona kilitlenir, gerçekçi ama tempoyu öldürür). Sektörün iyileştirdiği asıl nokta hız değil, binme/inme kolaylığı. (EGM yazısı)
- Merdivenin modern muadili — otomatik yapışma. Metroid Dread’de Spider Magnet yüzeye yaklaşınca otomatik yapışır, yapışıkken ateş/melee yapılabilir, yüzey bir çıkıntıda biterse kendini otomatik yukarı çeker. Nine Sols’ta duvara tutunma da otomatik (ayrı buton yok) ve tutunmuşken savaş fiilleri kilitlenmiyor. (Metroid Wiki, Nine Sols Wiki)
- PoP: The Lost Crown’da dikey etkileşim ayrı buton değil: sol stick Up/Down = Interact. Yani merdiven girişi hareket ekseninin doğal uzantısı. (Game8 rehberi)
Duvar zinciri (Wall Slide → Wall Jump)
- Wall slide’ın işlevi maksimum düşüş hızını düşürmektir; ayrı bir “kayma hızı”
değil,
MaxFallclamp’i olarak modellenir. (Celeste kaynak kodu) - Duvar algılama toleransı cömert olmalı ve zor manevrada daha da genişletilmeli — Celeste standart wall jump’a duvardan belli bir mesafe uzaktan izin veriyor, daha talepkâr olan “super wall jump” içinse pencereyi iki katından fazla açıyor. Aktarılan şey ilkedir; Celeste’in piksel sayıları bu projeye çevrilmiyor, cm karşılıkları için “İyi hissettiren ayrıntılar” bölümüne bakın. (Maddy Thorson’ın Celeste yazısı)
- Wall jump = duvardan uzağa yatay boost + dikey boost + kısa süreli yön kilidi (input lock). GameMaker referans uygulamasında lockout 10 frame. (Celeste kaynak kodu, GameMaker referansı)
- Tutunma ekonomisi iki uçta: Hollow Knight’ta duvara tutunma limitsiz (Mantis Claw, süre/stamina yok); Celeste’te sınırlı — pratikte ~11 sn asılı kalma, ~2.4 sn yukarı tırmanma (saniyeler taşınabilir; iç stamina birimleri buraya alınmadı) ve bitmeye yakın yeni bir duvara tutunulamıyor ama mevcut duvarda devam edilebiliyor. 2 saniyelik bir limit bu iki ucun arasında, Celeste’in “yukarı tırmanma” bütçesine yakın kalır. (Celeste Wiki, Hollow Knight Wiki)
- Celeste’in stamina iadesi kalıbı, süre limitli sistemler için en öğretici fikir: duvardan yukarı zıplamak pahalı, duvardan uzağa zıplamak bedava. Oyuncu yukarı zıplayıp hemen ardından duvardan uzağa bastığında oyun stamina’yı geri veriyor ve yatay kuvveti geriye dönük uyguluyor. Yani “hangi zıplamayı yaptın” kararı, olay olduktan sonra bir grace penceresinde düzeltilebiliyor. (Maddy Thorson’ın Celeste yazısı)
- Duvar algılamada önce baktığın yön, olmazsa ters yön kontrol edilir; jump anında
velocity.x = 0yapılıp duvar normali yönünde kuvvet eklenir. (Unity Platformer Kit dokümanı)
Tutunma / sallanma çubukları
- Grapple/swing tek fiil değil, üç ayrı fonksiyon:
Swing(sabit düğüme asılıp sallanma),Pull-self(kendini çekme),Pull-object(nesneyi çekme). Lost Crown’un Dimensional Claw’ı son ikisini birleştiriyor. - Lost Crown’da grapple serbest nişan değil, işaretli noktalara kancalanıyor ve kendi butonunda (zıplamayla paylaşmıyor) — bağlam çakışması tasarımla değil buton ayrımıyla çözülmüş. (Game8 rehberi)
- Sallanmanın iki modu: ratcheting (yaklaştıkça ip kısalır) ve loose (ip uzunluğu ilk mesafede sabit). Farklı his, farklı kullanım. (itch.io devlog)
- Bırakma anı bir beceri eksenidir. Bionic Commando salınım sırasında küçük bir reticle gösterip maksimum hız için ne zaman bırakman gerektiğini öğretiyor. (Engadget)
- Bağlanma noktası ham trace çarpma noktası değil, nesnenin merkezi/optimal noktası olmalı — inandırıcılık farkı büyük. (itch.io devlog)
- Nine Sols’ta grapple noktaları yere değmeden sınırsız zincirlenebiliyor — dikey ilerlemenin ritmi buradan geliyor. (Nine Sols Wiki)
“İyi hissettiren” ayrıntılar — doğrulanmış sayılarla
Sayılar Celeste’in kaynak kodundan ve geliştirici yazısından. Tablo bilerek ikiye bölündü — bkz. “Sayıların yarısı taşınır, yarısı taşınmaz”.
Taşınır: zaman alanı (saniye — boyuttan bağımsız, UE’ye olduğu gibi girer)
| Değer | Celeste | Not |
|---|---|---|
| Coyote time | JumpGraceTime = 0.1s → 60fps’te 6 frame |
doğrudan kullanılabilir |
| Variable jump | VarJumpTime = 0.2s → 12 frame’e kadar tuş basılı tutulunca yükselme sürer |
doğrudan kullanılabilir |
| Jump buffer | var, süresi yazıda verilmemiş | ikincil kaynak 4 frame diyor, doğrulanamadı |
| Dash süresi / cooldown | DashTime 0.15 / DashCooldown 0.2 |
air dash’i olan tasarımlar için karşılaştırma değeri |
| Wall jump yön kilidi | GameMaker referansında 10 frame | doğrudan kullanılabilir |
Mesafe/hız alanı: dış kaynak yok, projenin kendi sayıları
Celeste’in mesafe ve hız sabitleri (MaxRun 90, 2 px duvar toleransı, MaxFall 160)
bu dokümandan çıkarıldı. Gerekçe: 320×180 piksel dünyasına ait, cm’ye çevrilmiyor,
ve yan yana durdukları sürece yanlış kıyaslamaya davetiye. Yerine geçen tek doğru
çapa, hedef projenin kendi hareket sabitleri ve onlardan türetilen değerlerdir.
Yeni state’ler için hedef aralıklar — dış kaynaktan gelen tek sayı Unity Platformer Kit’in duvar algılama varsayılanı 0.2 m = 20 cm (Unity Platformer Kit dokümanı); gerisi projenin kendi sabitleriyle tutarlılıktan çıkarılan başlangıç tahminidir, ölçülmüş değer değil:
| Yeni tunable | Başlangıç önerisi | Gerekçe |
|---|---|---|
WallDetectDistance |
15–25 cm (kapsül yüzeyinden) | Tek kaynaklı çapa 20 cm. Kapsül yarıçapına oran olarak tutulmalı, mutlak sayı olarak değil |
ClimbSpeed (merdiven) |
200–300 cm/s | Yürüme hızının ~%40’ı. Merdiven yavaşlatır ama “Sık yapılan hatalar” bölümündeki lock-in maddesine göre fazla yavaşlatmamalı |
WallSlideMaxFallSpeed |
Serbest düşüşün ~%25–35’i | Wall slide bir hız değil, MaxFall clamp’idir (bkz. “Duvar zinciri”) |
WallJumpLaunch |
Yatay ≈ sprint patlama hızının yarısı, dikey ≈ zıplama hızı | Duvardan sıçrama normal zıplamadan alçak hissetmemeli |
WallJumpInputLock |
10 frame ≈ 0.17 s | Zaman alanı — dışarıdan taşınabilen tek wall-jump sayısı |
Genel pratik aralık (atıfsız blog, orta güven): coyote 80–140 ms, buffer 80–150 ms. Ayarlama sırası: önce coyote, sonra buffer, en son jump arc/gravity — beşini aynı anda oynatma. 30/60/120 FPS’te ayrı test et.
Geometrik affedicilik (dikey harekette kritik; hepsi Maddy Thorson’ın Celeste yazısından):
- Jump corner correction: tavan köşesine kafa vurunca karakteri yana kıpırdatıp köşeden geçir.
- Dash/dash-benzeri corner correction: yana hızlı hareketle köşeye sürtersen çıkıntının üstüne pop’la.
- Lift momentum storage: hareketli platformdan zıplayınca platformun momentumu eklenir ve platform durduktan birkaç frame sonra bile korunur.
- Ortak ilke: zamanlama ve konum pencerelerini oyuncunun lehine genişlet.
2.5D karşılığı (bkz. “Çarpışma 3D”): yukarıdakiler tile grid + AABB varsayar, orada bedavadır. Kapsülle corner correction kafa/omuz sweep’i + yanal nudge olarak elle yazılır. Nudge mesafesi kapsül yarıçapına oranlı olmalı ve yalnız X ekseninde uygulanmalı — Y’ye taşan bir düzeltme karakteri düzlemden çıkarır.
Animasyon ve iptal edilebilirlik:
- En net kural: “Oyuncu girdisine tam öncelik ver, karakter animasyonunu kesiyor olsa bile.” Animasyona öncelik veren tasarım (ilk PoP, Another World, Dark Souls) bilinçli bir ağırlık tercihidir; reaktif oyun istiyorsan yapma. (Game Developer yazısı)
- Recovery animasyonunun son frame’leri idle’a benzememeli; benzerse oyuncu erken input dener ve “girdim yendi” hisseder. “Clunky” hissinin ana kaynağı budur. (Rivals Lib yazısı)
- Lost Crown’da gameplay animasyonlarında mocap kullanılmamış, tamamı keyframe — snappy his için. Ekip Rayman deneyiminden “60 fps’in ne kadar stratejik olduğunu” öğrendiğini söylüyor. (Ubisoft yazısı, Way Too Many Games incelemesi)
- Placeholder ses/VFX’i, hareket değişkenlerini ayarlamadan ÖNCE koy. Bir geliştirici tüm fizik kurallarını uyguladığı hâlde “limp” hissini gideremiyor; sadece zıplama sesi ekleyip koşu animasyon hızını hıza bağladığında oyun anında reaktif hissettiriyor. (Game Developer yazısı)
Kamera (Itay Keren, “Scroll Back”, GDC 2015):
- camera-window: karakter bir pencere içinde serbest hareket eder, kamera ancak pencere kenarına dayanınca kayar.
- Pencere yüksekliğini standart zıplama yüksekliğine eşitle — normal bir zıplama kamerayı hiç oynatmasın.
- platform-snapping (Super Mario World, Rayman): kamera zıplama boyunca sabit, karakter platforma indiği anda hizalanır. Side-scroller’da dikey kameranın en yaygın doğru çözümü.
- Dikey lookahead’i hızdan ekstrapole etme — “zıplamalar ve özellikle inişler iyi ekstrapole olmuyor.” Bu tam olarak platformer’da tutmayan tekniktir.
- Manuel kamera kaydırma gerekiyorsa mevcut kontrolleri yeniden kullan (Spelunky: yukarı bak / çömel → kamera kayar). Ayrı omuz tuşu (SMW) işe yaramamış.
- Camera shake = kontrolün bilinçli kaybı; kapatılabilir olmalı (Lost Crown’da erişilebilirlik ayarı). (Ubisoft News röportajı)
Assist katmanı — Lost Crown’un yaklaşımı (Ubisoft News röportajı): parry timing ve dodge penceresi oyuncu ayarlı slider; aim assist gücü ayarlanabilir; zor platform bölümleri için atlanabilir portal (toleransı gizlice değiştirmek yerine görünür bir kapı). Tasarımcının sözü: “Varsayılan olarak gereksiz bariyerleri, seçenekle değil tasarımla ortadan kaldırmanın yollarını ara.”
Sık yapılan hatalar
Merdiven
- Lock-in animasyonlu yavaş merdiven — gerçekçi görünür, tempoyu öldürür, uzun merdivenleri işkenceye çevirir. (EGM yazısı)
- Merdiven state’inin oyunun kurallarını değiştirmesi (Castlevania basamakları: subweapon için farklı tuş sırası). Sonraki oyunlar “istediğin an zıpla/in” ekleyerek düzeltti.
- Tepeden binmeyi zorlaştırmak — Half-Life’ta yukarıdan merdivene binmek doğal olmayan bir hassasiyet istiyor. (EGM yazısı)
- Havadan merdiven yakalamayı desteklememek — Blasphemous’ta asılı merdivenlere zıplarken girdinin yutulması, oyuncunun “komut verdim, karakter beni yok sayıyor” hissiyle dikenlere düşmesi. (Play Critically incelemesi) Havadan merdiven yakalama kararının tam karşılığı.
- Merdiveni sadece koridor olarak bırakmak → oynanış merdivende duruyor.
Duvar / tolerans
- Coyote penceresini fazla kısa tutmak — Blasphemous incelemesi bunu ismen tarif ediyor: “zıplamak için son şans diğer platformerlardan çok daha erken bitiyor.” (Play Critically incelemesi)
- Buffer’ı tüketmeyi unutmak → istemsiz çift zıplama. Başarılı zıplamadan sonra buffer temizlenmeli.
- Wall jump lockout’unun girdi yemesi — lockout sırasında gelen zıplama input’u buffer’lanmazsa oyuncu “bastım olmadı” der. (forum)
- Asıl “kötü zıplama hissi” çoğu zaman coyote ayarı değil, ground detection bug’ıdır.
His / kamera / süreç
- Animasyona girdiden öncelik vermek; havada aksiyonları sessizce kilitlemek. (Game Developer yazısı)
- Yuvarlatılmış platform kenarları — “bastım sandım, kaydım”. (Game Developer yazısı)
- Her zıplamada kamerayı takip ettirmek → sürekli dikey sarsıntı. (Scroll Back)
- Ses/VFX’i “sonra ekleriz” deyip hareket değişkenlerini onlarsız ayarlamak.
- Tek framerate’te test etmek; framerate’e duyarlı fizik entegrasyonu (Euler düşük FPS’te zıplama yüksekliğini düşürür → tasarlanan platformlar ulaşılamaz olur). (Guille Sánchez blogu)
Kaynak listesi
Mimari referanslar — projeye en yakın olanlar
| # | Kaynak | Tür | UE | BP/C++ | Kapsam | Değer |
|---|---|---|---|---|---|---|
| A1 | Nauja/ue4-climb2d-sample | GitHub, MIT, 16★ | 5.2 (ue4.25 branch var) | C++ (repo Paper2D tabanlı) | ASampleClimbableVolume overlap → bWantsToClimb (crouch pattern’i) → SetMovementMode(MOVE_Custom, MOVE_Climbing) → PhysCustomClimbing → FSavedMove_ ile replikasyon; tırmanırken zıplama + cooldown. Mantle yok, animasyon yok. README’nin kendisi kod parçalı yazılı tutorial |
★★★★★ Yalnızca C++/CMC mimarisi için. Değeri Paper2D olması değil — MOVE_Custom + PhysCustom + FSavedMove_ deseni motor tarafıdır, sprite’tan bağımsızdır ve düzleme kilitli karakterde birebir çalışır. Sprite/tilemap içeriği kullanılmayacak |
| A2 | Epic Dev — Climbing Up! Ladders in Multiplayer | Yazılı, Epic topluluk | 5.1–5.5 | C++ | CharacterMovementComponent’i custom movement mode ile genişletme. Montage yöntemini açıkça reddediyor, gerekçesi: oyuncunun merdivende tam kontrolü (ateş etme, istediği an atlama) sürmeli. Prosedürel/serbest yükseklikli merdiven varsayımı | ★★★★★ Root motion kararının doğrudan tartışıldığı tek kaynak |
| A4 | Udemy — elseware Games, UE5: Create a Ladder System from Scratch | Ücretli kurs · 13s 20dk · 39 ders · 3.8★ (yalnız 2 oy) · 16 öğrenci · güncelleme 4/2026 | 5.3+ (5.7 öneriliyor) | BP + Anim BP | Prosedürel merdiven (ISM, otomatik yükseklik), etkileşim widget’ı, Enter on Bottom (2 ders) / Enter on Top / Exit on Bottom / Exit on Top (20:06), kamera geçişleri (Camera Manager, data-driven), Climb Up/Down location + anim geçişleri, hızlı tırmanma, kayarak inme, bug-fix bölümü, NPC AI merdiven kullanımı | ★★★★ Merdivenin tam problem uzayını kapsayan tek kaynak. Ama 3D, 13 saat, ve sosyal kanıtı neredeyse yok (2 oy) — baştan sona izlenecek değil, bölüm seçilecek kaynak |
| A5 | Udemy — Vince Petrelli, UE5 C++: Climbing System | Ücretli kurs · 7s 01dk · 64 ders · 4.6★ (298) · 4008 öğrenci · güncelleme 1/2026 | 5.x | C++ | Custom UCharacterMovementComponent, PhysClimb, trace ile yüzey tespiti, ledge tespiti → mantle montage (root motion), Control Rig el/ayak IK, Motion Warping vaulting |
★★★★ Merdiven değil serbest yüzey tırmanışı ama iskeletli karakterde elin/ayağın basamağa oturması gerçek bir problem ve Control Rig IK’yı işleyen tek kaynak. ⚠ Yazar Ali Elzoheiry değil — arama sonuçları yanlış atfediyor |
| A6 | Shaun Fulton — How to Climb a Ladder in UE5 (Medium) | Yazılı, ~10 dk | 5.5.4 | BP | BP_Ladder + Box overlap → SetMovementMode(Flying) + SetBrakingDecelerationFlying(8000), UpdateClimbMovement Actor Up vektörüyle, line trace ile yerde aşağı hareketi engelleme. Animasyon yok, mantle yok |
★★★ Bir öğleden sonrada çalışan prototip. 2.5D’ye uyarlaması kolay (X ekseni zaten kilitli) |
Merdiven — video
| # | Başlık | Kanal | Süre | Tarih | UE | BP/C++ | Kapsam |
|---|---|---|---|---|---|---|---|
| B4 | Source-like Ladders in Unreal Engine | Peanut Games | 29:24 | 2024-01-28 | 5.3 | BP | Half-Life 2 tarzı merdiven (kamera yönü tabanlı). 3D/FPS |
| B5 | UE5: Advanced Ladder System — P1 · P2 · P3 | UE5 Poseidon | — | 2023-06 | UE5 | BP | 3 parça: modüler merdiven / tırmanma / kayarak inme. 3D. Proje dosyaları Gumroad’da |
| B6 | Climbing Ladder: UE Tutorial P1 · P2 | Sengchor | — | 2023-04 | UE5 | BP | Marketplace animasyonuyla merdiven. Epic aynası |
| B7 | How To Climb Ladders | Matt Aspland | — | — | UE4 | BP | Temel yukarı/aşağı, mantle yok |
| B8 | Ladder climbing system Full Course with UE5 | unreal magic | 3:41 | 2023-12-08 | UE5 | BP | ⚠ Bu bir kurs değil, kurs fragmanı. Asıl içerik Udemy’de ücretli (8s 07dk, 95 ders, 4.6★/106 oy — Bölüm 10 tamamen “Ladder Climb out From Top logic”) |
Duvar zinciri — wall slide / wall jump
| # | Başlık | Kanal | Süre | Tarih | UE | BP/C++ | Kapsam |
|---|---|---|---|---|---|---|---|
| C1 | UE5 Platformer: Wall Slide & Jump | C++ Tutorial | SPC Game Studios | 22:13 | 2023-10-23 | UE5 | C++ | Custom CMC’ye WallSlide custom movement mode + PhysWallSlide (PhysWalking türevi). Kaynak kod GitHub’da. Mixamo Hanging Idle |
| C2 | How To Make Wall Jump and Slide In UE5 | Unreal University | 16:10 | 2023-12-07 | UE5 | BP | En çok izlenen (31.8k) BP anlatımı; animasyon + partikül dosyaları paylaşılmış. 3D |
| C3 | Wall Jumping! | Fighting Game UE4/UE5 & C++, Part 194 | Shawnthebro | 30:23 | 2023-10-15 | UE4/5 | C++ | Yandan görünüş dövüş oyunu serisinin içinde: duvardan sıçrarken özel kuvvetler + wall jump’ın koşullarını belirleme. 2.5D’ye en yakın wall jump örneği |
| C4 | Parkour Series — Wall Sliding & Jumping | UE5 Poseidon | 26:16 | 2024-07-02 | UE5 | BP | Duvara koşarak girme, kaydıkça artan (clamp’li) kayma hızı, wall jump + double jump. 3D, seri |
| C5 | Best Wallslide and Walljump version | Xxyoth | 5:24 | 2019-04-19 | UE4.22 | BP | Kısa, slide+jump’ı birlikte veriyor. Eski |
| C6 | Wall Run & Wall Jump — Fully Networked | Epic topluluk | — | — | UE5 | — | Wall run komşusu; duvar temas mantığı aktarılabilir |
| C7 | Fab — Climb: 2.5D Wall Movement (infectedfury) | Fab, kişisel kullanım ücretsiz | — | 4.24+ | UE4 | BP | wall jump, wall climb, ledge holding + ledge climbing, tırmanılabilir hareketli platformlar. Tanıtım videosu 1:01 — tutorial değil, showcase. Artık güncellenmiyor |
Ledge grab / mantle (merdiven tepesi için gerekli)
| # | Başlık | Kanal | Süre | Tarih | UE | BP/C++ | Kapsam |
|---|---|---|---|---|---|---|---|
| D1 | CLIMB OVER THE TOP (Mantle) in 15 MINUTES | MarcGameDev | 15:45 | 2026-04-30 | 5.7 | BP | Line trace ile kenar tespiti, capsule trace ile boş alan kontrolü, Motion Warping ile mantle, montage geçişleri, animasyonsuz fallback, duvardan geçme (clipping) önleme, girdi/hareket geçiş düzeltmeleri |
| D2 | UE5 RPG Series #32: Ledge Climb and Mantling | Gorka Games | 26:21 | 2023-06-14 | UE5 | BP | ARPG serisi içinde; MantleLedge animasyonu veriliyor. 75.9k izlenme |
| D3 | UE5.2 Ledge Climbing Tutorial Series Ep.1 → Ep.6 Mantle System | Chalk-Line Games | Ep1 24:26 | 2023-07-17 | 5.2 | BP | 6+ bölümlük sistemli seri: climbing state’leri, ledge grab konumu, shimmy, mantle. ⚠ Ön koşulu var: kendi “Enhanced Input Root Motion” locomotion serisi |
| D4 | UE5: Parkour series | Ledge Climbing (8 parça) | UE5 Poseidon | — | — | UE5 | BP | hang, climb up, shimmy, drop, köşe dönme, yönlü hop, jump-to-hang |
| D5 | Titanfall 2 Wall Climb, Ledge Grab & Mantle | DavieMakesGames | — | — | UE4 | BP | Üç mekanik tek videoda |
Sallanma / tutunma çubukları
| # | Başlık | Kanal | Süre | Tarih | UE | BP/C++ | Kapsam |
|---|---|---|---|---|---|---|---|
| E1 | Hang and Swing System on UE5 | LocoDev | 31:29 | 2024-02-01 | UE5 | BP | Pendulum + swing sistemi: Anim BP, state machine, blend mantığı, timeline’lar. Tutunma + sallanma ikilisine en yakın tek video |
| E2 | Physics Based Rope Swing System | Matt Aspland | 36:38 | 2025-02-20 | UE5 | BP | İpe atla/in, ileri/geri/sol/sağ sallanma, ip üzerinde yukarı/aşağı |
| E3 | UE5.2 Grapple Hook System P1: Setup & Target Creation | Chalk-Line Games | 27:19 | 2023-06-26 | 5.2 | BP | Hedef noktası (grapple target) mimarisi + görünürlük widget’ı. Lost Crown’un “işaretli noktaya kancalanma” modeline uygun. Tutorial dosyaları paylaşılmış |
| E4 | Fab — Advanced Swinging (JB Gameworks) | Fab asset (tutorial değil) | — | — | UE5 | BP | Açıklamada: “NOW INCLUDES BOTH THIRD PERSON AND SIDE SCROLL EXAMPLES”; mesafeye göre otomatik tracer, ip uzat/kısalt; 2.5D sallanma için tek hazır referans |
| E5 | Grapple Hook in UE5 | Tutorial | Fallen Horizon | — | 2025-05 | UE5 | BP | İki farklı kuvvet uygulama yöntemi + swing karşılaştırması |
| E6 | Unreal Rope Swinging System | CodeLikeMe | — | — | UE | BP | Klasik ip sallanma |
Boşluk: “tutun ve 8 yönden birine fırla” mekaniğini anlatan hiçbir UE tutorial’ı bulunamadı. En yakınları E3 (hedef seçimi) + E5 (kuvvet uygulama) + E4 (side-scroll swing). Bu parça sıfırdan yazılır.
2.5D temel + traversal altyapısı
| # | Başlık | Kanal | Süre | Tarih | UE | Kapsam |
|---|---|---|---|---|---|---|
| F1 | How to make a 2.5D Platformer in UE5 — Beginner | Cobra Code | 16:54 | 2022-12-07 | UE5 | Gerçek 2.5D: 3D mesh’i düzleme kısıtlama (bConstrainToPlane) + Donkey Kong Country Returns tarzı kamera. Sprite yok. 226k izlenme |
| F3 | 2D Metroidvania Camera System (4 parça) | LesserDog Tutorials | — | — | UE | Oda geçişli metroidvania kamerası |
| F4 | Game Animation Sample Project — UE 5.8 | Epic (resmî) | — | — | 5.8 | Motion Matching + traversal (vault/mantle) referans projesi. ⚠ Tam 3D odaklı; 2.5D’de locomotion için değil, yalnız vault/mantle animasyon pipeline’ı için bakılmalı |
| F5 | Setup Custom Traversal Animations for GASP | Threepeat Games | — | 2024-08 | 5.4+ | Kendi vault animasyonunu GASP traversal sistemine takma |
Öneri
Nereden başlamalı — sıralı rota
Adım 0 — önce root motion kararı (A2 + A4). Tırmanma hareketinin root motion’la mı, kodda bir hız değeriyle mi süreceği izlenecek kaynağı belirliyor. Araştırmanın verdiği cevap melez ve iki bağımsız kaynak aynı ayrımı yapıyor:
| Parça | Yaklaşım | Neden |
|---|---|---|
| Tırmanma döngüsü | In-place animasyon + kodda hız değeri | Epic’in C++ merdiven yazısı (A2) montage yöntemini bilerek reddediyor: oyuncu merdivende her an kontrolü korumalı, istediği an bırakabilmeli ya da atlayabilmeli. Basamak aralığı da serbest kalıyor. |
| Giriş, çıkış ve tepe mantle | Montage (root motion, motion warping) | Kısa, kesin konumlanması gereken, iptal edilmeyen geçişler. A4 müfredatı tam böyle ayırıyor: giriş ve çıkış ayrı montage’lar, tırmanma ise konum hesabı + animasyon geçişi. D1 mantle’ı Motion Warping ile kuruyor. |
Döngü in-place olsa da “bir döngü kaç cm” değeri animasyon ile kod arasında sözleşme olarak kalıyor; yoksa ayak kayıyor. Yöntemin ayrıntısı ayrı paftada: Merdiven — Yöntem Brifingi.
Adım 1 — mimariyi oku: A2, sonra A1. A2 merdiven hareket modunun neden böyle
kurulduğunu, A1 aynı desenin 2D’de nasıl göründüğünü veriyor. A1’de bakılacak kısım
reponun hareket kodu: MOVE_Custom alt-modu, PhysCustomClimbing ve FSavedMove_
replikasyonu. Reponun Paper2D içeriği bu iş için ilgisiz. A1’de mantle yok; o boşluğu
A4 ve D1 dolduruyor.
Adım 2 — duvar zinciri: C1 ve C3. C1 (C++) CharacterMovementComponent’e
WallSlide custom movement mode ve PhysWallSlide ekliyor; kaynak kodu GitHub’da ve
mimarisi merdiven modunun kardeşi. C3 (C++) wall jump kuvvetlerini ve tetikleme
koşullarını yandan görünüş bağlamında gösteriyor, 2.5D’ye uyarlaması en ucuz olan.
Blueprint’te görsel referans için C2 veya C4 (kaydıkça artan, clamp’li kayma hızı).
Adım 3 — merdiven tepesi ve kamera: A4’ten seçilmiş bölümler, D1. A4 13 saatlik, 3D odaklı bir kurs; tamamı yerine dört bölümü yetiyor: Enter to Ladder on Top, Exit from Ladder on Top, Climb Up Location Calculation ve Camera Transitions. D1 (UE 5.7) mantle’ın Motion Warping’li güncel karşılığı ve sürüm olarak 5.8’e en yakın kaynak.
Adım 4 — swing, sonraya bırakılabilir: E1 ve E4. E1 hang ve swing’i tek state machine’de gösteren tek video; E4 side-scroll örneği içeren tek hazır asset. Sekiz yönlü çıkış için hazır kaynak yok, E3’ün hedef-noktası mimarisiyle birleştirilerek yazılıyor.
Tek bir şeyle başlanacaksa
A1 (Nauja repo) + A2 (Epic C++ yazısı). Gerekçe: ikisi de ücretsiz, ikisi de yazılı
(hızlı taranır), ikisi de C++ + custom movement mode yolunu izliyor. Video
tutorial’ların neredeyse tamamı Blueprint ve Flying moduna kısayol yapıyor; o kısayol
merdiven için çalışır ama Wall Slide, Swing ve Ladder’ı aynı state machine’e
oturtmak gerektiğinde dağılır; üçünün tek bir hareket makinesinde MOVE_Custom
alt-modları hâlinde oturması gerekiyor.
A1’in Paper2D olması bu iş için önemsiz: alınacak şey MOVE_Custom +
PhysCustomClimbing + FSavedMove_ deseni, yani motor tarafı. Sprite/tilemap içeriği
açılmayacak bile.
YouTube linkleri — mekaniğe göre
Listedeki her şey 3D iskeletli veya 2.5D bağlamında; ⭐ işaretliler öncelikli.
Merdiven
| ⭐ | Video | Süre |
|---|---|---|
| ⭐ | Peanut Games — Source-like Ladders (5.3) | 29:24 |
| ⭐ | UE5 Poseidon — showcase (seriyi izlemeden çıktıyı görmek için) | — |
| ⭐ | unreal magic — kurs fragmanı · ücretli kursun çıktısını görmek için ideal | 3:41 |
| UE5 Poseidon — Advanced Ladder P1 | — | |
| UE5 Poseidon — P2 (tırmanma) | — | |
| UE5 Poseidon — P3 (kayarak inme) | — | |
| Sengchor — Climbing Ladder P1 | — | |
| Sengchor — P2 (final) | — | |
| Matt Aspland — How To Climb Ladders (UE4) | — | |
| Quinn Anthony — How To Climb Ladders (UE5) | — | |
| Scaling New Heights — Interactive Ladders | — | |
| Ladder Climbing System on UE5 | — | |
| Ladder Climbing Replication | — |
Wall slide / wall jump
| ⭐ | Video | Süre |
|---|---|---|
| ⭐ | SPC Game Studios — Wall Slide & Jump C++ | 22:13 |
| ⭐ | Shawnthebro — Wall Jumping, yandan görünüş + C++ | 30:23 |
| ⭐ | infectedfury — Climb 2.5D Wall Movement showcase (asset tanıtımı, tutorial değil) | 1:01 |
| Unreal University — Wall Jump and Slide (en çok izlenen) | 16:10 | |
| UE5 Poseidon — Parkour: Wall Sliding & Jumping | 26:16 | |
| Xxyoth — Best Wallslide and Walljump (UE4.22) | 5:24 | |
| DEVenestration — Wall Jump | — | |
| Haez — Wall Jump | — | |
| Ryan Laley — Wall Running P1 (komşu mekanik) | — | |
| LocoDev — Simple Wall Run | — | |
| Unreal Axis — Wall Run Jump | — |
Ledge grab / mantle (merdiven tepesi için)
Swing / grapple / tutunma çubuğu
2.5D kurulumu ve kamera
| ⭐ | Video | Süre |
|---|---|---|
| ⭐ | Cobra Code — 2.5D Platformer (düzlem kısıtı + DKC Returns kamerası) | 16:54 |
| LesserDog — 2D Metroidvania Camera P3 (oda geçişleri) | — | |
| Gorka Games — Side-Scroller full beginner course | — | |
| UnrealBob — Sidescroller Full Template tanıtımı | — | |
| infectedfury — 2.5D Sidescroller Starter Kit v2.0 | — |
Traversal / Motion Matching (yalnız animasyon pipeline’ı için)
| Rev | Tarih | Çizen | Değişiklik |
|---|---|---|---|
| R-008 | Alparslan | İlk kayıt |