Zones de Contrôle, La physique des collisions des jeux 3D |
Bienvenue invité ( Connexion | Inscription )
Zones de Contrôle, La physique des collisions des jeux 3D |
mercredi 22 avril 2020 à 10:47
Message
#1
|
|
Fort coup de vent Groupe : Membres Messages : 2929 Inscrit : 13/08/2015 Lieu : Montpellier (Hérault) Membre no 26087 |
Détection de collision
Dans les simulations physiques, les jeux vidéo et la géométrie algorithmique, la détection de collision implique l'utilisation d'algorithmes pour tester les collisions (intersection de solides donnés), pour calculer des trajectoires, et les points d'impact suivant un modèle physique. Sphères de collision La physique des billes de billard est une bonne analyse, à l'aide de modèles de mouvement de corps rigide et de collision élastique. Une description initiale de la scène devrait être donnée, avec une description physique précise de la table de billard et des billes, de même que les positions initiales de toutes les billes. Ces sphères de collision, représente la consistance d’un volume 3D, elles caractérisent la résistance aux chocs. Boîtes englobantes (Boxes) Les boîtes englobantes ou volumes englobants sont la plupart du temps des rectangles 2D ou des cuboïdes 3D, mais d'autres formes sont possibles. On a essayé le diamant englobant, le parallélogramme englobant minimum, l'enveloppe convexe, le cercle englobant ou la balle englobante, et l'ellipse englobante, mais les boîtes englobantes restent les plus populaires grâce à leur simplicité. Les boîtes englobantes sont généralement utilisées lors de l'étape initiale (élagage) de la détection de collision, pour n'avoir à comparer en détail que les objets dont les boîtes englobantes se recouvrent. Ces Boxes caractérisent des fonctions particulières pour la mise en application des algorithmes ou les jeux vidéo doivent partager leur temps de calcul limité entre plusieurs tâches. En dépit de cette limitation des ressources et de l'utilisation d'algorithmes de détection de collision relativement primitifs, les programmeurs ont été capables de créer des systèmes crédibles, bien qu'inexacts, pour une utilisation dans des jeux. Application SH4 Le jeu SH4 (SH3) utilise ce principe de simulation physique. La description et l’utilisation de ces fonctions prendra comme exemple les fichiers de contrôle des zones du DD Fubuli et de façon plus générale, les sous-marins, avions et navires, afin de mettre en évidence l’interaction de l’ensemble des fichiers concernés. Ce message a été modifié par <S639>AMAZONE - jeudi 23 avril 2020 à 07:12. -------------------- On peut braver les lois humaines mais non résister aux lois de la nature.
Vingt mille lieues sous les mers (1869) - Jules Verne |
|
|
mercredi 22 avril 2020 à 18:32
Message
#2
|
|||
Fort coup de vent Groupe : Membres Messages : 2929 Inscrit : 13/08/2015 Lieu : Montpellier (Hérault) Membre no 26087 |
La plus part des objets modélisés 3D, possèdent un fichier de contrôle des zones définissant des sphères de collision et des Boxes pour établir des fonctions ou des effets.
Les Zones de Contrôle : Ces zones sont définies et paramétrées dans le fichier Zones.cfg Les fichiers _.zon, dans SH3 ou SH4, définissent ainsi Zones de Contrôle des Torpilles, Mines, Avions, Navires et Sous-Marin. Depuis SH4, les unités jouables (sous-marin), ont certaines des fonctions ou certains paramètres de Zones de Contrôle définis à partir des sections de fichiers : _.UPC (unit Player Control) propre à chaque unité, ou en évolution du jeu défini à partir des dossiers /UPCData (UPCDataGE). Ceux-ci définissent en règle générale l’état d’un compartiment et de leurs sous-systèmes. Description à partir du NDD_Fubuki (Vanilla) Considérons le fichier 3D : NDD_Fubuki.dat et le fichier de contrôle de Zones : NDD_Fubuki.zon Nous avons la coque principale caractérisée, entre autre par le contrôleur général : Colisionable Object Utilisation des identifiants, afin de définir la filiation du SH3ZonesCtrl, permet de distinguer les éléments analysés. Caractéristiques générales La coqque Ppale Fubuki : Identifiant : 0xbb7681c8a3a28a31 (Fubuki.dat) Et la dernière Zone de contrôle du fichier Fubuki.zon 22 : ColisionableObject Parent id. : 0xbb7681c8a3a28a31 23 : ColisionableObject ArmorLevel = 25 Hit_Points = 200 CrashDepth = 300 CrashSpeed = 1,0 Rebound = 0,45 Description des paramètres ArmorLevel = 25 C’est le niveau de résistance (en cm ???) on peut considérer cela comme un bouclier (armure) De zéro à 100 , de pénétration sans résistance à pénétration impossible Hit_Points = 200 Représent le nombre de points de vie à perdre pour considérer l’unité comme détruite. CrashDepth = 300 Profondeur (en m) maximum de la visibilité du modèle 3D ou de ses éléments. Au-delà, l’épave disparait afin d’alléger les calculs. CrashSpeed = 1,0 Vitesse de destruction en cas d’inondation ou perte de flottabilité : Le nombre de points de vie perdus en 1 sec lorsque le navire est immergé. Ou concernant un submersible, le temps passé au-delà de la profondeur limite de sécurité. Rebound = 0,45 Le coefficient de rebond (de 0 à 1) utilisé lors d'une collision avec d'autres objets. Zone de contrôle : 2 SH3ZonesCtrl : Parent id : 0x146208f31d01f3a2 il s'agit du mât tripode AV Les Sphères de collision nb : 9 Cordonnées X, Y, Z, Radius = Rayon Type = -1 (cette valeur "-1" détermine qu'il s'agit d'une sphère générique pour recherche de collision, sans autres fonctions) Collision : True (coché), sinon pas d’interaction de collision • Armor Level = -1,0 LinkTo = 0x0000000000000 pouvant éventuellement être lié avec un autre élément • Armor Level = -1,0 Cette valeur -1,0 , implique pour cet élément, de prendre comme valeur générique celle définie dans ArmorLevel Du ColisionableObject défini pour la coque Ppale (voir plus haut). Dans ce cas les calculs s’effectuent avec la valeur AL = 25. Si l’on désire définir une autre valeur, elle sera ajustée en valeur positive (de 0 à 100). Aussi je pense que le -1,00003 n’a pas de sens … A suivre Ce message a été modifié par <S639>AMAZONE - samedi 25 avril 2020 à 14:56. -------------------- On peut braver les lois humaines mais non résister aux lois de la nature.
Vingt mille lieues sous les mers (1869) - Jules Verne |
||
|
|||
samedi 25 avril 2020 à 06:45
Message
#3
|
|
Fort coup de vent Groupe : Membres Messages : 2929 Inscrit : 13/08/2015 Lieu : Montpellier (Hérault) Membre no 26087 |
Fichier Configuration de Zones : Zones.cfg (Data / Zones.cfg)
S'ouvre avec Bloc-Notes Windows Ce fichier contient la liste des zones de dommages et leurs propriétés à considérer dans le système de dommages. La structure du fichier est assez simple et contient une section principale. [Zones List] : énumération des Index A l'intérieur de cette section, chaque zone est énumérée à l'emplacement approprié qui est un index. Notez que l'index où la zone apparaît ne compte pas pour le système de dommages, il fournit uniquement l'unicité de la zone Par conséquent, il faut faire attention à fournir le bon index un par un jusqu'au dernier. Pour chaque zone apparaissant dans la section [Zones List], il y aura une section spéciale contenant ses paramètres. Les effets à jouer à l'emplacement de la zone en fonction du niveau de dégâts acquis sont énumérés dans la section [Zones List] comme une clé "Effecti", où i (pas d’espace) est l'index de l'effet dans la liste. Cette clé contient le nom de l'effet et le niveau des dommages (en pourcentages) séparé par une virgule (comma). Ex: Effect1 = # Fire_small, 0 Effect2 = # Catastrofic_explosion, 100 Il est conseillé de modifier les valeurs des paramètres à l'aide des propriétés des zones. Éditeur. Notez que l'Éditeur ne fournit pas la fonctionnalité pour ajouter / supprimer une zone de la [Zones List], donc avant de modifier le paramètre d'une nouvelle zone, il faut l'ajouter manuellement dans la section [Zones List] puis démarrer l'Éditeur des propriétés des zones. ( voir fonction S3ditor _.zon) . Pour SH4 Stock [Zones List] ;Under water 0=Keel 1=Rudders 2=Propellers 3=URadar 4=UAntenae 5=EngineRoom 6=FuelBunkers 7=AmmoBunkersAbove 8=UZO 9=CargoFuel 10=CargoMerchandise 11=Command deck 12=Funnels 13=WeaponsHeavy … / … 188=BBFuelBunkers 189=BBEngineRoom 190=BBFlotEmpty 191=ExtCargoFuel 192=AttackCenter 193=SampanMast 194=SampanFlotability 195=SonarHeadPort 196=SonarHeadStb 197=HydrophoneSensor 198=FltDeckGunStern 199=FltTorpRmFront 200=FltTorpRmStern 201=FltEngineRoom 202=FltComRoom 203=FlakFore 204=UbtTorpRmFront 205=UbtTorpRmStern 206=UbtEngineRoom 207=UbtComRoom 208=UbtRadioRoom 209=UKDBReceivers 210=BowPlanesPort Pour TMO v2.5 [Zones List] ;Under water 0=Keel 1=Rudders 2=Propellers 3=URadar 4=UAntenae 5=EngineRoom 6=FuelBunkers 7=AmmoBunkersAbove 8=UZO 9=CargoFuel 10=CargoMerchandise 11=Command deck 12=Funnels 13=WeaponsHeavy … / … 204=UbtTorpRmFront 205=UbtTorpRmStern 206=UbtEngineRoom 207=UbtComRoom 208=UbtRadioRoom 209=UKDBReceivers 210=BowPlanesPort 211=WeaponsMedium 212=CargoOil 213=CargoExtOil 214=CargoAmmoCrates 215=CargoAmmoContainers 216=CargoFreightContainers 217=CargoFreightCrates 218=CargoAircraft 219=CargoTanks 220=CargoTrucks 221=CargoTrapContainer 222=CargoEngineFuel 223=CargoEngineOil 224=CargoAmmo 225=NCargoOil 226=LifeBoatEngineRoom 227=SamPanEngineRoom Pour MilSab v 1.7… [Zones List] ;Under water 0=Keel 1=Rudders 2=Propellers 3=URadar 4=UAntenae 5=EngineRoom 6=FuelBunkers 7=AmmoBunkersAbove 8=UZO 9=CargoFuel 10=CargoMerchandise 11=Command deck 12=Funnels 13=WeaponsHeavy … / … 204=UbtTorpRmFront 205=UbtTorpRmStern 206=UbtEngineRoom 207=UbtComRoom 208=UbtRadioRoom 209=UKDBReceivers 210=BowPlanesPort 211=WeaponsMedium 212=CargoOil 213=CargoExtOil 214=CargoAmmoCrates 215=CargoAmmoContainers 216=CargoFreightContainers 217=CargoFreightCrates 218=CargoAircraft 219=CargoTanks 220=CargoTrucks 221=CargoTrapContainer 222=CargoEngineFuel 223=CargoEngineOil 224=CargoAmmo 225=NCargoOil ******************************************************* Liste des Items utilisés ******************************************************* NEW SMALL MERCHANT NEW ESCORT NEW MERCHANT BattleShips CargoShips Common Items Rubriques communes UBoat Items compartiments et sous-systèmes Sous-Marins Effects items Planes Items (Avions : F=Fighters, LB=Light Bomber, MB=Medium Bomber, HB=Heavy Bomber) Light Bombers Medium Bombers Heavy Bombers Common items Plane Effects (Rudder, smoke,fire,debris) pour avions TMO et MilSab v 1.7… n’apportent pas de rubriques supplémentaires. On peut noter des indices d’effets différents sur les items existant de la version Stock. Comme exemple le premier Item ; ************************************************* ;NEW SMALL MERCHANT ; ************************************************* [NSKeel] Category=Keel Multiplier=5.0 Flotability=50.0 HitPoints=120 Destructible=No Armor Level=20 Critic Flotation=0.99 Critical=Yes Critical Chance=1.0 FloodingTime=360 CargoType=None [NSKeel] = le nom de la zone, ici la quille du navire, du composant ou de l'effet. Category = Keel … (Quille) Référencé ainsi dans la ZoneList. Multiplier = 5,0 L'explosion de la torpille est amplifiée par ce nombre multiplicateur lorsqu'un effet critique est obtenu. Cela peut être fait en visant une partie sensible du navire, caractérisée par la présence à cet endroit, de cette boxe de contrôle. Valable aussi pour des tirs d'obus concernant les œuvres mortes (au-dessus de la ligne de flottaison). Flotability = 50,0 - Quel pourcentage de flottabilité totale du "navire" est perdu lorsqu'un compartiment de ce type est complètement inondé .... Sur 100%. Il faut aussi penser qu'un navire a une réserve de flottabilité au-dessus de l'eau. exple : un compartiment avec CriticFlotation = % de destruction, et si ce compartiment atteint est détruit (~100%), l’inondation commence provoquant l’enfoncement proportionnel. Voir la flottaison critique HitPoints = 120 – la quantité de santé de ce composant. Il est possible de manipuler ce chiffre. Par exemple, en réduisant le niveau d'armure, et en augmentant le nombre HP, provoque la perte de nombreux sous-systèmes au sein de ce compartiment. Le fait de modifier le HP, permet d'obtenir plus de dégâts. Destructible=No - lorsque ce "compartiment" est détruit (HP = 0) le parent est détruit ou non. Oui = bon pour les mâts, les cargaisons et les objets visiblement destructibles. Armor Level = 20 - Quelle est la dureté de la peau de cet objet ... Voir les commentaires ci-dessous. Si le type (tel que défini dans zones.cfg) a ArmorLevel = -1, alors il prend la valeur d'armure de la "coque du navire". Ainsi, une tourelle avec ArmorLevel= -1 sur un vaisseau avec ArmorLevel = 30, aura en fait AL = 30 aussi (pas infinies). Il en va de même pour les sous-compartiments. Ils prennent des valeurs d'armure de la coque. Critic Flotation = 0,99 - Définit combien de dégâts ce compartiment doit recevoir avant de commencer à prendre l'inondation. (Out of 1) - Dans ce cas (0,99), le compartiment doit être complètement détruit. - il n'est pas réglé sur 1 car il y a un bug avec ça. Ne pas utiliser 1. Critical=Yes - Si c’est un compartiment dont sa destruction joue un rôle critique. Critical Chance = 1.0 - Chance (entre Zéro et Un) lorsque ce compartiment touché est détruit avec une torpille, l’effet critique est obtenu avec 1. (c'est la quille qui explique le 1 sur 1) Il est possible d’utiliser cette valeur 1, concernant les Bunkers munitions. cela donne également un pourcentage sur les chances d'explosion des munitions. Si le Bunker Munition a une valeur CriticalChance = 0,2, si ce système subit 20% de dégâts, la cargaison va exploser. C'est une base pour des essais et il peut être utiliser dans des sous-systèmes munitions torpilles carburant, etc. FloodingTime = 120 - Temps en secondes pour que ce compartiment soit complètement inondé - suite à QUAND IL EST COMPLÈTEMENT DÉTRUIT (voir plus haut). Lorsque les dégâts sont moindres, le temps augmente. Nota : Dans les fichiers _.upc des Sous-Marins jouables (Ou dossier unit… Dans DataUPC DataUpcGE) Le temps d’inondation et la vitesse de renflouage de la pompe sont contrôlés aussi. Les compétences de l'équipage entrent également en vigueur, il faut donc toujours avoir une bonne équipe de réparation. CargoType = None - Il est possible d'ajouter 2 cargaisons à des sous-composants, du carburant et des munitions. Lorsque il est nécessaire d'avoir plus de dommages au sous-système ou pour pouvoir simuler une explosion à bord du sous-marin, il suffit d'ajouter des munitions en tant que cargaison, puis de jouer avec le chiffre de chance critique. Les effets spéciaux sont placés ici et là dans certains composants. Il y a aussi ces paramètres au bas de la page qui peuvent également être manipulés, Pas Sûr, cela devra être testé ? ******************************************************************************** ********************** [Paramètres globaux] CargoExplosionRange = 25,0; La gamme d'explosion de cargaison AmmoExplosion = # Splinter_explosion AmmoForceMultiplyer = 4.0; L'explosion de l'emplacement rempli avec ce type de cargaison est multipliée par ce facteur FuelExplosion = # oil_explosion FuelForceMultiplyer = 0,5; L'explosion de l'emplacement rempli avec ce type de cargaison est multipliée par ce facteur Seuil de pénétration = 0,2 Facteur de niveau d'armure = 4 ******************************************************************************** ********************** Ce message a été modifié par <S639>AMAZONE - samedi 25 avril 2020 à 15:11. -------------------- On peut braver les lois humaines mais non résister aux lois de la nature.
Vingt mille lieues sous les mers (1869) - Jules Verne |
|
|
samedi 25 avril 2020 à 10:35
Message
#4
|
|
Typhon Groupe : Webmasters Messages : 25130 Inscrit : 23/11/2006 Lieu : Bellerive sur Allier (03) Membre no 4774 |
Bonjour Amazone et merci pour ces informations détaillées, riches et indispensables.
Indispensables car là on se rend compte que si l'on n'y comprend rien, il faut surtout se garder de toucher à quoi que ce soit, tellement les paramètres sont imbriqués entre eux. -------------------- Le Pacifique est un océan immense. Vous n'y trouverez pas l'ennemi si vous ne le voulez pas. Richard O'Kane.
En patrouille avec SH4 sur USS Skate Comité de lutte contre le langage SMS, les fautes volontaires sur Internet et les anglicismes Une pomme par jour éloigne le médecin ... à condition de viser juste. (Sir Winston SPENCER-CHURCHILL) |
|
|
samedi 25 avril 2020 à 16:06
Message
#5
|
|
Fort coup de vent Groupe : Membres Messages : 2929 Inscrit : 13/08/2015 Lieu : Montpellier (Hérault) Membre no 26087 |
Effectivement Gibus,
j'avoue qu'il n'est pas aisé de traiter ce sujet, ne sachant pas par quel bout commencer, étant donné l'interdépendance des fichiers de contrôle. J'aurais pu commencer par l'élément "déclencheur" : la torpille. Mais notre principale préoccupation, est de façon générale l'ensemble des réactions dû à une explosion torpille, afin de simplifier nous considérons celle-ci comme unique. En prenant toutes les garanties de sauvegarde des fichiers originaux, il est intéressant de mettre les mains dans le cambouis. Aussi, il faut avoir une vision globale de l'imbrication des paramètres de contrôle, pour espérer un résultat plus ou moins attendu. La démarche empirique, est souvent nécessaire ... Je pense continuer le topo des paramètres _.zon en prenant comme exemple le Fubuki Stock. Celui-ci bien qu'ayant une architecture comparable à celle des autres DD, à un comportement étrange (V Vanilla). Donc au fur et à mesure des analyses, nous comparerons ou reporterons les conclusions dans le Post : "Destroyer Fubuki (Résistance aux tirs torpilles)". ... Ce message a été modifié par <S639>AMAZONE - samedi 25 avril 2020 à 16:07. -------------------- On peut braver les lois humaines mais non résister aux lois de la nature.
Vingt mille lieues sous les mers (1869) - Jules Verne |
|
|
dimanche 26 avril 2020 à 10:05
Message
#6
|
|
Typhon Groupe : Webmasters Messages : 25130 Inscrit : 23/11/2006 Lieu : Bellerive sur Allier (03) Membre no 4774 |
Donc au fur et à mesure des analyses, nous comparerons ou reporterons les conclusions dans le Post : Cela sous-entend-il que la version Fubuki 2 actuelle peut encore évoluer ? Mon avis est qu'à moins de la découverte d'un bug pharamineux, nous avons actuellement une unité qui répond au besoin. Si l'on devait faire un choix en terme de ressources à affecter, ma préférence irait au Tone. -------------------- Le Pacifique est un océan immense. Vous n'y trouverez pas l'ennemi si vous ne le voulez pas. Richard O'Kane.
En patrouille avec SH4 sur USS Skate Comité de lutte contre le langage SMS, les fautes volontaires sur Internet et les anglicismes Une pomme par jour éloigne le médecin ... à condition de viser juste. (Sir Winston SPENCER-CHURCHILL) |
|
|
dimanche 26 avril 2020 à 17:27
Message
#7
|
|
Fort coup de vent Groupe : Membres Messages : 2929 Inscrit : 13/08/2015 Lieu : Montpellier (Hérault) Membre no 26087 |
Cela sous-entend-il que la version Fubuki 2 actuelle peut encore évoluer ? ... / ... Si l'on devait faire un choix en terme de ressources à affecter, ma préférence irait au Tone. Le Fubuki LA dernière version, en attente de validation, est stable ... mais je constate que celui-ci est mal-né suivant sa genèse : - Vous avez dû constater aussi, lors des parties en multi, qu'il pouvait filait à ~ 20Nd après torpillage. - Après modification cet effet à disparu (ou fortement diminué). - Pour assurer cette dégradation de propulsion, j'ai ajouté Zones-Contrôle sur Gouvernail et Lignes d'Arbres en cas de torpillage de la poupe. - Ceux-ci disparaissent visuellement, mais je n'ai aucune assurance de la perte totale de la propulsion ??? Lors de mes premiers réglages, en cas de torpillage central, souvent la coque se scindait en deux 1/2 coques distinctes avec un bel effet ... D'où la raison d'avoir sur ce type de navire (les Marchants idem), des 1/2 coques cachées, en plus d'une coque Ppale qui disparaît à ce moment là. Par la suite je ne constate plus cet effet ??? Donc Ce Fubuki N°2, étant validé, pourra servir de Plan B, si je n'apporte rien de mieux. Si un éventuel Fubuki N°3 se présente, il sera facilement testé, et pourrait être joint au Tone. Le Tone en cours d'achèvement, se présente bien malgré quelques parenthèses. Je pense celui-ci disponible pour essais, courant Mai. Allez, je remonte les manches ... -------------------- On peut braver les lois humaines mais non résister aux lois de la nature.
Vingt mille lieues sous les mers (1869) - Jules Verne |
|
|
dimanche 26 avril 2020 à 18:58
Message
#8
|
|
Typhon Groupe : Webmasters Messages : 25130 Inscrit : 23/11/2006 Lieu : Bellerive sur Allier (03) Membre no 4774 |
Le Tone en cours d'achèvement, se présente bien malgré quelques parenthèses. Je pense celui-ci disponible pour essais, courant Mai. Pour le 11 mai ? Je plaisante évidemment. Ta remarque concernant la propulsion m'amène (comme souvent) à un phénomène que l'on constate souvent lorsque l'on s'attaque aux cuirassés et en particulier au Yamato et surtout le Yamato. Il s'agit de sa capacité à s'enfuir à bonne allure lorsqu'il a reçu une ou plusieurs torpilles dans les hélices ou au gouvernail, difficile de savoir ... Le fait qu'il faille 10 torpilles pour le couler ne gêne personne, c'est ainsi. En revanche, le voir s'enfuir comme si de rien n'était alors qu'il a pris une torpille au cul est des plus frustrant. -------------------- Le Pacifique est un océan immense. Vous n'y trouverez pas l'ennemi si vous ne le voulez pas. Richard O'Kane.
En patrouille avec SH4 sur USS Skate Comité de lutte contre le langage SMS, les fautes volontaires sur Internet et les anglicismes Une pomme par jour éloigne le médecin ... à condition de viser juste. (Sir Winston SPENCER-CHURCHILL) |
|
|
Version bas débit | Nous sommes le : jeudi 28 mars 2024 à 18:38 |