Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Client Teleport Sorunu
#1
Server olarak başlattığımda BP sorunsuz bi şekilde çalışıyor. Client de aynı şekilde sorunsuz ama sadece Client teleport olduktan 1 saniye sonra tekrar eski lokasyonuna geri geliyor. her teleportu Onayladığımda aynısını yapıyor.

1. Resim Message Log (Compile hata vs almıyorum)
2. Resim Kapının BP
3. Resim Widget BP


gCtOl2.jpg

hqGvfG.jpgBWSOic.jpg
Ara
Cevapla
#2
(18-09-2020, Saat: 17:06)mrtcnaslnts Adlı Kullanıcıdan Alıntı:  Server olarak başlattığımda BP sorunsuz bi şekilde çalışıyor. Client de aynı şekilde sorunsuz ama sadece Client teleport olduktan 1 saniye sonra tekrar eski lokasyonuna geri geliyor. her teleportu Onayladığımda aynısını yapıyor.

1. Resim Message Log (Compile hata vs almıyorum)
2. Resim Kapının BP
3. Resim Widget BP


gCtOl2.jpg

hqGvfG.jpgBWSOic.jpg

Onclicked105 te Teleport u true yapıyorsun. Burada server kendisi için client ta kendisi için bunu yapacaktır. Arada herhangi bir iletişim yok şu an. Server zaten her durumda çalışacaktır. Sorun çıkmaz. Ama client tan burası çalıştığında önce normal değişken true ya dönüyor. Tick function da kontrol ediyorsun OK diyor gidiyor. Ancak o sırada hiç birşeyden haberi olmayan server teleport değişkeninin değerini kendisinde ne ise ( şu an false ) o şekilde clienta gönderiyor. Bir sonraki Tick te artık Teleport değişkenin yeniden false olduğu için geriye dönüyor. Çünkü  bu sırada serverdaki Characterin konumuda güncelleniyor.
 Çözüm o butona tıklandığında client Server fonksiyonu ile Servera haber gönderecek ben tıklandım teleportu true ya çevir diye. Sonra server clientı replicated olduğu için otomatik olarak güncelleyeceğinden client ta değişmiş olacak. Bu şekilde sistem düzelecek.
  Not: Execution line lar (yani beyaz çizgiler)   fonksiyon ve eventler arasında gidip geliyorlar. Normal de hiç birisi diğerinden gelen bir beyaz çizgiyi kullanmaması lazım. Eğer kullanırsa bazen sorun çıkmaz ama bazı yerlerde ilk resimde gönderdiğin error ları almaya başlarsın. Onların hepsini birbirinden ayırman gerekir. Eğer aynı şeye orada da ihtiyacın varsa orada da aynı node dan (ctrl w ile) kopyalarayarak oluşturmalısın. Bu performans kaybına da sebep olmaz. Aldığın hatalar hep bunun yüzünden.
Ara
Cevapla
#3
(18-09-2020, Saat: 19:11)erginegider Adlı Kullanıcıdan Alıntı:  
(18-09-2020, Saat: 17:06)mrtcnaslnts Adlı Kullanıcıdan Alıntı:  Server olarak başlattığımda BP sorunsuz bi şekilde çalışıyor. Client de aynı şekilde sorunsuz ama sadece Client teleport olduktan 1 saniye sonra tekrar eski lokasyonuna geri geliyor. her teleportu Onayladığımda aynısını yapıyor.

1. Resim Message Log (Compile hata vs almıyorum)
2. Resim Kapının BP
3. Resim Widget BP


gCtOl2.jpg

hqGvfG.jpgBWSOic.jpg

