✓ Accepted answer
This can be done with some basic knowledge of Model and Vector3/CFrame.
Note: I will only give you an idea, not a script.
Model
So a Model has a property of name PrimaryPart which means that the other parts inside of a model will maintain their orientation and offset perspective to the PrimaryPart if it moves, so basically, they will follow and rotate according to their perspective of the PrimaryPart if it's moved/rotated.
Note: The part that you assign as PrimaryPart has to be a descendant of the Model itself!
PrimaryPart
Model.PrimaryPart = Model.part
Vector3/CFrame
You want the model to face the tree and make it not point vertically. We do this by keeping the PrimaryPart's X/Z position the way it was before but change the Y axis according to the tree position.y.
easily done like this:
lookTo = Vector3.new(Model.Part.Position.X, tree.Position.Y, Model.Part.Position.Z)
Then we use the lookTo variable onto the PrimaryPart's CFrame to change its rotation, according to the tree.
Model.Part.CFrame = CFrame.new(Model.Part.Position, lookTo)
CFrame, Vector3
2 comments
This almost works for me, when they try to rotate they trip and fall then when they stand up they are facing away from the tree.
Fixed