Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /var/www/vhosts/bilgigunlugum.net/httpdocs/index.php on line 43
Unreal Engine

Unreal Engine Oyun Programlama sayfalarımız yayında...

Ana sayfa > Oyun programlama > Unreal Engine > Tuş giriş işlemleri

Unreal Engine tuş giriş işlemleri

Bu bölümde, burada Unreal Engine ile düzenlediğimiz projeye tuş girişleri eklemeye çalışacağız.

Oyun esnasında kullanıcı tarafından klavye ve fare ile yapılan girişlere işlem yapmak için "IMC_Default" nesnesi kullanılır.

Editor ortamında, Content Drawer penceresinde "Content\Input" dizini altında "IMC_Default" dosyası yer almaktadır.

IMC_Default dosyası, projenin giriş (input) ayarlarını yönetmek için kullanılan bir Input Mapping Context'tir.

Basitçe anlatmak gerekirse, bu dosya, oyuncunun klavye, fare, gamepad gibi giriş cihazlarındaki hangi tuşların veya hareketlerin, oyun içindeki hangi eylemlere karşılık geldiğini belirleyen bir "harita" görevi görür.

IMC_Default dosyasının temel işlevleri

  • Tuş atamalarını tanımlar: Oyundaki temel hareketler (ileri yürüme, geri yürüme, sağa-sola dönme) veya eylemler (ateş etme, zıplama, nişan alma) için hangi tuşların kullanılacağını belirler.
  • Aksiyonlarla eşleştirme: Giriş tuşlarını, "Input Actions" (IA) adı verilen ve oyun motorunun tanıyabildiği soyut eylemlerle eşleştirir. Örneğin, W tuşu "MoveForward" (İleri Yürü) eylemiyle, sol fare tuşu "Shoot" (Ateş Et) eylemiyle eşleştirilir.
  • Farklı cihazlar için destek: Aynı eylemin (örneğin zıplama), hem klavyedeki "Boşluk" tuşuyla hem de bir gamepad'in "A" tuşuyla tetiklenmesini sağlayabilir. Böylece farklı cihazlarla oynayan oyuncular için tek bir giriş ayarı dosyası kullanılmış olur.
  • Özelleştirme ve esneklik: Bu dosya, oyuncuların oyun içindeki tuş atamalarını istedikleri gibi değiştirmelerine olanak tanır. Oyuncu ayarlar menüsünden bir eylemin tuşunu değiştirdiğinde, arka planda bu Input Mapping Context güncellenir.

Kısacası, IMC_Default dosyası, oyuncunun yaptığı fiziksel girişleri (tuşa basma, fareyi hareket ettirme) oyunun anlayabildiği ve tepki verebildiği eylemlere dönüştüren merkezi bir konfigürasyon dosyasıdır. Bu sistem, eski Input System'e göre daha modern ve esnek bir yapı sunar.

P tuşu için atama yapma

Oyun içinde P tuşuna basıldığında, IMC_Default dosyası kullanılarak, bir işlem yapılmasını sağlamak için aşağıdaki işlemleri sırasıyla gerçekleştirelim:

1. "Game" dizini altında "Input" adlı bir dizin ve bu dizin altında "Actions" adlı bir dizin oluşturalım.

2. Actions dizini içinde iken, sağ tıklayıp açılan menüden, Input -> Input Action seçeneğini seçelim ve IA_Pause olarak adlandıralım.

3. IMC_Default nesnesine çift tıklayıp açtıktan sonra, "Details" sekmesinde:

  • "Mappings" ifadesinin hemen sağında yer alan + butonuna tıklayarak yeni bir seçme kutusu ekleyelim.
  • Seçme kutusundan IA_Pause değerini seçelim.
  • Altta yer alan klavye resmine tıkladıktan sonra, klavyeden P tuşuna basarak atamayı yapalım.

4. BP_BasicCharacter EventGraph içinde fareyi sağ tıklayınca gelen pencerede "IA_Pause" yazınca gelen pencerede "Enhanced Action Events" altındaki "IA_Pause" değerini seçelim. Böylece, "EnhancedInputAction IA_Pause" kutusu açılır.

5. Bu kutunun Started portundan Print String ile yazdığımız herhangi bir yazı, oyun başlattıktan sonra P tuşuna bastığımızda ekrana yazılır.

L tuşu için atama yapma (Level değiştirme işlemi için)

Oyun içinde L tuşuna basıldığında, Level değiştirmek için aşağıdaki işlemleri sırasıyla gerçekleştirelim:

1. Actions dizini içinde iken, sağ tıklayıp açılan menüden, Input -> Input Action seçeneğini seçelim ve IA_Level olarak adlandıralım.

2. IMC_Default nesnesine çift tıklayıp açtıktan sonra, "Details" sekmesinde:

  • "Mappings" ifadesinin hemen sağında yer alan + butonuna tıklayarak yeni bir seçme kutusu ekleyelim.
  • Seçme kutusundan IA_Pause değerini seçelim.
  • Altta yer alan klavye resmine tıkladıktan sonra, klavyeden P tuşuna basarak atamayı yapalım.

3. BP_BasicCharacter penceresinin EventGraph sekmesinde aşağıda gösterilen yapıyı oluşturalım:

  • L tuşuna basıldığında Get Current Level Name fonksiyonu ile aktif Level adı alınır.
  • Level adı "BasicLevel" ise, Open Level (by Name) fonksiyonu ile "Lvl_ThirdPerson" Level'ı, değilse "BasicLevel" Level'ı açılır.

İki Level arasında geçiş yapmak için, her iki Level'ın "World Settings" sekmesindeki "GameMode Override" değerinin "BP_BasicGameMode" değerini içermesi gerekir. Çünkü, P ve L tuş girişlerinin içinde tanımlandığı EventGraph BP_BasicCharacter'e ait ve BP_BasicCharacter BP_BasicGameMode'un "Default Pawn Class" değeri olarak yüklendiğinden, P ve L tuş girişlerine işlem yapılabilmesi için, BP_BasicGameMode'un ve dolayısıyla da BP_BasicCharacter'in yüklenmesi gerekir.

Alternatif olarak, her iki Level'ın "World Settings" sekmesindeki "GameMode Override" değeri ""BP_ThirdPersonGameMode" olarak ve ""BP_ThirdPersonGameMode" nesnesinin "Default Pawn Class" değeri "BP_BasicCharacter" olarak değiştirilebilir.