Your comments

This was resolved in Discord. The solution is to put a custom Animator Controller in the Animator field of the Muzzle component. Then use Triggers to call those animations.

Yep, Wait 0 seconds works as well (thanks @kingofzombies)

4) Headshots should cause more damage.

That's what I had. Is this wrong??

Docs said to use IK_leftFoot and IK_rightFoot. I tried your spelling and the docs'. Doesn't work.

https://streamable.com/dhla4

Error is gone.

However, my method above doesn't actually work: https://streamable.com/0r12r
The Muzzle does not follow the animation of the Player (I used Character Model Action to change arms, then parented Muzzle to the arms). I think the Muzzle and the arms have to be one instance. So what I think we need is the ability to change the Player Model to a prefab that contains both the animator and Muzzle.

Nope. Using 2018.4.11f1.

There are games using an Adventure Camera where when you shoot from ease state, you shoot in the direction camera is facing. So it would work if you have the "where you want to shoot" on the Shooting state as well.

Aside from that, if you Aim Weapon right away after drawing, how would that work for snipers? There'd be no way to do 360* no scopes (lol). And you know in Call of Duty and Battlefield, they have "steady breathing" which would probably be an additional state. I could think of a bunch of examples but another one would be when an enemy comes around the corner it's much better to hip-fire rather than aiming down sights then shooting, especially for shotguns.


There are just too many restrictions.

I mentioned this in another post, but there should also be "On Ease" and "On Aim" action lists. It would be useful for changing Camera Motors (ex. when aiming, go from Third Person to First Person). I think if possible, every state should have an action list. In fact, if this is the case, then having a "Change Crosshair" Action would be a better solution than what I said before about Crosshairs


Solution:

1) After dragging in the 3D Model, move the child of Player to be child of your camera.
2) The prefab with the Muzzle Component should just be an empty gameobject. This is what you insert under 3D Model in the Weapon object.
3) In order for the Muzzle to move with your gun, you have to parent it to your gun at runtime. You can't put something like "On Start" -> "Parent to gun", because it can't reference scene objects when it hasn't been instantiated. But what you can do is "On Start" -> "Store gameobject as Global Variable". Then this image should explain the rest:

The error still exists, but I think you can just add an option to turn off the procedural animations.