memomem

備忘録・メモ置き場

WheelColliderでスリップしないタイヤをつくりたい

from ChatGPT

WheelFrictionCurve leftFriction = wheelL.sidewaysFriction;
leftFriction.stiffness = 1f;
leftFriction.extremumSlip = 0f;
leftFriction.extremumValue = 1f;
leftFriction.asymptoteSlip = 0f;
leftFriction.asymptoteValue = 1f;
wheelL.sidewaysFriction = leftFriction;

https://github.com/tier4/AWSIM/blob/main/Assets/AWSIM/Scripts/Vehicles/Wheel.cs より

Vector3 GetSkiddingCancelForce()
            {
                var pointVelocity = wheelCollider.attachedRigidbody.GetPointVelocity(wheelHit.point);
                var wheelVelocity = pointVelocity - Vector3.Project(pointVelocity, wheelHit.normal);
                var localWheelVelocity = Vector3.zero;
                localWheelVelocity.y = Vector3.Dot(wheelHit.forwardDir, wheelVelocity);
                localWheelVelocity.x = Vector3.Dot(wheelHit.sidewaysDir, wheelVelocity);

                Vector2 cancelForce = -1 * skiddingCancelRate * wheelCollider.sprungMass * localWheelVelocity / Time.fixedDeltaTime;
                Vector3 skiddingCancelForce = wheelHit.sidewaysDir * cancelForce.x;

                return skiddingCancelForce;
            }