Jump to content

[Mutator] Custom Building Interface


Ruud033

Recommended Posts

Hey guys,

Today I've been working on creating an actor that allows us mappers to have a custom interface for all kinds of stuff. I am planning on using it on static meshes that are not actual RenX buildings but supposed to be.

In this example, i'll use my map with the destroyed weapons factory.

What it looks like by default:

Cn579yu.png

and in the editor:

W960pRp.png

http://i.imgur.com/W960pRp.png

RqeoXGk.png

Notice how we can enter the team number, building name and tooltip by default. We can also swap out the static mesh that is used ingame. I selected the visible cube by default, so you mappers never forget to swap out the static mesh.

I've made this actor based upon the purchase terminal that I've made. I removed the purchase terminal accessibility features though, so we can't access the PT menu when pressing E up close.

This is really useful for creating buildings that are supposed to be tech buildings, or making 'captureable' buildings (as I have in my own map)

I for instance, would like to have a UI showing when we aim to the destroyed weapons factory.

To do this, I need to search the static mesh of the building that I wish to use, in this example, the weapons factory.

1. So the first thing I do is search the weapons factory static mesh in the content browser, and put this new mesh in the slot:

E7ml05b.png

We do this to have an as accurate as possible UI show-up. I could also use the cube and put it over the entire building but, since this building is already made as a static mesh, I'm using this static mesh.

If you have buildings made out of BSP or modules, I'd suggest picking the proper object to suit your UI needs and putting it over whatever building you have. An alternative would be creating your own static mesh.

2. Once done make sure the location and rotation is the same as the original, then slightly scale up the mesh by a factor so the UI mesh is a little bit bigger than the original. I used a factor of 1.02 in this example:

kODMu0A.png

3. The issue we're facing right now is that we're still seeing the actor, whilst it should be an invisible actor. We get rid of the seeing of the actor by overriding the materials used.

First we have to look up how many material slots your chosen static mesh uses. To do this, look up the static mesh you have used in the content browser and doubleclick it to bring up it's properties:

In my case, it's the weapons factory, but in your case it could be anything

STPjoF3.png

Here we see that the mesh in my example has 7 materials that need overrides. Yours could be different.

To do these overrides we make X amount of slots (according to the amount of slots of your static mesh's materials) in the 'rendering' tab in the interface-mesh's properties:

In my example I have 7.

42fbIDx.png

In these slots assign the correct material that suits your needs, go to the package RenX_AssetBase.

In that package, search for MI_Null

You'll find:

- MI_Null_Concrete

- MI_Null_Glass

- MI_Null_Metal

Choose the material that you need in the proper slots, in my example I'm only using the MI_Null_Metal.

EdvuqSp.png

4. That's it! Youre done!

Result:

uD8n74Y.png

Download the mutator:

- Interface was implemented natively-

Link to comment
Share on other sites

Could you also make one for building destruction (so you can kill the building)

Maybe, I had already done this in the past, but the health part of it turned out to be very tricky. Therefore I decided to make this first. I'll pick this up with one of the coders if they have time.

Meanwhile, I totally forgot to post this, I also included a function that allows us mappers to change the team number and name on the fly. It's done via kismet. Check out this image:

http://i.imgur.com/a6r2jC0.png

a6r2jC0.png

Link to comment
Share on other sites

Added. However, just so everyone knows, everything added by Ruud is going in its own folder/special place, soooo get ready to have to redo a lot of things, e.g the Foliage volume, as it will have to point to a different path now.

If you provide a proper SDK / and or / folder structure we should just be able to copy that over to the SDK and not redo lots of things

Thanks for implementation though.

Hmm, just to be clear Ruud, what if we check out that 'Hidden Game' Boolean variable in the Rendering category? Shouldn't it hide the mesh as well?

If we use that we actually prevent the draw call from happening. In this case I actually want the draw call to happen, because else the effect im after would not work. If you really want to spawn an actor and hide it you need a specific purpose for that actor. (for example: swapping actor classes). Then again you could also use the destroy actor. I don't know what we could use the 'hide' thing for anyway. But let's stay on topic here.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...