Download

Playing as a Tiny Character.

pretty simple question. Don’t really understand the way ue4 handles scale and physics etc.

When making games in unreal for small characters, (mice, bugs etc.) is it better to keep the ue4 character scale, and make the assets in the world bigger? or is it better to scale the world to the ue4 character size, and scale DOWN the player.

I’m basically making a game where you are the size of a small rodent. Not really sure if I should scale down the player or scale up the world. What are the advantages and disadvantages?

Well in general when you change a static objects orientation, or scale, you will in most cases have to rebuild the lightmaps as they are no longer valid so if you go that way your probably going to run into a few unexpected problems. Also changing the relative scale in any 3d application usually needs to be reset as most real world lighting models takes the local scale of the object and seeds the rendering requirements off of the relative world scale of the object. So no not a good idea to mess around with scale as to world map objects.

Skeletal models on the other hand are dynamically light and much easier to scale the character up and down via the root as well all things connected to the character will inherent the change, like animations.

https://youtube.com/watch?v=UgjuCR0TJd4

Keep in mind that you can’t scale something down forever due to single precision (the same goes for scaling up)
I recommend scaling things up instead of scaling the Player down.
It makes physics more reliable for the character.
Afaik Physics Assets have problems with bones that are too small and won’t generate Physics Body for them.

The official response is to scale up. If you don’t you’ll run into physics problems that will break the game.

Well as someone who works on the content side of things changing the “relative” scale of an object is not a good idea as far as map objects goes.

The Unit.

A unit is not a true form of measurement but a means by which a form of measurement can be applied that is true no matter what 3d environment is being used. One (1) unit is the same in 3ds Max, Maya, Blender and even Unreal 4 and is considered an absolute value.

World Scale.

World scale is where you tell your application what a unit represents as a form of measurement and the most common form of measurement is what would be considered a real world value. Metric is generally used as it is a ten based measurement that’s easy to convert from a unit value and is usually the first value looked at as far as physics based lighting and simulations requirements goes.

To match up with Unreal 4 best practice is to set the edit environment to 1 unit = 1 centimeter and build all objects using it’s real world equivalent as the reference as to size.

Local Scale.

Local scale is the true size of the object at 100% of it true world measurement and is a seed value as to physics based requirements that would included simulations, lighting, and materials. If you make a box 12cmx12cmx12cm then the world scale will look at it’s local value as being absolute once again as to that value.

Relative Scale.

Relative scale is where things usually goes wrong as it is not an absolute value as represented by local or world values but a change in the visual representation of one object as compared to another. You could easily change our 12cmx12cmx12cmx box to the size of a Death Star but the World will still see our Death Star as being a 12cmx box. What I do know is this is where 90% of all problems related to the creation begins at it’s root cause and “does” create unusual problems as to proper rendering with out artifacts and unusual behavior as to simulations.

I also know that the same issues can be transferred to other applications and is why I would not suggest changing the scale of an static model in Unreal 4 as I’m assuming that I’m only changing the “relative” scale of the object and not the true local scale.

Also

Created content are designed to snap together and if mixed with edit in place objects is almost impossible to scale up by selection after the fact.

Assuming as imported the object imported into Unreal 4 is based on it’s local scale, as I’ve tried to import an object based on it’s relative scale and has always snapped back to it’s local scale, the ability to change the scale of the object is based on it’s relative scale and local as well as world scale are fixed values that can not be changed.

No matter how much you change the scale of an object it’s local scale will always remain 100% as imported so things like physics will still behave as expected of an object who’s relative scale has not been changed. So one can only imagine what would happen if trying to render a toy box the size of a Death Star.

This is why I would option to scale down the “relative” size of a skeletal character, as the change is inherited from the capsule down, and is at the least a much easier test to preform to see if it will work via discovery rather than trying to up size a static model already set to it’s true world scale.

For example.

https://www.youtube.com/watch?v=Ossrchbu2IU&feature=youtu.be

This is not to say that things will be problem free but I think it’s a better option to play around with 1 solution than a possible 10,000 objects doing their own thing.

Overall though not a new subject as UDK did have it’s more serious issues as to properly scaling with no true form of scaling at all. :wink:

Please explain “official” :wink:

If you want to be 1/20th the “normal” player size, then yeah, you’d definitely want to just scale the world up by a factor of 20. You don’t want to lose that much digit precision. It doesn’t need to be “officially” stated, it’s just common sense knowledge of the limitations of binary digit precision. If you reduced the model size down to 1/20th the default scale, then you’d lose ((1/20 - 1)/1)*100= -95% of your precision increments. In theory, if you went too small, you’d be able to see individual “steps” in things moving. It would be like aliasing jaggies, but for models, physics and animations. Picture a ball is rolling forward and it looks like it’s teleporting inches to feet at a time; rather than moving forward smoothly. Granted, you’d have to probably go down by huge factors to have that happen.

Some might say that you could just do some kind of origin rebasing, but that would be a HUGE roundabout way of just scaling up the world. Moral of the story is just scale everything up and call it a day…

I have followed the “scale everything up route” and the lighting is not working. Doesn’t matter if I scale lighting in the world settings or I max all the intensity and radius etc, it doesn’t build the lighting correctly.

Any further thoughts on this?