omer.hatay

Üye
2 May 2019
182
14
18
26
(34) İstanbul Avrupa
Unreal engine de yaptığım oyuna dışarıdan yazdığım bir program ile müdahale etmek istiyorum. Mesela, bir görüntü işleme programında yüz taratacağım. Program eğer kamera ile yüz algılarsa, unreal engine ile yaptığım oyunda bir olay bir efekt tetiklenecek. Örneğin unity de c# ile oyuna dışarıdan müdahale edebiliyoruz diye biliyorum, ki bununla ilgili tubitakta bir proje ile karşılaşmıştım. Peki bunu unreal enginde nasıl yapabilirim?
 
Aradığınız konu Inter Process Communucation(IPC). En yaygın yöntemlerden bir tanesi Shared Memory diğeri de socket haberleşmesidir. Herhangi iki process bu yöntemlerden bir tanesi ile haberleşebilir. Bu konuda Unity veya Unreal'ın desteklemesi yada desteklememesi söz konusu değil. Size tavsiyem en kolay, dökümantasyon konusunda en zengin olan TCP/IP yada UDP protokolü ile Socket haberleşmesini kullanmanız yönünde.

İyi çalışmalar.
 
cahitburak' Alıntı:
Aradığınız konu Inter Process Communucation(IPC). En yaygın yöntemlerden bir tanesi Shared Memory diğeri de socket haberleşmesidir. Herhangi iki process bu yöntemlerden bir tanesi ile haberleşebilir. Bu konuda Unity veya Unreal'ın desteklemesi yada desteklememesi söz konusu değil. Size tavsiyem en kolay, dökümantasyon konusunda en zengin olan TCP/IP yada UDP protokolü ile Socket haberleşmesini kullanmanız yönünde.

İyi çalışmalar.

Çok teşekkür ederim cevabınız için.
 
Soyle bir sey var UDP isleri icin.

https://github.com/getnamo/udp-ue4

Ama sunu da soylemem lazim bunu kendiniz de yazabilirsiniz bir aktore FUdpSocketReciever ve FSocket data memberlar ifade edip. Ayrica UDP'nin TCP gore daha hizli calisip daha guvensiz bir protokol oldugunu da unutmamak lazim cunku TCP/IP denilen olay three way handshaking gibi sistemler ve CRC isleri ile yurur.

Ayrica UE4 boyle bir wrapper sunuyor 
https://docs.unrealengine.com/en-US/API/Runtime/Networking/Common/FUdpSocketReceiver/index.html

Not: Oyun motorlarinda o veya bu yok gibi bir sey YOK, artik bir suru sacma sapan oyun motoru turemeye basladi ve basit bir sey gibi gozukme algisi olustugundan senin motorunda sunlar var bende yok gibi seyler. Eline gecen her genco ben de bir oyun motoru yazsam kafasinda takildigi icin piyasada kullanilan kaliteli motorlar Unreal, Unity, Cocos vesaire bunlarin hepsinde bu tarz siniflar ve yontemleri vardir ve kaliteli olmalari dolayisiyla populer hale gelmislerdir diger cop oyun motorlarindan.
 
Ayrica yapacagin islerin multithread olmasini gectim asynchronous yani birbirinden asenkron olarak turetilen seyler hemen oyun threadina entegre olmadan calisiyor mesela bunlari network bilgi aktarimi sayesinde oyun dunyasindaki pointeri alabilirsiniz. Motorda bulunan network, grafik, oyun, ui vesaire hepsi ayri bir thread ama aralarinda etkilesim kurabilmeni mumkun kilan network, oyunda beklenmeyen sonuclara neden olabilir ama cok dusuk bir ihtimal.
(UDP protokolunde bir paketin kayip oldugunu anlayamazsin. Cunku handshaking yoktur.)
 
UE üzerinde hemen hemen her şey mümkün sadece senin ne kadar bildiğin ile alakalı. Motoru şu an açık kaynak olarak indirebiliyorsun. Bu demek ki kendine göre revize edip kullanabilirsin tabi  o kadar c++ ve motor bilgin varsa.