Description
This is a plugin for Unreal Engine 4, written in C++ (using Visual Studio), that adds a menu item to the editor which opens the plugin's dockable editor panel. The plugin allows for duplicating actors along any axis (in either direction) with variable spacing.
Tools Used
Unreal Engine 4, Visual Studio
Highlighted Skills
Programming (C++), Problem-Solving, Unreal Engine 4 Mastery, Hand-Coded UI Design
Links
This link will take you to the project's online repository where you can see the source code
Project Reflection
The process of creating and polishing this artifact was quite a struggle, but I pulled through successfully. When first learning about developing plugins for UE4, I looked through the source code of plugins people have created in the past to learn the file structure of plugins and where their core functionality comes from. When starting to build my plugin, much of what I was doing was copying what others have done by following tutorials. However, once I started to get the hang of it, I was able to add my own unique touch to the project. Moving forward, using the knowledge gained from this project, I will be able to design my own plugins from the ground up.
Out of all that I have learned while creating and improving this artifact, most importantly, I learned the importance of clear, concise documentation. Many issues throughout the development of this plugin could have been avoided or minimized with detailed documentation available. Because of this experience, I understand that it is crucial for me to properly document my programs/code so that other developers have an easier time understanding my intentions. More specifically, I learned about how UE4 loads plugins when the engine is starting up, I learned how to build and lay out my own editor windows with custom functionality, and I learned how to package and distribute plugins for UE4.
While developing this plugin, I encountered many challenges. When following along with tutorials and documentation to create a plugin for UE4, there were many errors in what I was trying to follow. Most of these errors were due to engine version differences (current engine vs. the engine used to create the tutorials I was following). To overcome these errors, I dug through UE4 documentation to find up-to-date information on function signatures and purposes. However, that led me to more issues due to the lack of sufficient documentation for slate and plugins. Despite the hardships, I was able to get my actor duplicator plugin working completely as intended, and I learned enough about the process to be able to throw in some of my own modifications for further functionality.
As I was developing this plugin, I shared my progress with my peers on forums and in my Discord server for aspiring game developers such as myself. Beneficial feedback that I received pertained to how intuitive the UI was. Originally, the actor selection dropdown was near the bottom of the plugin’s editor window. This didn’t make much sense as the actor selection should be one of the first selections the user should make when duplicating an actor. With this feedback, I opted to move the actor selection dropdown to the top of the plugin’s editor window.
When I originally created this actor duplicator, it was able to duplicate actors along any axis (X,Y,Z) or any combination of axes (XY, XZ, YZ). In thinking of practical applications of my actor duplicator, I realized that there may be cases where one would want to duplicate actors in the opposite direction as well (-X, -Y, -Z). I also rearranged the original layout of my plugin’s editor window so that using the plugin would be more intuitive. Moving from the top of the window to the bottom, the user would select an actor to duplicate, then enter the number of copies they wish to make, then select the axes to duplicate along, and finally, click the duplicate button.

You may also like

Back to Top