Onclicked105 te Teleport u true yapıyorsun. Burada server kendisi için client ta kendisi için bunu yapacaktır. Arada herhangi bir iletişim yok şu an. Server zaten her durumda çalışacaktır. Sorun çıkmaz. Ama client tan burası çalıştığında önce normal değişken true ya dönüyor. Tick function da kontrol ediyorsun OK diyor gidiyor. Ancak o sırada hiç birşeyden haberi olmayan server teleport değişkeninin değerini kendisinde ne ise ( şu an false ) o şekilde clienta gönderiyor. Bir sonraki Tick te artık Teleport değişkenin yeniden false olduğu için geriye dönüyor. Çünkü  bu sırada serverdaki Characterin konumuda güncelleniyor.
 Çözüm o butona tıklandığında client Server fonksiyonu ile Servera haber gönderecek ben tıklandım teleportu true ya çevir diye. Sonra server clientı replicated olduğu için otomatik olarak güncelleyeceğinden client ta değişmiş olacak. Bu şekilde sistem düzelecek.
  Not: Execution line lar (yani beyaz çizgiler)   fonksiyon ve eventler arasında gidip geliyorlar. Normal de hiç birisi diğerinden gelen bir beyaz çizgiyi kullanmaması lazım. Eğer kullanırsa bazen sorun çıkmaz ama bazı yerlerde ilk resimde gönderdiğin error ları almaya başlarsın. Onların hepsini birbirinden ayırman gerekir. Eğer aynı şeye orada da ihtiyacın varsa orada da aynı node dan (ctrl w ile) kopyalarayarak oluşturmalısın. Bu performans kaybına da sebep olmaz. Aldığın hatalar hep bunun yüzünden.

Not olarak yazdığın beyaz çizgilerden kastını ve node ctrl w olayını anlayamadım. Ve Server fonksiyonu ile servere haber gönderme kısmını Nasıl yapcamı bilemedm. Aslında biliyor olabilirim ama kelime terim vs. olarak pek anlayamıyorm.

(Terimlere ve isimli anlatımlara pek aşina değilim aıkcası) Smile Kaliteli videolarından kısacık bi bilgilendirme mutlu ederdi Big Grin

Edit: Beyaz çizgilerde kullanma yok. Mavi çizgilerde var onu diyorsan bilemem ama
Ara
Cevapla
#4
(18-09-2020, Saat: 20:08)mrtcnaslnts Adlı Kullanıcıdan Alıntı:  
(18-09-2020, Saat: 19:11)erginegider Adlı Kullanıcıdan Alıntı:  Onclicked105 te Teleport u true yapıyorsun. Burada server kendisi için client ta kendisi için bunu yapacaktır. Arada herhangi bir iletişim yok şu an. Server zaten her durumda çalışacaktır. Sorun çıkmaz. Ama client tan burası çalıştığında önce normal değişken true ya dönüyor. Tick function da kontrol ediyorsun OK diyor gidiyor. Ancak o sırada hiç birşeyden haberi olmayan server teleport değişkeninin değerini kendisinde ne ise ( şu an false ) o şekilde clienta gönderiyor. Bir sonraki Tick te artık Teleport değişkenin yeniden false olduğu için geriye dönüyor. Çünkü  bu sırada serverdaki Characterin konumuda güncelleniyor.
 Çözüm o butona tıklandığında client Server fonksiyonu ile Servera haber gönderecek ben tıklandım teleportu true ya çevir diye. Sonra server clientı replicated olduğu için otomatik olarak güncelleyeceğinden client ta değişmiş olacak. Bu şekilde sistem düzelecek.
  Not: Execution line lar (yani beyaz çizgiler)   fonksiyon ve eventler arasında gidip geliyorlar. Normal de hiç birisi diğerinden gelen bir beyaz çizgiyi kullanmaması lazım. Eğer kullanırsa bazen sorun çıkmaz ama bazı yerlerde ilk resimde gönderdiğin error ları almaya başlarsın. Onların hepsini birbirinden ayırman gerekir. Eğer aynı şeye orada da ihtiyacın varsa orada da aynı node dan (ctrl w ile) kopyalarayarak oluşturmalısın. Bu performans kaybına da sebep olmaz. Aldığın hatalar hep bunun yüzünden.

Not olarak yazdığın beyaz çizgilerden kastını ve node ctrl w olayını anlayamadım. Ve Server fonksiyonu ile servere haber gönderme kısmını Nasıl yapcamı bilemedm. Aslında biliyor olabilirim ama kelime terim vs. olarak pek anlayamıyorm.

