User Tag List

Page 1 of 4 123 ... LastLast
Results 1 to 40 of 128

Thread: Abatron - the making of a UE4 Hybrid game =)

  1. #1
    2

    Lightbulb Abatron - the making of a UE4 Hybrid game =)

    Hello everyone! UE4 has a wonderful and growing community which our small team hopes to be part of. We want to share our experiences and joy that we are having while making our FPS/RTS hybrid game called Abatron.

    We had already started Abatron in the Source engine and had the game almost ready for demo. We even went to Steam and got Greenlit, but after we saw UE4(*imagine jaw drops*)..... we came to an abrupt stop. For the past couple of months, we have been filling our bellies from the UE4 smorgasbord and began porting our assets over.

    Since then, we have fallen in love with the capabilities of the Engine while getting Abatron back to a playable state. Plus, we have been incorporating cool new things UE4 allows us to do. Our current team includes awesome individuals that are great to work with and work well together. And recently, we were happy to welcome Rama to the team from the UE4 community who is also incredible to work with Joy Joy

    We have alot yet to do and learn, but we will post our progress through our UE4 Journey.

  2. #2
    0

    Smile Animating with Curves and Acceleration

    In the following video, I show off the lesser known Curve Editor that we found useful for animations. As we develop animations, we want them to "feel" good to the player. One simple way of doing that is to add an additive layer of animation based off of the character acceleration.

    Currently, we are doing typical animations and then adding some procedural layers to them. For UE4, we use the curve editor to draw an acceleration curve and a deceleration curve to our liking. Then, we drive an additive blendspace with that curve value. A big TIP for those wanting to do this, do not load the UCurveFloat* inside of an AnimInstance derived class. UE4 does not like this and you will never load your curve asset, so load them through your character class, thanks to Rama for helping figure that one out.

    Enjoy, and have fun with your GameDev


  3. #3
    0
    It looks pretty good! And nice use of curves. Hope you share more videos like this as you progress.

    Good luck!

  4. #4
    0
    Samaritan
    Join Date
    May 2014
    Posts
    124
    Nice idea, sounds like Natural Selection 2 a bit like FPS/RTS
    Looking good from the video thanks for sharing

  5. #5
    0
    Thanks Jacky and QBert. We will try to have frequent posts

  6. #6
    0
    Can't wait to play this game, i voted you guys on greenlight btw
    Any estimation of the release date? Glad you guys ported on UE4, keep up the great work!

  7. #7
    0
    The Rainbow Warrior



    Join Date
    Mar 2014
    Posts
    2,601

    Red face

    Abatron Is Awesome!

    I am having so much fun with it!

    It's truly intense FPS as well as RTS, which are my two favorite game genres!

    Get ready to have exciting one on one duels with my AI and then go into RTS mode and place buildings that you can rotate any which way you want to build uniquely shaped bases !

    And you should know, Devero is an amazing c++ programmer in addition to all of his ground-breaking animation research using UE4 curves and C++ !

    He's combining BP and C++ to do very innovative things



    Rama
    Last edited by Rama; 09-25-2014 at 10:39 PM.
    100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

    UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

    Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

  8. #8
    0
    Awesome Zackstefy! Thanks for the support on Greenlight. We really appreciate everyone who voted for us.
    The release date is a moving target but we are taking it day by day. A big component that still needs to be done is the menu system port which we will start on in 4.5, but we will use this thread to post progress, demos... ect..

    Thanks Rama for the compliment

  9. #9
    0
    Samaritan
    Join Date
    Jul 2014
    Posts
    107
    I think I have all of your rigging tuts saved for reference haha. Game looks awesome!

    One note: wouldn't it make more sense for the hands to go down as you look up, and the hands go more in the frame as you look down? Opposite of how you have it.
    Trance VR demo now available. Go hyper speed in VR! http://store.steampowered.com/app/601080/

  10. #10
    0
    Thanks FatMoth, you are actually very right. I had just reversed the direction to troubleshoot a blending problem right before the recording. Nice Catch!

  11. #11
    0
    Working on getting this guy into UE4 now. Rig is ready and now working on the shading. Leo used Substance Painter to texture this bad boy.

    Name:  manalock_logo.jpg
