3DEXCITE JavaScript Kullanarak İnsan Hareketini Nasıl Kontrol Edebilirsiniz?

13 Şubat 2025 Okuma süresi 6 dakika
Paylaşmak

3DEXCITE Klavye Kontrollü İnsan Hareketi

3DEXCITE Creative Experience uygulamasında , klavyedeki bir tuşa basıldığında insan karakterinin önceden tanımlanmış bir yol boyunca hareket etmesini sağlayabilirsiniz . Bunu başarmak için öncelikle hareket davranışını ayarlayarak başlarız, ardından bir olay betiği oluştururuz ve son olarak Hikaye Anlatımı'nda bir senaryo yapılandırırız. Bu kılavuzda, klavye kontrollü insan hareketini etkinleştirme sürecini adım adım anlatacağız 3DEXCITEve böylece oyuncunuzun hareketleri üzerinde hassas kontrol sahibi olmanızı sağlayacağız.

Gelin süreci adım adım inceleyelim!

Adım 1:İnsan Modelini İçe Aktarın

Öncelikle, sahneye insani bir unsur katmamız gerekiyor.

  1. Sahnenizi Creative Experienceaçın.
  2. Ardından, İçe Aktar'a tıklayın ve mevcut varlıklar arasından bir insan modeli seçin
  3. Model içe aktarıldıktan sonra, insanı başlangıç ​​pozisyonuna yerleştirmeniz gerekir.

Adım 2: Hareket Davranışı Ekleme

İnsan modeli artık hazır olduğuna göre, odağımızı hareket davranışını eklemeye çevirebiliriz.

  1. Öncelikle, sahnedeki insan nesnesini seçin
  2. Ardından Özellikler sekmesine gidin.
  3. Ardından, Kütüphane Ekle'ye tıklayın ve İnsan Hareket Davranışı'nı seçin .
  4. Davranışı insan modeline atayın.

Sonuç olarak, insan önceden belirlediğimiz olaya yanıt olarak bir yol boyunca hareket edebilecektir.

Şekil 1: İnsan Hareket Davranışı – Creative Experience

3. Adım: İnsan İçin Bir Yol Oluşturun

Hareketin senaryosunu yazmaya geçmeden önce, öncelikle insanın izleyeceği yolu tanımlayalım.

  1. Öncelikle Temel Bilgiler sekmesine gidin.
  2. Ardından, Yol'a ve sahnede yolunuzu çizmeye başlayın.
  3. Gerekirse, düzgün hareket sağlamak için yol şeklini ayarlayın.
  4. Son olarak, yolu kaydedin ve sahneye doğru şekilde bağlandığından emin olun.

Bu yol, komut dosyası tetiklendiğinde hareket kılavuzu görevi görecektir.

Şekil 2: İnsan İçin Bir Yol Oluşturma

3DEXCITE Klavye Girişi için JavaScript Teknikleri

Adım 4: Senaryolu Bir Oyuncu Oluşturun

Bu aşamada, klavye girişini işleyecek ve insanın hareketini tetikleyecek bir senaryo tabanlı aktör oluşturmamız gerekiyor

Şekil 3: JavaScript ile Betiklenmiş Bir Aktör Oluşturma
  1. Öncelikle Mantık Aktörleri bölümünden Komut Dosyalı Aktör Oluştur seçeneğini seçin .
  2. Aşağıdaki JavaScript kodunu komut dosyası düzenleyicisine kopyalayıp yapıştırın:

var TriggerEventClass = function () {
EP.Event.apply(this, arguments);
};

TriggerEventClass.prototype = Object.create(EP.Event.prototype);
TriggerEventClass.prototype.constructor = TriggerEventClass;
TriggerEventClass.prototype.type = 'TriggerEventType';

Eğer STU.TriggerEvent mevcut değilse,
STU.TriggerEvent = TriggerEventClass;
}

Eğer EP.EventServices.getEventByType(TriggerEventClass.prototype) doğru değilse,
EP.EventServices.registerEvent(TriggerEventClass)
.

beScript.onStart = function () {
// Komut dosyası başladığında çalıştırılacak kod.
};

beScript.onStop = function () {
// Deneyim durduğunda çalıştırılacak kod.
};

beScript.execute = function (context) {
// Her karede çalıştırılır.
// 'context.deltaTime', son kareden bu yana geçen süreyi sağlar.
};

beScript.onAllKeyboardRelease = function (iEvent) {
// Tuş bırakma işlemlerinde hata ayıklamak için aşağıdaki satırı yorum satırından çıkarın.
// console.log(iEvent.key);

if (iEvent.key === this.KeyCode) {
let newEvent = new STU.TriggerEvent();
this.actor.dispatchEvent(newEvent);
}
};

 

Adım 5: JavaScript Kodunu Anlamak

Gelin bu komut dosyasının ne yaptığını ve Creative Experiencenasıl çalıştığını inceleyelim.

1️⃣ Özel Bir Etkinlik Oluşturma

var TriggerEventClass = function () {
EP.Event.apply(this, arguments);
};

Bu, TriggerEventClass adlı özel bir olay sınıfı tanımlar . EP.Event temel sınıfını genişlettiği için bir olay olarak tanınabilir hale gelir Creative Experience.

2️⃣ Etkinlik Prototipinin Kurulumu

TriggerEventClass.prototype = Object.create(EP.Event.prototype);
TriggerEventClass.prototype.constructor = TriggerEventClass;
TriggerEventClass.prototype.type = 'TriggerEventType';

Burada, EP.Event'e dayalı bir nesne prototipi oluşturuyoruz ve özel bir olay türü olan TriggerEventType'ı belirliyoruz .

3️⃣ Özel Etkinliğin Kaydı