(Terimlere ve isimli anlatımlara pek aşina değilim aıkcası) Smile Kaliteli videolarından kısacık bi bilgilendirme mutlu ederdi Big Grin
Dostum kırmızı renkli olan node lar işlem başlangıcını ifade eder. Mesela senin onclick lerin gibi. Herhengi bir işlem burdan başlar. Bunların üzerinde pinler ve pinlerden çıkan ipler var diyelim. En üstteki pin herzaman beyaz ve üçgen oluyor. Bunlara execution pin deniyor. Bunlardan çıkıp diğer nodelara giden beyaz ipler de execution line deniyor. 
 Normalde kırmızı bir  node dan çıkan beyaz ipler ( sadece beyazlar da değil digerleride )başka kırmızı nın işlem arasına girildiğinde sorun çıkma ihtimali olur. Mesela orda kapı reset di sanırım bir kırmızı var buna başka bir yerden create widget tan bir şey geliyor branchtan baska bir yere gidiyor vb. Sende bunlardan dolayı ilk resimde gönderdiğin hataları alıyorsun.
Click olayından sonra bir server function olsun. Ismini mesela serversetteleport koy. Bu fonksiyonu run on server olarak ayarla. Bu fonksiyonda teleport true ya dönsün. Böyle yapınca cĺient 'te olsa server da olsa orası server da çalışacak. Her halükarda server daki teleport değiştirilmiş olacak. Teleport değişkeni zaten replicated olduğu için cĺient doğru güncellemeyi serverdan alacak.
Not 1: O olayın çözülüş şekli tick araya girmesi falan tamamen bana ters ama oralara girmiyorum artık.
Not 2: Yine yapamazsan belki bir video ile gösteririm ama senin durumuna gelmesi uzun sürer hatta gelemem (bakınız not 1 Smile ). Sadece sistemin nasıl çalıştığını anlatacak şekilde bir şey yapılabilir. Ama yukarıdaki anlatımım yeterli olacaktır diye tahmin ediyorum.
Ara
Cevapla
#5
(18-09-2020, Saat: 20:26)erginegider Adlı Kullanıcıdan Alıntı:  
(18-09-2020, Saat: 20:08)mrtcnaslnts Adlı Kullanıcıdan Alıntı:  Not olarak yazdığın beyaz çizgilerden kastını ve node ctrl w olayını anlayamadım. Ve Server fonksiyonu ile servere haber gönderme kısmını Nasıl yapcamı bilemedm. Aslında biliyor olabilirim ama kelime terim vs. olarak pek anlayamıyorm.

(Terimlere ve isimli anlatımlara pek aşina değilim aıkcası) Smile Kaliteli videolarından kısacık bi bilgilendirme mutlu ederdi Big Grin
Dostum kırmızı renkli olan node lar işlem başlangıcını ifade eder. Mesela senin onclick lerin gibi. Herhengi bir işlem burdan başlar. Bunların üzerinde pinler ve pinlerden çıkan ipler var diyelim. En üstteki pin herzaman beyaz ve üçgen oluyor. Bunlara execution pin deniyor. Bunlardan çıkıp diğer nodelara giden beyaz ipler de execution line deniyor. 
 Normalde kırmızı bir  node dan çıkan beyaz ipler ( sadece beyazlar da değil digerleride )başka kırmızı nın işlem arasına girildiğinde sorun çıkma ihtimali olur. Mesela orda kapı reset di sanırım bir kırmızı var buna başka bir yerden create widget tan bir şey geliyor branchtan baska bir yere gidiyor vb. Sende bunlardan dolayı ilk resimde gönderdiğin hataları alıyorsun.
Click olayından sonra bir server function olsun. Ismini mesela serversetteleport koy. Bu fonksiyonu run on server olarak ayarla. Bu fonksiyonda teleport true ya dönsün. Böyle yapınca cĺient 'te olsa server da olsa orası server da çalışacak. Her halükarda server daki teleport değiştirilmiş olacak. Teleport değişkeni zaten replicated olduğu için cĺient doğru güncellemeyi serverdan alacak.
Not 1: O olayın çözülüş şekli tick araya girmesi falan tamamen bana ters ama oralara girmiyorum artık.
Not 2: Yine yapamazsan belki bir video ile gösteririm ama senin durumuna gelmesi uzun sürer hatta gelemem (bakınız not 1 Smile ). Sadece sistemin nasıl çalıştığını anlatacak şekilde bir şey yapılabilir. Ama yukarıdaki anlatımım yeterli olacaktır diye tahmin ediyorum.

Dediğin şekilde Clickden sonra bi server ekleyip Run on server yaptım ama yine yok
Artı yeni bi sorunla karşılaştım. Client1 kapıya gelince Ekrana gelen Onay Widget'i "Client 2"de de gözüküyor Kapıyla etkileşime girmediği halde. Deli çıkcam Smile

