AlignOrientation does use attachments, one on the real arm, one on the ViewModel arm, for each arm. It’s my understanding these can be used in addition to the Motor6D you already have on the real arms. Not an expert, but if you haven’t looked into this option maybe it can work for you.
You mean RealArmCFrame * Offset and make it position to the right place?
As a starting point for the idea of how to do this, yes. Though you may want more or other combinations of CFrame operation strung together.
I imagine that each Renderstep frame, you want to copy the RealArmCFrame (rotation and orientation), but you want the position component of the ViewModel Cframe to be Offset from the camera … or something.
And then I’m just adding that you can continue adding or multiplying CFrame operations as needed to arrive at whatever position and orientation you need, if you need more. See the Understanding CFrames article and the graphic just above CFrame + or - Vector3.