Level Designer Art Tools

Hey!

I’m working on small utility blueprints (and API in form of blueprint functions library with almost the same functionality) for level designers. I’m working on this in my spare time and starting this thread to gather some feedback and show my progress. My intention is to release this in Marketplace for small price at some point.

Overview

Instancer
CircleShape.png StackShape_5.png
Procedurally places (spawns) meshes or actors in a predefined shapes adjustable with parameters. Supported shapes are stack and circle.

Stack parameters: number of instances on each axis, distance between instances on each axis
Circle parameters: number of instances, axis (XY, XZ, YZ), radius, distance from the center, theta(degrees between instances) rotation application, forced rotation application(works in conjunction with theta rotation)

Meshes utilize instancing technology to save up on the performance. Instancer can spawn meshes that simulate physics, in this case they will not use instancing (this is possible, but requires engine source code changes). Instancer supports tracing for actors/mesh placement, identical to pressing “End” in editor viewport

Some features yet to implement: mesh variations support; start, middle, end meshes support; random rotation & location offsets within set range

Spline-driven instancer


Evenly distributes meshes/actors across the spline path. Instances count and distance between the instances can be automatically set and calculated of spline length and instances count and distance itself. Supports all features of Instancer as well, such as rotation defined by spline, custom rotation, trace-before-place, etc.

Spline deformable mesh


Nothing fancy here. Simply mesh that is deformed along the spline. Possibilities only limited by your imagination.

Features list insn’t final, I will be adding planned features upon their requirement for any of my ongoing projects.

I’d like to hear any feedback on it, if it will be useful, what should i add or change and everything else. Thank you :slight_smile:

This looks really useful!

Something I’ve been wondering about is the sort of object deformation you can see in this Hellblade dev diary (I mean the one that’s shown at roughly 01:20):

According to the video, it’s done entirely in Blueprints. I assume it’s also using splines somehow but I wouldn’t have a clue how to go about creating something like this. Either way, it looks like it’d be really useful for organic environments.

Looks interesting. Love the name of the blueprint - CrapSpawner :slight_smile:

This is probably just a basic spline mesh component scaled at the end, which results in this pretty deformation :slight_smile: I’ll try to check it on some of the rocks provided by Epic in their examples.


This is what it looks like on the same cylinder.

This looks awesome, definitely useful. I’ll be keeping an eye on this one. =)

@BiggestSmile: That’s awesome :D! And yeah, looks like that’s exactly what it’s doing, along with blending the object’s material with the respective ground material.

It just deforms vertices, and actually looks like it could be done in material, and the blueprints part he were talking about is pretty much the CrapSpawner, not the rock itself, might be wrong though.
Will look into it once i have some spare time.

Meshes intersection could be easily calculated in materials, and you can do whatever transformations you want with WorldPositionOffset. Edit: I was a little wrong, meshes intersection (calculated from depth) is only available in pixel shader and in translucent materials, in other words can’t be used for this.

After some investigation i came to conclusion that it’s not trivial to do, at least not with my knowledge. The problem with spline here is that it scales mesh evenly, not just the part that is inside other mesh. And I don’t really know how to blend different meshes materials.

^Ah, no worries. It’s awesome that you even just took the time to look into it :).

I’m planning to finish my currently planned blueprints next (working on spline-driven instancer at the moment, then will add missing features to my existing “tools”) and then will look into this kind of stuff.
Any other suggestions in the mean time? :slight_smile:

Spline-driven instancer. Evenly distributes meshes/actors across the spline path. Instances count and distance between the instances can be automatically set and calculated of spline length and instances count and distance itself. Supports all features of Instancer as well.
Will make a small video demonstrating them either by the weekend or later next week :slight_smile:

What I’m thinking is would splitting blueprints in two parts - mesh instancing & actor instancing, make it more convenient?

Holy **** this would go really well with the greyboxing kit I made for my project. Can’t wait to try it out sometime!

This needs an Mirror / Symmetry tool.

Just saying :slight_smile:

Added symmetry to spline-driven instancer as HeadClot suggested, this is the single spline actor, meshes on the left are spawned on the spline, meshes on the right are mirrored; it could be mirror on any axis :slight_smile: Also added “random” shape to shape-driven instancer which defines square with set width, actors/meshes then spawned at random positions within the square.

Added symmetry to spline deformable mesh

Next I’m going to work on is:

  • add symmetry to spline deformable mesh - done
  • make meshes fully align the underlying surface if trace is used - done
  • add location, rotation and scale offsets for instancers

Sorry for no updates for a long time, have been really busy lately, university and other projects take a lot of time
I want to make a small public test of what I’ve got at the moment to see if I’m going in right direction and if anything should be added or removed. So, if you’re a level-designer and able to give a constructive feedback, let me know. I’d highly appreciate your help :slight_smile:

Hi, I am a level designer for over 10 years and you asked for feedback.
Well, before I would work on something that level-designers ought to find usefull, you should talk to several of them, what they really need.
The wrong approach is to think up something that YOU think might be usefull for THEM.
So my advice is you make sort of survey and then sort the answers (most wanted on top) in a list.
Then you look from the top of that list down each topic and estimate the work you need for it to be done.
With youre available time, you come to a end what you can archieve in a certain amount of time…thats what you should work on.

Definitely must have. Following : )

The deformation can be very useful for character creations.

Just thought of another function that might be useful (not sure how easy it would be to implement, though). How about a snap grid mode that automatically changes the grid size depending on which object you have selected and on which axis you’re moving/rotating/scaling it? For example, you’ve got a modular mesh like a wall piece and you want to build a wall consisting of many of these wall pieces placed next to each other. So you’d place one wall piece object in the scene, select it and alt-drag it. The tool could automatically change the grid size to the size of the object on the axis its being moved on so the two wall pieces line up perfectly with each other. (It’d probably also be a good idea to let people edit the go-to grid sizes for each axis on each mesh/object manually in case you want a different grid size than the one that’s automatically detected.) Could be really useful when you use lots of different modular pieces of different sizes. Not sure how doable it is, though.

Hey guys,

thanks for the feedback Vollgaser, I appreciate it, but what you can currently see here is what helped me and helps in process of designing levels, before posting thread on the forums I asked people around and they found it pretty useful. My current goal is to finish “tools” i have at the moment, this is why I want to make small public test, and after that, move to other proposed features, if there will be any.

Thanks SumFX! If you’ve got anything else that you think is must have, I’d like to hear about it :slight_smile:

Regarding the character creation as unit23 mentioned. This one is really complicated and also isn’t possible without engine modification/plugin, which doesn’t suit my vision, I want this pack to be small Blueprint-only library :slight_smile: And it’s not really about level-design. The deformation itself works thanks to spline mesh component and is only able to deform static mesh a long specified two points and its parameters. Though, this could be potentially a starting point for what unit23 mentioned.

Thanks for the idea FrozenHarlequin! :slight_smile: It actually was somewhere in my backlog, not sure I mentioned it in any of the posts. It’s really easy to implement, and I thought about it as an another parameter like “Snap to mesh size”, which automatically sets “distance” parameters so meshes would be snapped to each other. Rotating and scaling comes automatically with this, since they don’t really interfere with any process inside the Blueprints and are pretty much independent operations.

Thanks for stopping by! :slight_smile: