Viscera Cleanup Detail

Viscera Cleanup Detail

View Stats:
 This topic has been pinned, so it's probably important
BlackEagle  [developer] 19 Jun, 2016 @ 1:22am
Content Creation; Advice and Discussion
Greetings all.

Given the diffusion of information around the forums, I felt it would be a good idea to centralize the majority of information, advice and tutorials to one thread. Making it easier for new and existing Workshop Creators to find the info they need.
So, if you want advice, go ahead and ask for it and someone will do their best to answer it.
Just be sure to read through the info already posted before you do.


If you are just here for the info, then go ahead and read on. But please try to remain on topic if you do comment.

If you wish to contribute however, then study the rules below.


Rules for adding new blocks of information:
  • If there is concrete info about a topic already in this thread, then be sure to link people to it when they ask for that advice elsewhere.
  • If you are asked a new question and concrete advice for it does NOT exist in this thread, you will post it here in the format described below and then link them to it. You can optionally post it in the original thread, but just make sure to keep a copy here. However, if the advice is so short and simple that it doesn't warrant a new section, then avoid making a copy here.
  • If over time you have collected enough info, or answered a question enough times to warrant a new section, then go ahead and add one. This is most likely when you don't think your answer originally warrants any new section, but over time gets so expanded and well covered that it suddenly seems necessary.
  • If however, you are just discussing matters, and there is no solid understanding of how something is done, avoid posting a new section until you have a concrete way to relate to others how it's done.
  • When providing info in this thread, try to keep it as clean and simple as possible. Obviously, exceptions are likely, so just do your best.
  • When posing blocks of code, or copied actors from the Unreal Engine, use Steam's code tags to keep it spaced properly and thus as readable as possible. Do NOT post it without the
    code tag.
  • Try and remain on topic. This is not a place to tell people about your level or other creations. This is not a place to discuss ideas or suggest what levels others should make. It is only a database of info, and a place to receive advice should you be stuck.
  • If you are just posting a comment, then the only rule that applies is the above one.

And to ensure a standard format for info and tutorials posted in here, these are the rules:
  • Start all blocks of info and guides with a Section Header, eg:
    How to make an Airlock
  • Follow that header with a block of info, ideally in the form of a step-by-step guide if applicable.
  • If you forgot something, or need to add more info to your block when people ask for more info, edit the original block, do not "add-on" to it in a separate comment.
  • If you can, keep the majority(if not all) of your sections(blocks) in one post. This ensures the info you provide remains in one place and not spread out over multiple pages where it's harder to find.
  • If you are just posting a general comment, none of these four rules apply.


    Ok, I think that'll do it.
    Please try and keep it clean, but don't worry about straying off topic if you feel the thread can benefit from the point you wish to make.
Last edited by BlackEagle; 22 Jun, 2016 @ 3:39am
< >
Showing 1-15 of 139 comments
BlackEagle  [developer] 19 Jun, 2016 @ 1:22am 
General Outline of Official Level Creation Workflow
You can find a good outline of the best level work-flow practices we use over here:
http://gtm.steamproxy.vip/app/246900/discussions/4/350533172687207447/


3d Model & Texture Content Creation Workflow

The usual work flow we use for models+textures is this:

1. Create Low-Poly mesh in 3dsMax
2. Apply a single material or multiple materials to the desired polygons of the mesh. Making sure no polygons are without a material. A checker material works nicely for this.

3. Unwrap its UVs, ensuring they use as much UV space as possible without ever overlapping(unless safe to do so).
4. Create High-Poly mesh in 3dsMax or ZBrush based on Low-Poly mesh. Only done if detail unique to the mesh is needed. We don't care about UVs with this one.

5. Export a rendered 2d image of the Low-Poly mesh's UVs.
6. Export the Low-Poly mesh as either an ASE or an FBX(ideally).
7. Export the optional High-Poly mesh as either an ASE or an FBX(ideally).
8. Use XNormal to render a normal map using the Low-Poly mesh and High-Poly mesh. Only needed if detail unique to the mesh is needed, otherwise we use existing textures.

