FMP 11- EUW 1

 I decided to leave the addition of new props, fixed meshes and texures to the level until I have the final concepts from our concept artist. Decals and gameplay will also be added then. This week therefore marked the beginning of the development of my second tool: an editor utility widget. 


The tool will contain many different functions that speed up the workflow of an artist working in Unreal. So far, it contains material assignment, texture renaming, texture compression correction and a mesh actor duplicator. The biggest problem I have encountered so far was the incompatibility between material objects and material instance objects in blueprints (and different object types in general) , but the solution in most cases was a simple cast to node. It did not occur to me to use these originally as I did not understand them fully, and did not realise that they essentially convert object types. 



The material assignment function is currently the most complex function, and is mainly driven by name matching. It takes the three input texture suffixes and checks if any texture names match the material instance names of the selected master material. I added error messages at different points to help the user pinpoint exactly what goes wrong, e.g invalid texture, no child instances etc. Some of the logic in this graph required some help from google, such as using the asset registry to get all texture assets. I had used selected assets before this, but the ability to use the selected materials instead makes the tool much more convenient and efficient. 




The mesh duplication function may actually become more complex than the texture assignment, as it is still a work in progress and is quite unorganised. The user can choose along which axis the mesh is duplicated, the distance between them and the extra rotation applied to each copy. The main difficulties I had with this were quickly solved by nodes I wasn't aware of, which has contributed significantly to my knowledge of blueprints. The duplicated object initially appeared as an empty actor, but the set mesh node helped fix it. The only downside to this is that the mesh needs to be set to a mesh asset, so the user must browse to asset before duplicating anything; I will try to find a more convenient way around this. Duplication also offers the option to arrange the duplicates in a circle, the logic for which I am quite proud of, even if it isn't finished yet. I remembered a maths diagram from school which showed how a sin wave corresponds to the coordinates of a circle, so I used the sin of the centre angle (calculated by dividing the amount of duplicates into 360) to decide the placement location on the x axis, and the cos of the angle to determine the y axis location. I am still figuring out how to make this work with the user selected axes, however. 

I also learned about transaction nodes, as the tool actions would not be added to the undo buffer before. Beginning the transaction just in front of the actor creation and ending it just after means the user can undo each copy individually, which allows more control but might be a slight hindrance. I'll probably add the option to undo all duplications simultaneously.

Overall, I am satisfied with how quick this was to make, as there are not many resources available that explain EUW logic/nodes. This tool is almost entirely independantly created so far, with the slightest amount of help from the internet.

Comments

Popular Posts