Provided you can reference the car, all you have to do is get its skeleton and then retrieve the desired socket’s transform or location. To attach/parent you would use the skeleton as the target component and the name of your socket as the target socket. Try to isolate the main problems first. For instance, try to print the name and coordinates of the socket from the character, or the character’s coordinates from the car. If you can do that there is no reason you can’t do the rest.
Can you interpolate the character to the driver’s seat position without worrying about any animation? In fact, you don’t need to interpolate at all, just teleport the character to the right place first. If you don’t know how to do that, then it doesn’t have to do with montages, it has to do with not knowing where to get the information you need from and what to do with it. If you can do that, then it has to do with not knowing how to respond to notifies. Pinpoint the problem then research.
I’ll give you an example of how this system could work. Imagine we define a volume around the car. The volume knows what car it references by definition. If you press a predetermined action key inside that volume, it receives whatever character is interacting with it as a parameter. It can then trigger a callback in the car, passing the character as a parameter, or it can trigger a callback in the character with the car as a parameter. The callback would then parent the character to the car, triggering whatever animation it needs to run. The montage would trigger an event at the precise point the vector interpolation should take place, and since you already have a mechanism to tell what car you’re interacting it, it’s just a matter of knowing what functions to call.
My game uses a custom character movement component which moves the character always in relation to the player’s point of view. It is angle based and locked to a plane of movement. The character has a native C++ function called Push() which pushes the character in a desired direction. I have a notify called SetPushScale_AN that sends the PushScale and the InterpolationSpeed to the character blueprint. The character blueprint interpolates between the current PushScale and the newly received TargetPushScale using the InterpolationTime. This doesn’t interpolate the character between two vectors, like you want to do.
A better example would be if I wanted to have execution animations or cinematic attack animations. That would be the exact same problem you’re having. In my case, I already have a SetAttackProperties_AN notify that let’s me specify whether an attack should trigger a special animation. I’d just put a socket in front of my main character, which would be where I’d teleport the enemy character to. I wouldn’t need to interpolate, but it’s the same. The question is: what enemy do I execute? The weapon’s hitbox can tell me that, so I’d have a variable to reference an enemy or even a collection of enemies the last attack successfully landed on. With this information, I have all I need to implement it such a gameplay feature.
I speak in such general terms because I’m no UE4 expert, I don’t really know all the provided functionality, but I’m used to reading documentation and source code. With time, frameworks are all the same. The specifics change, but the concepts are universal. That’s what I’m trying to relay to you. Just so you don’t say I didn’t send you some nodes though, take a look at Get Socket Location, Get Socket Transform, and Attach to Component, and make sure you understand what the parameter Target, which is usually set to “self”, means.