Views: 9720
Size:  600.4 KB

  12. #12
    0
    Manalock is in the game, and had way too much fun playing with some shading ideas. Here is some initial work.

    Tan Version
    Name:  tanVar1.jpg
Views: 8330
Size:  691.3 KB

    Blue Version
    Name:  blueVar1.jpg
Views: 8350
Size:  722.2 KB

    Greyish Version
    Name:  greyVar1.jpg
Views: 8338
Size:  717.4 KB

  13. #13
    0
    very nice, there was a game called machines that had a similar concept, it was highly underrated. I'll definitely be keeping an eye on this one.

  14. #14
    0
    Champion
    Join Date
    Jul 2014
    Posts
    714
    Good work, the rhino skin looks somewhat like wet using specular, will look lot better using sub surface scattering from 4.5
    Are the rocks from the vehicle demo or did you made them ?

  15. #15
    0
    @crumbaker Thanks, I hadn't heard of machines and sounds pretty cool.

    @Galeon also thanks, I agree with you, i'm curious on the change post 4.5 Yes, those rocks are from the Vehicle game. They are very Epic rocks. hehe

  16. #16
    0
    The Rainbow Warrior



    Join Date
    Mar 2014
    Posts
    2,601

    Red face Video: Procedural Animation And AI, by Rama

    Hi there!

    It's me Rama!

    As you know I am working with Devero on Abatron, it's a lot of fun!

    ~~~

    A Replicating Procedurely-Animated Flying Character With AI

    I wanted to walk you through one way you can do procedural animation in combination with AI in UE4!

    See my video below for a demonstration of what I mean!

    The entire animation and movement of the flying creature is procedural / AI !

    There are no animations for this creature at all, other than 9 still poses!

    Yet see how I can completely animate the flying creature by blending the aim offsets from my C++ AI code!

    And as you can see in the video, my procedural animation system replicates to the client smoothly!

    I use interploation to smoothly update the client creature's rotations to match the rotations being sent from the server!

    ~~~

    Rama's Procedurally Animated Flying AI Creature



    ~~~

    Background

    I was given a static mesh of a flying creature looking straight ahead, and did the following:

    1. Rigged the creature in 3ds max, doing all the manual bone weighting myself

    2. Made 9 poses to serve as aim offsets for a blendspace

    3. Brought the creature into UE4, setting up the blend space, the custom C++ anim instance, and imported the 9 pose animations

    4. Wrote all the C++ to utilize the aim offsets in code and give the creature AI to move around to adjust itself to be able to always look at its target.

    One of the key things to note is that I am updating the Animation Blueprint from C++ using a custom AnimInstance class!

    ~~~

    Rigging in 3ds Max

    If you'd like to do something like this for your own project, I can explain the 3ds max steps!

    I used a simple bone chain, refined the bone weighting myself after using envelopes, and then made 9 poses!

    As I made each pose and improved the vertex weighting, I reverted the bone chain to straight to update the neutral pose with the most recent vertex weighting info.

    Bone Chain 1
    Name:  3dsMaxBoneChain.jpg
Views: 8100
Size:  286.6 KB

    Bone Chain 2
    Name:  BoneChainTutorial.jpg
Views: 8097
Size:  538.6 KB

    Bone Weights
    Name:  3dsmaxBoneWeighting.jpg
Views: 7961
Size:  467.8 KB

    Look Up
    Name:  LookUp.jpg
Views: 7844
Size:  289.5 KB

    Blend Space
    Name:  Blendspaces.jpg
