Physique de wheelie
Street Riders utilise un système de wheelie continu basé sur les forces, contrairement aux wheelies animés par script que l'on trouve dans d'autres mods. Chaque wheelie est simulé physiquement en temps réel; la moto se soulève, s'équilibre et se stabilise en fonction des forces, des vitesses et des angles.
Comment ça fonctionne
Une force ascendante régulière est appliquée à l'avant de la moto à chaque frame. La force est amortie par la vélocité angulaire, empêchant la moto de dépasser la cible et d'osciller. La gravité fournit une résistance naturelle, et le système s'ajuste continuellement pour maintenir l'angle cible.
Phases de contrôle de l'inclinaison
Le wheelie est divisé en quatre phases basées sur l'angle d'inclinaison actuel par rapport à TargetPitch :
0° ──────────────────────────────────── MaxPitch
[Soulèvement] [Atténuation] [Maintien] [Correction]
0%─50% 50%─100% Cible Au-dessus de Max
| Phase | Plage | Comportement |
|---|---|---|
| Soulèvement | 0% à 50% de TargetPitch | Force de soulèvement complète appliquée, amortie par la vitesse d'ascension |
| Atténuation | 50% à TargetPitch | La force s'estompe progressivement avec l'amortissement de la vélocité: transition douce vers la cible |
| Maintien | TargetPitch à MaxPitch | Aucune force appliquée: la gravité stabilise naturellement à la cible |
| Correction | Au-dessus de MaxPitch | Une force inverse douce repousse la roue avant vers le bas pour éviter le retournement |
Réglage par moto
Chaque modèle de moto peut avoir son propre profil de wheelie en utilisant les sections [Bike_XXX]. La moto doit être listée dans BikeOverrides dans [General].
Exemple : Sanchez (cross agressive)
[Bike_SANCHEZ2]
LiftForce = 0.32
TargetPitch = 50.0
MaxPitch = 55.0
Exemple : BF400 (sport/cross modéré)
[Bike_BF400]
LiftForce = 0.15
TargetPitch = 45.0
MaxPitch = 50.0
Seuls les paramètres que vous incluez sont remplacés; tout le reste revient à [DefaultWheelie].
Guide de réglage
| Problème | Solution |
|---|---|
| La moto se soulève trop fort | Diminuez LiftForce |
| La moto ne se soulève pas | Augmentez LiftForce |
| L'angle de wheelie est trop haut | Diminuez TargetPitch |
| La moto se retourne | Diminuez MaxPitch |
| Le wheelie reste instable | Diminuez LiftForce et augmentez TorqueOffset |
WheelieExcludedModels
Certains véhicules à deux roues ne tentent jamais de wheelie :
WheelieExcludedModels = BMX, CRUISER, TRIBIKE, TRIBIKE2, TRIBIKE3, SCORCHER, POLICEB
Ajoutez n'importe quel modèle de moto à cette liste séparée par des virgules pour l'exclure.
Support des motards naturels
Quand ApplyToNaturalRiders = true, l'IA de wheelie s'applique également aux motards PNJ déjà présents dans la circulation. Le mod scanne les motards à proximité dans NaturalRiderScanRadius et leur donne le comportement de wheelie.
ApplyToNaturalRiders = false
NaturalRiderScanRadius = 200.0
Système de remontée
Quand un motard tombe de sa moto (à cause d'un crash ou d'un wheelie raté), le système de remontée s'active :
- Le motard détecte qu'il n'est plus sur sa moto et pas dans un véhicule.
- Un temps de recharge (
RemountTaskCooldown) empêche un redéclenchement rapide. - Le motard marche vers la moto s'il est à moins de
RemountEnterDistanceetRemountMaxDistance. - Si le motard ne peut pas atteindre la moto dans
RemountTimeout, il arrête d'essayer. - Après
RemountForceTimeoutmillisecondes, le motard est téléporté de force sur la moto (0 = désactivé).
Interaction avec la police
La police peut poursuivre les motards qui font des wheelies dans la circulation :
| Paramètre | Défaut | Description |
|---|---|---|
AllowPoliceArrest | false | Activer la poursuite policière des motards |
PolicePursuitRadius | 100.0 | Portée de verrouillage de la police (mètres) |
PolicePursuitMinDuration | 15000 | Durée minimale de poursuite avant d'abandonner (ms) |
Référence de configuration
| Paramètre | Défaut | Phase |
|---|---|---|
LiftForce | 0.18 | Noyau: force vers le haut par frame |
TorqueOffset | 1.2 | Noyau: bras de levier (plus haut = plus de rotation) |
PulseIntervalMs | 0 | Noyau: 0 = continu, >0 = pulsé |
MinSpeed | 12.0 | Noyau: vitesse minimale pour tenter (m/s) |
TargetPitch | 40.0 | Inclinaison: angle cible (degrés) |
MaxPitch | 43.0 | Inclinaison: correction d'urgence (degrés) |
AttemptDurationMin | 3000 | Timing: tentative minimale (ms) |
AttemptDurationMax | 5000 | Timing: tentative maximale (ms) |
SustainDurationMin | 5000 | Timing: maintien minimal (ms) |
SustainDurationMax | 20000 | Timing: maintien maximal (ms) |
AttemptDelayMin | 1000 | Timing: délai entre tentatives (ms) |
AttemptDelayMax | 5000 | Timing: délai entre tentatives (ms) |
AttemptsMin | 1 | Timing: tentatives par cycle de conduite |
AttemptsMax | 4 | Timing: tentatives par cycle de conduite |
RaycastDistance | 10.0 | Sécurité: portée de détection d'obstacles (m) |
MaxSteeringAngle | 12.0 | Sécurité: direction max pendant le wheelie (°) |
BrakeThreshold | 0.5 | Sécurité: le frein annule le wheelie |
DriveSpeed | 20.0 | Conduite: vitesse de croisière (m/s) |
MaxEntitySpeed | 25.0 | Conduite: limite de vitesse absolue (m/s) |
DriveAbility | 1.0 | Conduite: compétence IA (0,0–1,0) |
DriveAggressiveness | 1.0 | Conduite: agressivité IA |
DrivingFlags | 802877 | Conduite: champ de bits comportement IA |
BlockNonTempEvents | true | Piéton: bloquer les événements interrupteurs |