Not 1: Virgül yok tam anlamadm. Yani tick kullanmam işi karmaşık hale mi getiriyor. Ve sen bu tarz sistemde Tick kullanmamayı tercih ediyorsun doğru mu anladım.


Farklı alternatifler deniyorum. Çok detaya girmedim Kabataslak  bişy yaptım ama bu kez de karakter teleport olmadı Smile

WOAUSY.jpg
Ara
Cevapla
#6
(18-09-2020, Saat: 22:42)mrtcnaslnts Adlı Kullanıcıdan Alıntı:  
(18-09-2020, Saat: 20:26)erginegider Adlı Kullanıcıdan Alıntı:  Dostum kırmızı renkli olan node lar işlem başlangıcını ifade eder. Mesela senin onclick lerin gibi. Herhengi bir işlem burdan başlar. Bunların üzerinde pinler ve pinlerden çıkan ipler var diyelim. En üstteki pin herzaman beyaz ve üçgen oluyor. Bunlara execution pin deniyor. Bunlardan çıkıp diğer nodelara giden beyaz ipler de execution line deniyor. 
 Normalde kırmızı bir  node dan çıkan beyaz ipler ( sadece beyazlar da değil digerleride )başka kırmızı nın işlem arasına girildiğinde sorun çıkma ihtimali olur. Mesela orda kapı reset di sanırım bir kırmızı var buna başka bir yerden create widget tan bir şey geliyor branchtan baska bir yere gidiyor vb. Sende bunlardan dolayı ilk resimde gönderdiğin hataları alıyorsun.
Click olayından sonra bir server function olsun. Ismini mesela serversetteleport koy. Bu fonksiyonu run on server olarak ayarla. Bu fonksiyonda teleport true ya dönsün. Böyle yapınca cĺient 'te olsa server da olsa orası server da çalışacak. Her halükarda server daki teleport değiştirilmiş olacak. Teleport değişkeni zaten replicated olduğu için cĺient doğru güncellemeyi serverdan alacak.
Not 1: O olayın çözülüş şekli tick araya girmesi falan tamamen bana ters ama oralara girmiyorum artık.
Not 2: Yine yapamazsan belki bir video ile gösteririm ama senin durumuna gelmesi uzun sürer hatta gelemem (bakınız not 1 Smile ). Sadece sistemin nasıl çalıştığını anlatacak şekilde bir şey yapılabilir. Ama yukarıdaki anlatımım yeterli olacaktır diye tahmin ediyorum.

Dediğin şekilde Clickden sonra bi server ekleyip Run on server yaptım ama yine yok
Artı yeni bi sorunla karşılaştım. Client1 kapıya gelince Ekrana gelen Onay Widget'i "Client 2"de de gözüküyor Kapıyla etkileşime girmediği halde. Deli çıkcam Smile

Not 1: Virgül yok tam anlamadm. Yani tick kullanmam işi karmaşık hale mi getiriyor. Ve sen bu tarz sistemde Tick kullanmamayı tercih ediyorsun doğru mu anladım.


Farklı alternatifler deniyorum. Çok detaya girmedim Kabataslak  bişy yaptım ama bu kez de karakter teleport olmadı Smile

WOAUSY.jpg

