Longbow - a rudimentary example:
The bow and string are both initially shaped using a straight Nurbs Path bevelled with their respective curve circle.
That Bow only is then converted to mesh with ALT-C. This leaves the bow as a hard meshed cylinder with plenty of cross section subdivisions with which to flex it when the string is drawn back.
The string is left as a straight Nurbs path with an even number of control points each side of it's center one. These are used to keep the string straight as the center is drawn back.
The outside two are used to stretch and relocate the ends to match them with the bow's ends.
When the string is formed initially,
Give it as many control-point pairs as felt necessary. These are placed equidistant and outwards from the center. This example was given 6. (3 pairs plus the single one at the center)
Hook-empties are added to control each pair of control points (location only) back along it's length
Another Hook is added to control the center one.
NOTE - Hooks are only moved along the axis perpendicular to the string.
At frame 1, keyframe the LOCATION ONLY for all hooks. The outer Hook needs a keyframe for it's scale also.
Move the timeline cursor to frame 15 (?).
Pull the center Hook back so the center of the string is where it's required at the full drawn-back location.
Pull the other Hooks back to shape the string as a straight Vee.
The outer pair Hook is drawn back also and to where the Bow's ends are to be flexed. Scale it along the string's axis to stretch them as necessary. (all can be fine tuned later)
Keyframe all 4 Hooks.
Run the animation, see that it looks ok.
With the string animated, (more or less) it's time to take the timeline back to frame 1 and rig the Bow mesh.
Bones are placed along the Bow's length as shown, rigged so we can flex it's ends by rotating the end bones. (the inner bones too if felt necessary)
Go to frame 15 and position the bow's ends and the string's outer Hook to bring them together.
Keyframe the string's Outer Hook again, (location and scaling) then keyframe the bone rig - rotation only. Don't keyframe it's location. If you do, delete those in the Dopesheet.
Play the animation, readjust as necessary.
When all is ok, the launch sequence keyframes can be added...
Move the timeline forward enough frames from the draw-back to hold that pose for about a second or less,
keyframe everything again. (duplicate the draw-back frames in the dope-sheet (SH-D) and slide them forward to the timeline cursor)
At 2 or 3 frames on from there, duplicate the bow's and string's frame 1 keyframes, drag those to the timeline cursor.
Try it out, see if it looks right, albeit a little mechanical.
To make the string appear normal, it should oscillate forward and back a couple of times after it reaches the at-rest frame. Add these keyframes after the launch.
An arrow can be added at frame 1, and keyframed to follow the string's center as it's drawn back and again to follow the string during the launch. Another is added (with linear interpolation) to continue it on it's way at the same speed.
To enable the entire thing to be used elsewhere -
Parent the Arrow, Hooks, Bow, and String, to the Main Bone.
Move/Rotate/Scale the assembly by the Main Bone only.
When appending to a new scene, all individual components will need to be included. (reinstate their selection arrows in the Outliner if necessary)
The bow and animation can be appended into any scene, relocated etc. It's animation keyframes will go with it and these can be slid forward in the dopesheet to be launched at any frame and as often as required by duplication, again in the Dopesheet.
HINT - At the bottom of the Dopesheet window, click on the ghost icon and the arrow icon next to it. This will limit the keyframe display to only those objects selected in the 3D window.