Here’s a video of me retargeting my idle anim to a metahuman:
EDIT: video re-done with the new project’s version, so no remove and re-add virtual bones anymore
The hands position aren’t supposed to be preserved on the new skeleton, several bone sizes are different, specially hands. Since I’ve included an IK system in the anim BP, you can fix hand position on the gun quickly in the anim graph, just using one TransformBone node. If you want more specific instructions, please come to the Discord server where I already have pics for that. I just need to ask you to please send me your Order ID privately so I can send you the invite (to see your Order IDs just login to unrealengine.com, hover over your username on the top-right corner, then click Personal → Transactions).
Awsome system. Are there any plans to natively use Control-Rig in the future?
And use Animation Pose Assets to lay the hand around the weapon, eg. to only have one walk animation an not for every weapon?
Would make adding something to your current system for us all a lot easier
Currently there are no plans to use control-rig or pose assets in this project. Maybe in the future, but right now I don’t see much real benefit (vs the amount of complexity added), since all those things already can be done with just anim blueprints…
May I ask if you have plans to change the current recoil of the weapon. Currently, it is affecting the camera by “add camera pitch”. Do you think you could set it up or have another alternate setup wherein it affects virtual bones handling the arms so that if the weapon recoils and goes up, it does not affect the camera pitch especially during non-ads or not aiming. In real life our eyes/head do not go upwards but only the weapon and arms when not aiming. Also having the camera be affected by the recoil makes a repetitive type of camera shake that is hard to fine tune or remove.
Hey, yes, you’re very welcome to the Discord server! I’m sending you a private msg.
Regarding recoil, I don’t have plans to change it… You can see a video of a person shooting a gun and see how recoil affects the head.
If you want to remove the head movement (both the AddControllerPitchInput and the StartCameraShake), there’s already code that makes the hands move when firing, but they only move backwards and don’t actually move with each shot, they move continuously starting when you start firing and stopping when you stop firing. It’s governed by the var GunRecede in the anim BP. You could look into that and change it if you want.
Another thing to note is that shots don’t come off from the gun, but from the camera. You’d need to change that, otherwise the hand movements will only serve as visual effect. If you make shots come off from the gun you’d also have to implement some sort of zeroing system for your sights, unless you want to have bullets always hitting below where you aim.
Personally I think that removing head shake removes almost completely the impact of firing a gun and leaves it feeling very sterile…
Hi thanks for the invite. I will check out the code.
Yeah that is one of the challenges since linetrace comes from the camera. Alternatively, I have to use projectiles that shoots from the muzzle socket and as you mentioned zeroing. I will probably add a logic only if the gun is a bit pointed in the center before the fire logic can proceed.
Yup, but I rather have my own camera shake settings that I can control more subtly during fire
Hey, great product. I think I messed something up though. Clients can’t edit the guns. The blue markers dont show up, clicking to equip them does nothing and these errors show up. Any ideas what I may have messed up? Thanks.
Everything is set like that, I never changed anything in this actor, mostly just the gun parent. any idea if something done in the gun parent would cause this error? Where is handling part set? I think I might be able to backtrack to the problem. It is also worth noting that the markers do not appear on the gun when you click the part you are trying to put on the gun. I did copy paste the sockets to add more areas to put stuff on the gun but I figured that wouldn’t harm anything being it worked fine on the server. Thanks.
Ok so I found where Handling part gets set to nothing. At the other side of Server enter add part (the code in the picture) part returns invalid, however, at the start of this code, it still returns valid.
If you are actually feeding the part to the server via the ServerEnterAdd node, but when you try to get this part from this node on the server side it returns nothing, that would mean a bug in the engine’s replication which I find very unlikely.
Are you 100% sure you’re actually feeding the part to the node? Do this test just like I did in these pics below. I’ve placed a node to print the name of the part being fed on the client side and another node to print the same part on the receiving part (server side). Note that when I start adding the canted rail it’s name gets printed twice, once labeled as client and once labeled as server, meaning it was sent and received:
Yup, I already did that actually. I ended up finding a workaround by getting the name of the part from that pin and then spawning that part on the server based on the name and setting handlepart with the newly server spawned actor. Its a pretty unfavorable workaround but at least it works.
Ok so my workaround works great in viewport simulating both client and dedicated server, as well as the standalone option. Pretty much everything except in a packaged game? I’m at a complete loss. I can’t even find any ue4 documentation on any gameplay differences between packaged game and standalone launch.
The problem with that is that since the gun part is a replicated actor, spawning it on the server spawns automatically a copy on the client, so you’ll end up with 2 copies on the client instead of 1. Which reminds me, the root of your problem might be that you’re not spawning the parts on the server at the beginning of the game in the first place. Please check the code that spawns the parts, in the original asset it only spawns them on the server (on the clients they get spawned automatically by the engine as a consequence).
When we send the part via the ServerEnterAddPart to the server, we aren’t actually passing the part, we’re passing just a ref so the server grabs the correct part in it’s own inventory.
Just checking, have you tested the packaged game in multiplayer? Have you installed it in 2 different machines and did you connect the client to the server (does your project have server connection code)?
Regarding gameplay differences, packaged game and launch are not supposed to have gameplay differences, they don’t interfere with your gameplay code…