Hocam Tick kullanmanı gerektirecek durumlar sonra derece azdır. Tick son çaredir. Eğer bir işi tick ile yapmaya çalışıyorsan 100 90 ihtimalle yanlış gidiyorsundur. Tick her saniye 100 lerce kere çalışır. Tick kullanıyorsan her oyun karesinde yani gösterilen her karede saniyede 60 defa yapman gereken bir şey varsa onu yaparsın. Bu durumlar son derece sınırlıdır. Bir değişkenin değeri her an değişebilir diye düşünüp, değişirse Tick te yakalayım orda gereğini göreyim dersen eğer belki bütün level de sadece bir kere gerçekleşecek bir olay için her saniye 100 lerce kere o değişkeni kontrol etmiş olursun. Bu hem gereksiz bir karmaşa ve CPU gücü harcatır. Onun yerine düşünüş tarzın bu değer değiştiğinde şu iş yapılacak şeklinde olmalı. Bu değişkenin değişip değişmediğini tickte kontrol edeyim değiştiğinde yakalayıp işi yaptırayım değil. Senin durumda Tick fonksiyonu her saniye 100 lerce kere KapıReset ve Teleport fonksiyonlarını çalıştırıyor. Hadi onu da geçtim Teleport değişkenin değerini kontrol edecem derken pini te aşşağıda OnComponetBeginOverlap tan çektiğin için OnComponentBeginOverlap a kadar olan tüm işlemler de geriye doğru çalışıyor. Yani  ilk gönderdiğin resimdeki kodun tamamına yakını her tick te çalışıyor. Ama sen aslında sadece Teleport değişkenini kontrol etmek istiyorsun. O da sadece bir kere değişecek. Benim video mu izlediğinde düşünüş tarzımızın ne kadar farklı olduğunu anlayacaksındır.
  Peki bu tick fonksiyonu niye var o zaman ne işe yarar. Diyelim ki oyunda bir platform olsun. Bu platformun üzerine bineceğiz ve bizi bir yere götürecek. Rotasını bir eğri fonksiyonla belirlemek istiyoruz. Mesela diyoruz ki Y = time X sin(time+deltatime) gibi bir eğri yapmak istiyoruz. O zaman her tick te Y nin değerini elimdeki formüle göre hesab edip çıkan sonuca göre bir sonraki karede bu platform nerede olacak bulmalıyıım. Çünkü Platform sürekli hareket etmeli hiç durmamalı. 
  Ya da başka örnek diyelim ki levelde güneş şeklinde bir actor var. Karakterimiz bir vampir. Güneşe direk maruz kaldığında karakterin canı her salise 0.1 oranında gidecek. Ama oyun dinamik. Oyuncu içeri dışarı ağacın altına gölgeye güneşe sürekli koşup duruyor. O zaman tick fonksiyonunda her karede karakterimizin güneşe maruz kalıp kalmadığını bir linetrace ile kontrol etmemiz gerekebilir. Bu tarz her kare hesap gerektiren durumlar hariç tick fonksiyonu kullanmaya gerek yok. Sadece gerek yok değil kullanılmamalı. 
   İstediğin video da burda:

   https://drive.google.com/file/d/1LTOatlh...sp=sharing

  Kolay gelsin.
Ara
Cevapla
#7
Aslınca basitmiş. Keşke senin kadar bilsem Hocam seni de yorduk  Rolleyes  işin rast gelsin çok işime yaradı Çok Teşekkür ederim..  Shy
Ara
Cevapla
 


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Video Melee Damage Sorunu (Multiplayer) MR Studio 15 328 08-11-2020, Saat: 11:15
Son Yorum: erginegider
  Loading Ekranında LEVEL GEÇİŞ Sorunu serhatwxe 3 110 01-10-2020, Saat: 05:16
Son Yorum: erginegider
  Blueprint Açılırken Çökme Sorunu EdgeTypE 2 57 30-09-2020, Saat: 22:48
Son Yorum: nonlinear
  Mobile'da FPS sorunu serhatwxe 2 74 30-09-2020, Saat: 16:22
Son Yorum: serhatwxe
  [ACEMİ SORUSU] Karakterin Anlamsız Uçma Sorunu EdgeTypE 5 122 20-09-2020, Saat: 21:14
Son Yorum: EdgeTypE
  Düşman Karakteri Sorunu Emirhan Altaş 11 307 18-09-2020, Saat: 05:18
Son Yorum: Emirhan Altaş
  Visiblity sorunu mrtcnaslnts 6 113 17-09-2020, Saat: 23:49
Son Yorum: mrtcnaslnts
  Respawn Can sorunu mariposaaaa 4 83 11-09-2020, Saat: 14:00
Son Yorum: mariposaaaa
Photo Equip Sorunu Emirhan Altaş 15 241 10-09-2020, Saat: 19:13
Son Yorum: Emirhan Altaş
Exclamation Market Sorunu serhatwxe 9 287 22-08-2020, Saat: 23:29
Son Yorum: erginegider

Hızlı Menü:


Unreal Engine Türkiye

This forum is community driven and supported by voluntary community members. It has nothing to do with Epic Games.

Bu site sadece destek amaçlıdır. Epic Games ile bir ilgisi yoktur.