Creating a Package for a Custom UE4 Plugin for the Marketplace

Submission to the Marketplace Since the data send/receive plugin ObjectDeliverer I am currently creating for Unreal Engine is aimed for submission to the Marketplace, I tried packaging it once. How To Packaging a UE4 project can be done from the Editor, so I know how to do that, but I had never packaged a Plugin before and wasn’t sure how to do it, so I searched. How To Package Plugins For UE4 Marketplace - Epic Wiki ...

2019-02-07 · 3 min · 456 words · ayumax

ObjectDeliverer Log File Saving and Playback Feature

Recording Communication Content When implementing communication features, there are almost always times when you want to reproduce the situation later. This is especially essential when the environment of the communication partner is difficult to prepare. Therefore, I implemented a feature in ObjectDeliverer to save communication content to a log file and play it back. Sample Here is a sample using the save and playback features. The communication content here is a captured bitmap of 800px x 450px 32bit ARGB, so 1,440,000 bytes = (800 x 450 x 4) of data are sent and received every 60fps (=16.66ms). ...

2019-02-07 · 2 min · 274 words · ayumax

Got Stuck with BlueprintNativeEvent

What I Got Stuck On Today’s article is a memo recording a problem I encountered recently. By the way, I still don’t know the exact cause and am currently using a workaround. In the Plugin I’m currently creating, I wanted to override functions in both C++ and Blueprint, so I implemented the pattern below in various places. UFUNCTION(BlueprintNativeEvent, Category = "ObjectDeliverer") void Start(); virtual void Start_Implementation(); In the example above, Start() is expected to be called from another C++ class. ...

2019-01-31 · 2 min · 385 words · ayumax

Video Synchronization Using ObjectDeliverer Shared Memory

Sample Explanation This article explains the implementation of the shared memory sample I wrote about yesterday. ObjectDelivererの共有メモリのテスト題材作成中。 WPFアプリが毎フレーム自分のウィンドウを共有メモリに書き込んで、それをUE4側が読み込みテクスチャを更新してる。#ObjectDeliverer #UE4 #UE4Study pic.twitter.com/uWY2QhHnYP — ayuma (@ayuma_x) January 29, 2019 WPF App Side The WPF side writes the display content of its own window to shared memory. The complete source code is in the following repository. Creating Shared Memory Create shared memory named “SharedMemory” with a size of 800 * 450 * 4 + 5. This size can store a bitmap of 800 pixels width, 450 pixels height, and 32-bit BGRA format. The final +5 is for the header elements used by ObjectDeliverer shared memory. ...

2019-01-30 · 5 min · 866 words · ayumax

Adding Shared Memory Protocol to ObjectDeliverer

Shared Memory Feature I have added a shared memory protocol implementation to my custom UE4 library, ObjectDeliverer. This allows data transfer using shared memory in addition to the previously implemented TCP/IP and UDP. However, shared memory is Windows Only… How to Use Since it’s implemented as a protocol for ObjectDeliverer, you can use it simply by switching the protocol passed to the ObjectDelivererManager’s Start method. deliverer->Start(UProtocolFactory::CreateProtocolSharedMemory("memory_test", 1024), UPacketRuleFactory::CreatePacketRuleSizeBody()); Pass the shared memory name and memory size to CreateProtocolSharedMemory. These two values must be the same as the counterpart exchanging data. ...

2019-01-29 · 2 min · 385 words · ayumax

Easy Inter-Process Communication in UE4 with ObjectDeliverer

Inter-Process Communication in UE4 I often link applications developed with Unreal Engine to apps created with C# etc., and the most common method I use for this is socket communication like TCP/IP or UDP. Until now, whenever needed, I created features tailored to the specifications at that time. However, implementing this each time is tedious, and the communication part is delicate, making it prone to bugs if not built properly. ...

2019-01-28 · 5 min · 938 words · ayumax

Writing UE4 Automated Tests Easily Using Lambdas

UE4 supports testing as part of its development environment, allowing you to write automated tests without needing separate tools. Furthermore, by using Latent Commands, you can describe tests that span multiple frames, which is quite convenient. Automation Technical Guide However, when trying to perform delayed evaluation using multiple Latent Commands, I always found it cumbersome that I had to define a DEFINE_LATENT_AUTOMATION_COMMAND macro for each type of evaluation I wanted to perform. ...

2019-01-16 · 2 min · 316 words · ayumax

Reflecting on the Past Year and Resolutions for the New Year

Happy New Year! It’s 2019, and it feels like about a year has passed quickly since I started blogging. Here, I’ll try writing down my reflections on 2018 and my resolutions for 2019. Reflecting on 2018 Month What did I do? January Created a custom Alexa skill Studied basic deep learning theory February Attended a machine learning study group March Technical verification of Unreal.js April May Started designing MDToPPTX Started using Qt Bought an Oculus Go June Completed the initial version of MDToPPTX July Started creating the MDToPPTX editor using Xamarin Forms August First Lightning Talk (LT) Started using F# September Worked on Qt3D October Integrated Unreal.js into a development project November Xamarin App development December Started touching Unity VR project got approved at work Posted one article to the Unreal Engine 4 (UE4) Advent Calendar 2018 Looking back now, this is how it feels. Looking at it this way, I’ve dabbled in many different things. This year, I want to narrow my focus a bit more and develop my strengths. ...

2019-01-02 · 2 min · 321 words · ayumax

Trying Windows 10 IoT Core on Raspberry Pi

Background Apparently, Windows 10 IoT Core has been out for quite some time. Although I’m late to the party, I became interested after reading the following article: What can you do with Windows 10 IoT Core (latest Creators Update version)? So, I decided to try it out on the Raspberry Pi 3 that was sleeping in my drawer. It seems that by installing this, I can develop and deploy UWP apps from Visual Studio on my development machine, which sounds fun. ...

2018-12-29 · 3 min · 499 words · ayumax

Dynamically Changing Logic with Unreal.js

This article is for the 20th day of the Unreal Engine 4 (UE4) Advent Calendar 2018. The previous day’s article was by 0xUMA: Trying out automated testing in UE4. Overview There are times when you want to switch behavior patterns after creating a package for Windows from UE4. Initially, I handled this by allowing parameter changes via external text files (like XML or JSON). However, eventually, the request came to change the logic itself. So, I will write about how I externalized the logic using JavaScript with Unreal.js. ...

2018-12-20 · 7 min · 1409 words · ayumax