I am about to start looking at a very similiar problem and have been asking myself some very similiar questions.
The thing is, we do this everyday in real life and give it hardly any thought, yet the maths behind it are pretty complicated...
Some questions:
Will the pass always reach its target? Presuming it is not intercepted in some way. I presume this is the case, otherwise we are simply talking about lobbing the ball in the appropriate direction.
You may factor in some sort of skill that would modify the trajectory after its calculated, but for now I want the ball to go from passer to passee perfectly, building in power limits and so forth can also come later.
In my case I am looking at throwing, instead of kicking, but the principal's are the same. I have not coded any of this yet, so this is all hypothesis and may well be very wrong and I wouldn't be suprised if there is a simpler solution.
For the ultimate understanding of what your looking for, in terms of the actual maths behind it, I would recommend you read the 'General Ballistic Trajectory' as well as all the other refernces on that page (Certainly a page that should be added to the Physics FAQ), anyway here is the link
GSU Department of Physics & AstronomyThe first thing is the angle around the z axis, the one used to work out what direction to send the ball, is something very simple to work out, the only real thing here is to send out some kind of scan from the passer in the direction he is going to pass, to guess who he is trying to pass too, presuming you are not adding some kind of 'off the ball' clone from Fifa, in which case it would know who you are trying to pass to from that. Either way once you know who you are passing to you will need to get the correct angle for the pass, which will of course need to include the 'Lead-Factor' if players are moving. Discussion on calculating the 'Lead-Factor' can be found here
Accurate Shooting - Vector HellFor now lets leave the LF out of the equation and just focus on passing it from one point to the other. Essentially this:
![](http://hyperphysics.phy-astr.gsu.edu/hbase/imgmec/tra12.gif)
[Some one has just come into the office, I will have to come back to this later today]