Views: 7801
Size:  242.2 KB

    ~~~

    C++ Code Sample

    Below I have included my main engine that controls how my procedurally animated creature works

    It goes like this basically

    1. if the target is too far away, the AI unit should move closer
    2. if the target location is directly above/below the AI unit, AI unit should back up
    3. if 1 and 2 work, check and see if the AI unit needs to change rotation to face target
    4. if 1-3 work, then update the AI unit's aim offsets via custom C++ anim instance!
    5. when #4 happens, send the updates over the network to all clients and have the clients smoothly interpolate to the new net am offset rotations.

    Code:
    void AShip::TrackPlayerUnit()
    {
    	//Tracked Location! This is the Player Unit's location!
    	FVector TrackedLocation = Tracking_GetTrackedLocation();
    	
    	//Is the location too far?
    	const FVector EyeLocation = Mesh->GetSocketLocation("Tip"); //EYE SOCKET
    	
    	//Using Square Dist checks as they are more cpu efficient 
    	//	and these checks run every tick that the unit is doing tracking
    	if( FVector::DistSquared(
    			FVector(TrackedLocation.X,TrackedLocation.Y,0),		//discount Z
    			FVector(EyeLocation.X,EyeLocation.Y,0)				
    		)  > MovePosition_TargetIsTooFarDistance * MovePosition_TargetIsTooFarDistance)
    	{ 
    		Tracking_TargetTooFar = true;
    	}
    	else
    	{
    		Tracking_TargetTooFar = false;
    	}
    	
    	/*
    		Location Under Ship?
    	*/
    	FRotator AngleToShipCenter = UVictoryCore::StandardizeRotator((GetActorLocation() - TrackedLocation).Rotation());
    	
    	//Is the pitch angle from ship center to tracked unit too big?
    	const float PitchToShip = FMath::Abs(AngleToShipCenter.Pitch);
    	if( PitchToShip >= MovePosition_AngleToShipMaxAllowedPitchBeforeMove)
    	{
    		Tracking_NeedToMove = true;
    	}
    
    	//Using a bone further from head for better interp stability
    	FVector StableBonePos = Mesh->GetSocketLocation("Bone011");
    	
    	FRotator AngleTo = UVictoryCore::StandardizeRotator(
    		(TrackedLocation - StableBonePos).Rotation()
    	);
    	//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    	
    	
    	//~~~ Get Local Space Rot of New Proposed Angle ~~~
    	FVector AngleToDir 		= AngleTo.Vector();
    	AngleToDir 				= ActorToWorld().InverseTransformVectorNoScale(AngleToDir);
    	FRotator ActorSpaceRot 	= AngleToDir.Rotation();
    	
    	//Creature should adjust position!
    	//		unit is too close or too far!
    	if(FMath::Abs(ActorSpaceRot.Pitch) > 80)
    	{  
    		Tracking_NeedToMove = true;
    		return;
    	} 
    	   
    	if(FMath::Abs(ActorSpaceRot.Yaw) > 80 )
    	{  
    		//Dont update if yaw is too big!
    		//		Turn to face the player's unit!
    		Tracking_NeedToTurn = true;
    		return;
    	} 
    
    	Tracking_NeedToMove = false;
    	 
    	//Pass the new rotation to all clients!
    	//		and update aim offsets!
    	SERVER_UpdateSpiritRotationGoal(AngleTo);
    	
    	if(DrawUnitTrackingTrace)
    	{
    		UVictoryCore::DrawLine(TrackedLocation,GetEyeLocation());
    	}
    }
    Enjoy!



    Rama
    Last edited by Rama; 10-07-2014 at 08:17 PM.
    100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

    UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

    Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

  17. #17
    0
    Our mapper had loads of fun building Geodite Mountain. If you walk into the broken geode, new upgrades become available

    Name:  geoditemtn.jpg
Views: 7746
Size:  707.3 KB

    Hopefully, we can do enough LOD work too keep it as is.

  18. #18
    0
    Nice work Rama, now the ship has alot more life

  19. #19
    0
    I've been working with the artist to figure out some normal map shadowing on the manalock gun. After 3 days of grueling test and iterations, we've concluded that Maya 2015 is better at baking normal maps than Xnormal.

    I know, there might be some strong opinion about this even our modeler still doesn't believe the test results since Xnormal runs through his veins for many years. Our new pipeline uses Xnormal to quickly iterate normal map issues, then the final bake goes through Maya 2015.

    Here is an example under a very controlled test with exact setups, cages...ect..
    Name:  MayaVSXnormal.jpg