9. Use photoshop to take the rendered UV image and use it as a guideline for creating the diffuse(color) and specularity maps.

10. Use photoshop to save 3 separate images: The Diffuse, the Specularity and the Normal Map, all as .TGA files.

11. Import everything into the UDK(3 textures, one low-poly), making sure to adhere to good naming conventions. Also making sure to use the right compression and texture group settings for the textures.

12. Create, copy, or subclass a material that will make use of the imported textures.
13. Apply the material(s) to the imported Low-Poly mesh.
14. Save package.


It should also be noted that if you use base textures(looping images like rocks, grass, metal, etc) you can skip steps 4, 5, 7, 8 and 9. Each image is instead created just in photoshop, or sourced elsewhere and designed to be represented as a general texture instead of as a skin with unique areas. The best example of such meshes are rocks, leaves, trees, dunes, concrete blocks, etc. Anything that doesn't require different mismatching/unique areas on one texture.

NOTE1: If the high-poly is the same as the low-poly, then you don't need a normal map at all. There is no depth information to give detail.

NOTE2: You don't have to use normal maps in materials. They just make things look nicer, but if there is no room for extra fine-detail, then they are not needed. Not having a normal map applied to a material is completely normal(excuse the pun).

You could also use a seamless normal map(like a base texture) in the material. You can use the material editor to tile it a bit, and decrease its intensity to make it less invasive.

NOTE3: The Diffuse map is usually just a color map and has nothing to do with low and high poly models or normal maps.

NOTE4: If your Normal maps are not being rendered by XNormal correctly, they may indeed come out looking odd, possibly even black. Any bit of black on a normal map is bad.

NOTE5: Here are the settings we usually use in XNormal to get the right export processing.

Make sure the transform boxes(X, Y, Z) are set to:
x+
y-
z+

Some other important settings:

tangent space = on
Closest hit if ray fails = on
Discard back-face hits = on
Padding = 8

Also, make sure to adjust the trace distances if you need to. They can help fix ray-hit-miss issues, where the ray-tracing fails because they are too short.
Last edited by BlackEagle; 20 Jun, 2016 @ 2:06am
cannonf0dder 19 Jun, 2016 @ 1:51am 
Strangely enough I was going to make this topic yesterday since I'm always bugging people for help. Once I get some free time I'll write up a few tricks and tips I've learned along my way that would be helpful to modders old and new
cannonf0dder 20 Jun, 2016 @ 1:46am 
Ok then i'll start.
Problem is a physics issue ( I think)
I've been trying to add shopping carts into my new map, to work as bins ( Ajanitor and myselfs mindmeld)
So mesh ready, textures are set. I've added two types of cart, one is a debris style archtype the other is a VCBin with the mesh changed to the cart.
They sit fine, you can throw them around, bump them etc. However when you try to place anything inside the cart it jiggles around a bit then self destroys ( i guess due to "destroy if stuck" active). If the "destroy if stuck" is deactivated, them mesh still shakes but it's not stuck and doesnt fly off or anything.
My collision mesh (read UXC) was an H shape, i thought that a box in the middle may be the issue ( actors inside the mesh forcing down ), but then I changed the mesh to be more of a bucket |_| shape, still have the same problem.
I've already added baskets using the same methods and they work 100%.
Any ideas what would be causing the mesh to freak out when actors are dropped inside?
Last edited by cannonf0dder; 20 Jun, 2016 @ 1:52am
BlackEagle  [developer] 20 Jun, 2016 @ 2:12am 
So the object now has a flat base and it's still freaking out?

I can imagine if it didn't rest flush with the floor it would be much more prone to freaking out, built on tiny legs or something similar. How thick are the actual "walls" of the cart's collision? You'll notice the Bin is fairly thick.
cannonf0dder 20 Jun, 2016 @ 2:30am 
They're reasonably thick, the basket I made has much thinner though.
Thickness

Base

I've not fit the mesh snug just yet, i'll be doing that once I get the jitter to stop.


EDIT: fixed the issue. It turns out all three meshes I was using were bad. I have a new one and the collision works great.
Last edited by cannonf0dder; 20 Jun, 2016 @ 1:00pm
eNex 20 Jun, 2016 @ 4:14am 
Nice to see some 3ds max assets.

I have subscribed to lynda and working throught a tutorial to learn latest max (2016)
After that, is quixel turn (texture base app).

I would like to create good looking wall based on aliens 1986.
BlackEagle  [developer] 21 Jun, 2016 @ 1:39am 
Originally posted by cannonf0dder:
EDIT: fixed the issue. It turns out all three meshes I was using were bad. I have a new one and the collision works great.

Ah, good to hear it.

Originally posted by A JANITOR:
any chance that vcd could get a debris variable it be mighty handy

What do you mean?

Originally posted by A JANITOR:
also im trying to workout how to get objects to impact on a fluid surface actor movable since only the player the mop and shooting it with the welder can make the water ripple
is there a way to get objects to apply force to the fluid surface actor if toss a body etc into the ocean?

It could be related to the volume's collision properties, does it accept collision from rigid bodies?

Originally posted by A JANITOR:
also is there a way to make an actor via mattinee to hit the fluid surface actor like the mop does causing ripples to make a wave generator to simulate waves in my ocean?

Hmm, I actually have no idea. I've never used the UDK's wave generator, so it's possible you'd have to program a new kismet action.

Originally posted by A JANITOR:
also discovered why rocks have crap collision on them they need more depth on the depth slider when building collision in static mesh editor:)
fixing rocks can only be done on the devs computer:)

Right, I'll have a look at that again.
BlackEagle  [developer] 21 Jun, 2016 @ 2:32am 
Originally posted by A JANITOR:
as for debris variable i guess an oject variable will do the job:)

Where? You want a VCDebris object variable. But on what? Do you want it on water actors, debris objects, splats, in the level info? Which object or actor do you need the variable to be on?
BlackEagle  [developer] 21 Jun, 2016 @ 5:37am 
Originally posted by A JANITOR:
not entierly sure about needing a debris variable seems different/unknown territory tinkering with something advanced
You mean you want the FluidSurfaceActor to have a debris object variable, allowing it to detect VCD's physics objects?

Well, I don't think that will help. And you don't really need it either.

I successfully managed to get ripples for objects working, although it's not pretty.

Step1: Add a kismet Touch event for the water volume(which covers the whole surface of the FluidSurfaceActor).

Step2: Set the Touch event's properties to be the same as those you'd use for the Incinerator's volume.

Step3: Link the Touch output to a Modify Health kismet action.

Step4: Link the Instigator output from the Touch event to the Instigator and Target inputs on the Modify Health action.

Step5: Set the Modify Health actions properties to:
DamageType=None
Amount=0.0
Momentum=0.0
Radius=128
Heal=Off
Radial=On
Falloff=On

There you have it.

Originally posted by A JANITOR:
anyhow how does one make a nosplat or water volume destroy sand piles from the shovel?

Have you tried linking the volume's Touch event to a Destroy action?
Make sure that Touch event only accepts "VCSandPile" actors.
Last edited by BlackEagle; 21 Jun, 2016 @ 5:39am
BlackEagle  [developer] 22 Jun, 2016 @ 2:41am 
Hmm, try using Steam's code tag block for that info above. Eg:
Value1=0.0 Value2=5.0
That way it maintains spaces and is thus more readable for people.

Originally posted by A JANITOR:
Step4: Link the Instigator output from the Touch event to the Instigator and Target inputs on the Modify Health action.
wasnt able to get that to do anything

Did you set the properties on the Modify Health action correctly(Step5)? It won't work otherwise.

DamageType=None Amount=0.0 Momentum=0.0 Radius=128 Heal=Off Radial=On Falloff=On
Last edited by BlackEagle; 22 Jun, 2016 @ 3:36am
BlackEagle  [developer] 22 Jun, 2016 @ 3:59am 
My method does work, but you might have to increase the radius.
Here is code for the copied Kismet components, just select it and paste it in the kismet window.

Begin Object Class=SeqAct_ModifyHealth Name=SeqAct_ModifyHealth_0 Momentum=0.000000 Radius=256.000000 bRadial=True InputLinks(0)=(DrawY=250,OverrideDelta=11) OutputLinks(0)=(DrawY=250,OverrideDelta=11) VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_0'),DrawX=750,OverrideDelta=16) VariableLinks(1)=(DrawX=813,OverrideDelta=76) VariableLinks(2)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_0'),DrawX=886,OverrideDelta=142) ObjInstanceVersion=2 ParentSequence=Sequence'Main_Sequence' ObjPosX=712 ObjPosY=216 DrawWidth=222 DrawHeight=61 Name="SeqAct_ModifyHealth_0" ObjectArchetype=SeqAct_ModifyHealth'Engine.Default__SeqAct_ModifyHealth' End Object Begin Object Class=SeqVar_Object Name=SeqVar_Object_0 ObjInstanceVersion=1 ParentSequence=Sequence'Main_Sequence' ObjPosX=696 ObjPosY=480 DrawWidth=32 DrawHeight=32 Name="SeqVar_Object_0" ObjectArchetype=SeqVar_Object'Engine.Default__SeqVar_Object' End Object Begin Object Class=SeqEvent_Touch Name=SeqEvent_Touch_1 ClassProximityTypes(0)=Class'visceragame.VCDebris' bForceOverlapping=False Originator=VCWaterVolume'VCWaterVolume_1' MaxTriggerCount=0 ReTriggerDelay=0.000000 bPlayerOnly=False MaxWidth=177 OutputLinks(0)=(Links=((LinkedOp=SeqAct_ModifyHealth'SeqAct_ModifyHealth_0')),DrawY=277,OverrideDelta=14) OutputLinks(1)=(DrawY=298,OverrideDelta=35) OutputLinks(2)=(DrawY=319,OverrideDelta=56) VariableLinks(0)=(LinkedVariables=(SeqVar_Object'SeqVar_Object_0'),DrawX=488,OverrideDelta=56) ObjInstanceVersion=2 ParentSequence=Sequence'Main_Sequence' ObjPosX=400 ObjPosY=208 ObjName="VCWaterVolume_1 Touch" DrawWidth=133 DrawHeight=176 Name="SeqEvent_Touch_1" ObjectArchetype=SeqEvent_Touch'Engine.Default__SeqEvent_Touch' End Object

You'll have to assign your own actors to the object variables and the touch event afterwards.
Last edited by BlackEagle; 22 Jun, 2016 @ 4:00am
BlackEagle  [developer] 23 Jun, 2016 @ 3:07am 
Well, it was working on mine. Maybe your water volume doesn't have the right collision properties.

Also, just a reminder that this is not a place to talk about your levels or its features, unless you're directly instructing people how to make something.
cannonf0dder 23 Jun, 2016 @ 9:30am 
Ok here's one. Is there any way to add a bonus completion percentage for triggering an event? Example; I have a vcmover, when interacted with does its job then sets itself to a non active state.
Once in that non active state I'd like it to award 0.25% towards completion.
BlackEagle  [developer] 24 Jun, 2016 @ 2:56am 
Yeah, no way currently.

Using a stacking volume in that way that sounds like a good alternative.


I've been thinking about opening up the punchout system to use custom info, allowing you to decide what objects punish and award, what notes you get, etc. Basically so you can make it unique to your level without having to use the "Punchout Handler" templates.
cannonf0dder 24 Jun, 2016 @ 3:01am 
Sounds good, will be a nice reward for the players to get a cool custom newspaper clipping for a job well done. Will try doing that stacking volume trick once I get some spare time.
< >
Showing 1-15 of 139 comments
Per page: 1530 50