This was always one thing I wanted with FCNPC was delta playback since it was not supported correctly. I am just pasting my code snippet for the solution to this problem and perhaps someone could do an official implementation with some tweaks.
It takes 3 parameters
Position to start playback
const CVector& vecPoint
float* fQuaternion
Passed from the script with but there is a probably a better way to reference this
FCNPC_GetQuaternion(npcid, rw, rx, ry, rz);
Lets you specify rotation offset angle for play back
float zoff
Some more notes:
Recordings should be made at 0, 0, 0 you could do say a series of attack punches then play that back anywhere at any angle, other use is recording jumping down off a ledge.
This was always one thing I wanted with FCNPC was delta playback since it was not supported correctly. I am just pasting my code snippet for the solution to this problem and perhaps someone could do an official implementation with some tweaks.
It takes 3 parameters
Position to start playback const CVector& vecPoint
float* fQuaternion Passed from the script with but there is a probably a better way to reference this FCNPC_GetQuaternion(npcid, rw, rx, ry, rz);
Lets you specify rotation offset angle for play back float zoff
Some more notes: Recordings should be made at 0, 0, 0 you could do say a series of attack punches then play that back anywhere at any angle, other use is recording jumping down off a ledge.
`bool CPlayback::Initialize(const CVector& vecPoint, float* fQuaternion, float zoff) { if (m_iRecordId == INVALID_RECORD_ID) { return false; }
}`