Views: 7409
Size:  821.5 KB

    I thought it would be good to show off our results. Have fun with GameDev!

  20. #20
    0
    Infiltrator
    Join Date
    Oct 2014
    Posts
    24
    This looks very interesting!

    Not enough hybrid games out there! Would love to help out testing prototypes if you need a tester.

    Gonna keep myself updated on this thread.

    Best of luck! /John Oliver

  21. #21
    0
    The Rainbow Warrior



    Join Date
    Mar 2014
    Posts
    2,601
    Fun With Beams!

    This video shows the Ship Creature's charge up affect as it prepares to blast the ground to create new structures or deal with unauthorized base visitors!

    In this video I am using several kinds of beams in several different ways!


    The first part of this video demos how the flying creatures now maintain a certain height above the terrain, calculated while taking their rather unusual shape into account This height can be controlled by Designers in my BP Defaults for the creature.



    ~~~

    Beam Types

    1. straight beam, with source in local space, target in world space. Target is set in C++ to match position of the unit.

    2. arced beam, with a tangent that is getting set in code, source in local, target in world/absolute space

    3. straight beam with a source point in world space that is set in code, and a target that is in world space, also set in c++.

    4. Electrical beam whose noise factor is a particle parameter that I set in code to match the duration of the effect as chosen by Designers via BP defaults.

    Notice how the electrical beam starts scattered and becomes focused over the duration of the effect, again all controlled in C++.

    ~~~

    The Hardest Part

    The hardest part of what you see in the video was making the tangents for the arced beams stay consistent no matter which way the ship is looking in order to point directly at its target!

    I had to use an odd hybrid of world and local space to accomplish this

    Here's what the code ended up looking like!

    Code:
    //World Space Location of Target
    NewBeamLoc = FMath::VInterpTo(
    	NewBeamLoc,
    	(VISVALID(Tracking_Actor)) ? Tracking_Actor->GetActorLocation() : Tracking_Location,
    	GDELTATIME,
    	12
    );
    
     
    //Half way between Eye of Creature and Target Location
    const FVector MidPoint = (NewBeamLoc + GetEyeLocation())/2;
    	
    int32 Index = 0;
    for(UParticleSystemComponent* Comp : BeamArcs)
    {
    	if(VISVALID(Comp))
    	{
    		//TEMP SHOULD REALLY BE HGIHER UP
    		Comp->SetVectorParameter(FName("Target"),MidPoint);
    		
    		//Set the particle tangent position!
    		if(ArcTangents.IsValidIndex(Index))
    		{
    			//Local Space settings set by Designers in Editor
    			// 	as this controls the overall appearance of the arc.
    			// 		not modified during runtime.
    			FVector BPTangent = ArcTangents[Index];
    			
    			//World Dir
    			FVector DirToTarget = (NewBeamLoc - GetEyeLocation()).SafeNormal();
    			
    			//World Right Vector
    			FRotator WorldRight 	= FRotator(0,DirToTarget.Rotation().Yaw,0);
    			WorldRight.Yaw 			+= 90;
    			 
    			//Oddly enough, Tangent has to start at 0!  Strange but true!
    			//		(would have thought it would be be the beam anchor location)
    			FVector Tangent 			= ZEROVECTOR;
    			 
    			//Forward
    			Tangent = DirToTarget * BPTangent.X;
    			
    			//Right
    			Tangent = WorldRight.Vector() * BPTangent.Y;
    			
    			//Up
    			Tangent.Z = BPTangent.Z; 
    			  
    			//Tangent Beam Particle Parameter
    			Comp->SetVectorParameter("Arc",Tangent);
    		}
    		Index++;
    	}
    }
    ~~~

    Things to Note In My Code

    1. The Designers can control the actual arcs of the beams in local space using a dynamic array of Vectors that I exposed to BP Defaults for the creature.

    2. I am having to obtain the world direction and the world right direction between the eye of the Creature its current target, and then convert the local space coordinates set in BP into world positions. These world positions are the locations for the beam tangents that I set via beam particle parameter in Cascade.

    3. The end result is that the beam arcs stay consistent no matter how the creature rotates, but, the beams are still tracking a world space location and the arched beams end at the midpoint betwen ship and its world space target!

    Enjoy the Video!



    Rama
    Last edited by Rama; 10-26-2014 at 06:42 PM.
    100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

    UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

    Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

  22. #22
    0
    Fantastic Job Rama!
    I can already think of some fantastic uses for this

    Out of curiosity, how hard would it be to make the beam that is attached to the target (lag behind) a bit if the target moves too fast?
    -Jeremy-

  23. #23
    0
    The Rainbow Warrior



    Join Date
    Mar 2014
    Posts
    2,601
    Quote Originally Posted by JBaldwin View Post
    Fantastic Job Rama!
    I can already think of some fantastic uses for this

    Out of curiosity, how hard would it be to make the beam that is attached to the target (lag behind) a bit if the target moves too fast?
    -Jeremy-
    I could do that right now!

    I am already interpolating the beam endpoint as you can see here:

    Code:
    //World Space Location of Target
    NewBeamLoc = FMath::VInterpTo(
    	NewBeamLoc,
    	(VISVALID(Tracking_Actor)) ? Tracking_Actor->GetActorLocation() : Tracking_Location,
    	GDELTATIME,
    	12
    );
    I could simply slow down the interp speed to accomplish your goal!

    So instead of 12, I would use something like 3 or 7 !


    Great to hear from you Jeremy!



    Rama

    PS: the thing that makes the above code a little complicated is that I am using the ternary operator ? : to determine whether the target location is a moving target or a stationary point where building construction will begin
    Last edited by Rama; 10-27-2014 at 02:05 PM.
    100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

    UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

    Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

  24. #24
    0
    Thanks alot Blackrock, I totally agree on having more hybrids. We will need playtesters

  25. #25
    0
    Looks really good...the scifi landscape is probably the best ive seen in ue4 yet

  26. #26
    0
    @WarpSpasm, thanks for the compliment. I'll post shots of that level as Kevin has been spending alot of time with it improving areas.

  27. #27
    0
    Nice Rino character

  28. #28
    0
    Quote Originally Posted by BrUnO XaVIeR View Post
    Nice Rino character
    Thanks, I loved Rocksteady as a kid and always wanted to do a Rhino character

    The team did a great job putting him together.

  29. #29
    0
    Monsters in the deep, Kevin & Rod working on scene development.

    Name:  MonsterIntheDeep.jpg