Eğer STU.TriggerEvent mevcut değilse,
STU.TriggerEvent = TriggerEventClass;
}

Eğer EP.EventServices.getEventByType(TriggerEventClass.prototype) doğru değilse,
EP.EventServices.registerEvent(TriggerEventClass)
.

Doğru işlevselliği sağlamak için öncelikle STU.TriggerEvent'in var olup olmadığını kontrol eder. Yoksa, TriggerEventClass'ımızı ona atar. Ayrıca, TriggerEventType'ın daha sonra tetiklenebilmesi için Olay Servislerinde kayıtlı olduğundan emin olur

4️⃣ Olay Yaşam Döngüsü Fonksiyonları

beScript.onStart = function () {
// Komut dosyası başladığında çalıştırılacak kod.
};

beScript.onStop = function () {
// Deneyim durduğunda çalıştırılacak kod.
};

beScript.execute = function (context) {
// Her karede çalıştırılır.
// 'context.deltaTime', son kareden bu yana geçen süreyi sağlar.
};

Bu fonksiyonlar, komut dosyasının yaşam döngüsünü:

  • onStart: Komut dosyası başladığında çalışır.
  • onStop: Deneyim durduğunda çalışır.
  • execute: Her karede çalışır (sürekli işlemler için kullanışlıdır).
5️⃣ Klavye Girişini İşleme

beScript.onAllKeyboardRelease = function (iEvent) {
// Tuş bırakma işlemlerinde hata ayıklamak için aşağıdaki satırı yorum satırından çıkarın.
// console.log(iEvent.key);

if (iEvent.key === this.KeyCode) {
let newEvent = new STU.TriggerEvent();
this.actor.dispatchEvent(newEvent);
}
};

Bu fonksiyon, bir tuş bırakıldığında tetiklenir. Bırakılan tuşun KeyCode'umuzla eşleşip eşleşmediğini kontrol eder .Eşleşiyorsa, özel olayın (STU.TriggerEvent) yeni bir örneğini oluşturur ve aktöre gönderir.

Adım 6: Sensörü Yapılandırın

Ardından, tuş basma olayını algılamak için bir sensör yapılandırmamız gerekiyor.

  1. Öncelikle Sensörler sekmesine ve yeni bir sensör oluşturun.
  2. Ardından, Türü ETKİNLİK olarak ayarlayın .
  3. Sonrasında, ID'yi TriggerEventType'a ayarlayın.
  4. Takma adı "Yürütüldü" olarak ayarlayın .
  5. Sensörü etkinleştirmek için Oynat simgesine tıklayın
Şekil 4: Sensör Oluşturma
Bir KeyCode Özelliği Tanımlayın

Başka bir deyişle, hangi tuşun hareketi tetiklediğini belirtmek için:

  1. Özellikler sekmesinde , Yeni Özellik Ekle'ye tıklayın .
  2. Adı KeyCode'a atayın .
  3. Türü Tamsayı olarak ayarlayın .
  4. Değeri 73 olarak ayarlayın (bu , JavaScript API Kılavuzundaki "I" tuşuna karşılık gelir )
Şekil 5: Anahtar Kodu Özelliklerini Oluşturma

Adım 7: Bir Hikaye Anlatma Senaryosu Oluşturun

Sensörü kurduktan sonra, insanın olaya nasıl tepki vereceğini tanımlıyoruz.

  1. Hikaye Anlatımı sekmesinin altında bulunan Senaryo Oluştur seçeneğine tıklayın .
  2. "Komut Dosyası Aktörü Her Çalıştırıldığında" adlı yeni bir blok ekleyin.
  3. Eylem türünü "İnsan Etkinleştir".
  4. Ardından, İnsan Takip Yolu için başka bir blok ekleyin .
  5. Bunları birbirine bağlayın, böylece olay gerçekleştiğinde insan harekete geçsin ve yolu izlesin.
Şekil 6: Hikaye Anlatma Senaryosu Oluşturma

Adım 8: Deneyimi Çalıştırın

Her şey hazır! Şimdi, test edelim:

  • Simülasyonu çalıştırmak için Oynat'a tıklayın
  • Klavyenizdeki I tuşuna basın
  • Bundan sonra, insan artık yolu takip etmeye başlamalıdır.

Çözüm

Bu eğitimde şu süreçleri adım adım inceledik:

  • Sahneye insan modeli ekleniyor.
  • Hareketi etkinleştirmek için hareket davranışı ekleme.
  • İnsanın izleyeceği bir yol yaratmak.
  • Klavyeden gelen girişi algılayan bir JavaScript betiği yazmak.
  • Bir sensörün bir olayı tetikleyecek şekilde yapılandırılması.
  • Son olarak, "Ben" tuşuna basıldığında insanın harekete geçmesini sağlamak için hikaye anlatımını kullanmak.

Dahası, bu yöntem daha karmaşık etkileşimler oluşturmak için genişletilebilir. Örneğin, animasyonları tetiklemek, birden fazla karakteri kontrol etmek veya ek olayları entegre etmek gibi.

Son olarak, bir sonraki blog yazımızda JavaScript kullanarak duruş ve jestleri otomatikleştirmeyi inceleyeceğiz

 3DEXCITE İnsan Duruşları

Hanen Bdioui
Abone
Bildirmek
misafir

1 Yorum
En Yaşlı
En Yeni En Çok Oy Alan
geri izleme

[...] Önceki blog yazımızda, JavaScript kullanarak bir insanın önceden tanımlanmış bir yolu nasıl takip edeceğini incelemiştik. Eğer kaçırdıysanız, [...]

1
0
Düşüncelerinizi paylaşmanızı çok isterim, lütfen yorum yapın.x