After using UE4 for a time, some functions of UE4 that need to be added or improved are summarized

  1. Many functions of static mesh cannot be applied to skeleton mesh, such as cutting mesh. For example, if I need to do a character to cut off the enemy’s arm, the enemy’s arm falls on the ground, and the fingers can twitch. At present, only fixed broken arms can be made in 3dsmax in advance, instead of dynamic cutting with sliceproceduralmesh of procedualmeshcomponent. I’ve looked for many ways, including reading the class related function descriptions in the official documents, trying to find the method of getting dynamic mesh model vertex array and topological relationship, and then I try implement it myself, but UE4 didn’t provide related functions. After the skeleton mesh is converted to procedural mesh or other similar meshes, the weight information will be lost. The vertex array I found in the static mesh class is not found in the skeleton mesh class. Feeling skeleton grid is a more closed system, which does not provide relevant function to enable us to make relevant functions that can edit its content. All in all, many of UE4’s static mesh technologies are ahead of the skeleton mesh, and you don’t seem to want the skeleton mesh to have the technologies applied by the static mesh model. Including the Nanite technology you demonstrated in ue5, which is also used in scenes rather than characters. I hope you can pay attention to the development of skeleton mesh technology, so that it can not lag behind the static mesh too much.

  2. Many new technologies exist as the map class component, not as the actor component, such as fur groom. This technology is really powerful, and I haven’t had time to experiment. But according to the official reference tutorial, its editing and application like map component
    , but in fact, the fur is more likely to grow on the character, so if it can’t be a character class component It is difficult to edit the class and organize the resources. Because many related logic must be implemented in the map class.
    There is also a post-processing component. Suppose I edit a plane as the water surface, underwater may be another post-processing effect. The current method is to make a post-processing component under the water plane. Then adjust the relevant parameters. Let’s say I want to copy this combination to another map. If the plane and post-processing components of the water surface are made into an actor, no matter how many are placed, the relative position can be kept unchanged and the size is appropriate. I’ve also tried to put post-processing components into the actor, but as a result, I can’t apply the post-processing effect set on it. Making many scene and rendering related components into map components may be convenient for editors to use these components directly, but if we extend them to act as actor components, it may be convenient for us to combine these components.
    Similarly, the terrain LOD system is a very good system, which can make the near part of the terrain have a higher accuracy and the far part have a lower accuracy. But it seems a bit wasteful to apply it only to the terrain. For large-scale scene objects like terrain, some of them need to be at the higher LOD level, while others need to be at the lower LOD level. In fact, there are many things, such as sea. I especially want to make a sea surface with the function of terrain LOD, which can show the real wave fluctuation in the near place, and the lower surface number in the far place. I even tried to paste the seawater material on the terrain, but I found that the vertices of the terrain object do not support the nodes related to the displacement of the vertices in the material. This is more embarrassing. Of course, we will not face this problem after using the nunite of ue5. May be?

3.About the navigation system. The current navigation system meets the basic needs. However, if I want to enable AI to use vertical stairs (assuming that this vertical staircase is built by players of open world games), there are still some difficulties. When developers edit the game world, they can use the navlinkproxy to set up such a leap in a fixed way. But what if it’s built dynamically when the player is playing the game? Can navlinkproxy still work?

4.Network, server and database. Professional developers in this field will do special development in their own projects, and large enterprises also have mature experience in server development and technical reserves. But if many independent game authors want to make online games, they still have some technical difficulties, which leads to many independent games using UE4 are almost single player games.
At present, the listening server of UE4 is the most network related function used by independent game authors, while the proprietary server has almost no blueprint function to use. We need to see a lot of tutorials and documents to configure related parameters, write a lot of PHP code and C + + code. And we are facing a lot of bugs (which also greatly exercises our development ability). The MySQL plug-in of virtual mall does not support Linux system, etc. This aspect of UE4 engine almost tells developers that you can use your own technology to do it, if you can. Obviously, many individual developers, and independent game studios do not have such capabilities. Many small-scale developers of UE4, even as you wish, use pure blueprint to develop, so this part of developers is hardly to develop online games.
Similarly, many professional developers will use compiler macros to tell the engine which code belongs to the server-side program and which code belongs to the client-side program, which can effectively protect their own server-side code when packaging. UE4 data table has relevant options to ensure that some key data can only be saved in the server. Why not extend this mechanism to behavior tree and other places?