Views: 6835
Size:  536.9 KB

  30. #30
    0
    The Rainbow Warrior



    Join Date
    Mar 2014
    Posts
    2,601
    Rama PhysX Rock Vortex

    I've been doing some low level PhysX coding and used a pure C++ class to control all the apex pieces of a destructible actor!

    After an initial regular apex explosion that sends the pieces flying and bouncing off the landscape and anything else that is around, then the apex pieces are lifted into the air and made to spin in a Vortex shape!

    This effect has no noticeable performance impact!

    The lowest ms I ever see is 11.11 on my computer, and after my affect activates the ms is still 11.11 / my FPS is at my chosen max of 90 !

    ~~~

    Blueprints

    I exposed my entire PhysX Rock Vortex to Blueprints!

    Any of the settings can be controlled from Blueprints all the way down to the PhysX code!

    ~~~

    Rock Collisions

    Notice that the PhysX pieces collide with each other and anything they encounter even while they spin the vortex formation I made for them in code!

    ~~~

    Pure C++

    Each Apex piece is being controlled with a pure C++ class that applies impulses to the apex piece to keep it in its proper orbit.





    Enjoy!

    Rama
    Last edited by Rama; 11-02-2014 at 06:01 AM.
    100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

    UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

    Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

  31. #31
    0
    Particles, particles and even more particles.

    I have been spending time doing particle work for the game. I just released a 50+ custom Vector Field library for the marketplace. I authored the vector fields in Maya 2015. It was alot of fun and produced some nice effects. I particularly love the energy wall, napalm effect, & the poisonvent

    Name:  screen3.jpg
Views: 7064
Size:  746.6 KB

    Vote here https://trello.com/c/NciPWSp5/178-vector-field-particle-pack if you want to see more

  32. #32
    0
    After doing some much needed props for game mechanics. Leo is back to new character work. Here is an early Enchantress bust.

    Name:  enchntress2.jpg
Views: 6722
Size:  690.1 KB

  33. #33
    0
    Gun Impact particles. I have been deep into Particle FX as of late intermixed with UMG, Animation, & Coding. I did just finish another particle pack for the marketplace (if I get enough votes).

    VOTE HERE

    Name:  IP_MainImage.jpg
Views: 6377
Size:  719.6 KB

    These are aligned perfectly to be plug & play with surface normals plus exposed Vector parameters for reflection velocity debris sprays.

    Enjoy and have fun with your Gamedev!

  34. #34
    0
    Former Staff
    Join Date
    Sep 2014
    Posts
    577
    [QUOTE=Rama;170048]Fun With Beams!

    This video shows the Ship Creature's charge up affect as it prepares to blast the ground to create new structures or deal with unauthorized base visitors!

    In this video I am using several kinds of beams in several different ways!...


    I love it! Great security system! Ha ha

  35. #35
    0
    Quote Originally Posted by Steve Hardister View Post
    I love it! Great security system! Ha ha
    Thanks Steve! I would love that kind of security! =)

  36. #36
    0
    Muzzle flash mania! I've spent some time getting acquainted with Cascade by doing muzzle flashes for Abatron. My latest work is up for Marketplace voting, 100+ muzzle flash library.

    Vote Here if you like what you see! =)

    Name:  MF_Image2.jpg
Views: 5952
Size:  485.6 KB

  37. #37
    0
    Champion
    Join Date
    Jul 2014
    Posts
    714
    I like the game progress
    About the muzzle flash pack, a lot looks the same, i think proposing some 30 base ones would suffice and people can adjust parameters to make variations (quality over quantity).
    Last edited by Galeon; 12-01-2014 at 07:35 AM.

  38. #38
    0
    Quote Originally Posted by Galeon View Post
    I like the game progress
    About the muzzle flash pack, a lot looks the same, i think proposing some 30 base ones would suffice and people can adjust parameters to make variations (quality over quantity).
    Thanks Galeon. I totally agree with you on the quality over quantity. However on this specific case, I found it was rather "hard" for a non-cascade user to make bigger instances of the muzzle flashes. I know that my level designer said the same thing. "Can't I just scale it up?", and the answer was not really. One of the things I really dislike with Cascade and hopefully Niagara doesn't have the issue is the sprite orientation process.

    The most believable look is to use use the sprite velocity for alignment and have it rotate along that velocity vector for facing the camera. Then ontop of that you should scale the size at the same rate it is moving out of the barrel. Finally, I put a drag over life to slow the sprite down after the initial "blast". When I tried to size up the effect, it was a balancing of the velocity vector math, size over life, & drag variables. To make my long explanation short, I figured it was a little too difficult for a non-cascade user. Plus my level designer didn't want to learn the particle system in that depth for modifications. =)

    You are right that there are 13-14 base muzzle flashes with 8 different size variations. I hope that explains the pack a little more. I'll make sure to make that clear to people!

  39. #39
    0
    Champion
    Join Date
    Jul 2014
    Posts
    714
    Thanks for clarification, and you are right having premade ones is better for people that don't know Cascade.

  40. #40
    0
    Samaritan
    Join Date
    May 2014
    Posts
    130
    Quote Originally Posted by Devero View Post
    I've been working with the artist to figure out some normal map shadowing on the manalock gun. After 3 days of grueling test and iterations, we've concluded that Maya 2015 is better at baking normal maps than Xnormal.
    This isn't quite true. It is more accurate to say that Maya 2015 is better at baking normal maps for Maya 2015's viewport.

    What you're calling 'shadowing' is actually the normal map attempting to compensate for the gouraud shading of the low poly model. The problem is, the way each program renders normal maps is different (due to what tangent space they use), so how xNormal renders this compensation is different to Maya. To avoid errors like this, both the tool you're using to generate the normal map and the system rendering it should have synchronised tangent spaces. Epic have said that xNormal is pretty close to UE4's tangent space. In my experience it's fairly close to Max's too, which I prefer to use to xNormal anyway for many reasons. So those errors you're pointing to may not show up in Unreal - ultimately, Maya is not a good way to judge the final look.

    There's 2 ways to avoid it: split the smoothing groups of the low poly, so you reduce the amount of compenstation (tension) in the normal map, or use Handplane to generate synced tangent space maps from an object space map. Unfortunately it doesn't support UE4 yet.
    Last edited by DaveFace; 12-02-2014 at 05:08 PM.

Page 1 of 4 123 ... LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •