CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Forum
  • Accueil
  • Actus
  • Tests
  • Vidéos
  • Images
  • Soluces
  • Forum
Liste des sujets

[Projet de Mod] Le Train

-_-coolmec-_-
-_-coolmec-_-
Niveau 7
14 juillet 2009 à 16:54:17

Hello !

J'ai dernièrement joué au mod "le métro" et me suis rendu compte que c'était en fait 95% de décoration, 0% de scripts, 1% de nouveau mesh, et 4% de Morrowind qu'on connait (système de voyage).

Conclusion, ce mod est très imaginatif, bravo ! Mais ça reste simplement un nouveau moyen de transport, comme un simple échassier des marais.

Je vous propose ici de réellement faire *rouler* un train dans le monde de Morrowind. Pour cela, je ne vous le cache pas, j'ai recherché un sccript déjà existant dans un autre mod, je ne suis pas assez doué pour le créer moi-même. Mais à partir de ce script qui fait bouger lentement l'objet sur un axe jusqu'à un point défini, je vais pouvoir apprendre comment il fonctionne et l'améliorer.
Pour le train, on pourra demander à reproduire le métro ou en créer un nous-même.

Ne sachant pas qi j'arriverais à faire aboutir ce projet seul, je viens vous demander de l'aide ! :ok: Si par hasard vous maitrisez déjà complètement le domaine des scripts...

Par contre, il faudra faire un chemin de fer rectiligne, un script faisant tourner le train lorsqu'il roule serait trop compliqué, je ne sais même pas si c'est faisable.

Si ça aboutit, je ne manquerait pas de remercier les créateurs des mods qui m'ont inspiré.

Alors, qui est partant ?

Enjoy'

GrindKore
GrindKore
Niveau 8
14 juillet 2009 à 17:08:20

Un train dans Morrowind ?
Je sais pas trop. Ca risquerait d'entâcher la nature du même du jeu. Le principe est fort sympathique mais dans le fond, un train dans Morrowind risquerait de dénaturaliser un peu le jeu...

Gromuluscle
Gromuluscle
Niveau 5
14 juillet 2009 à 17:14:47

Non ce n'était ni un train ni un metro (bien que le mod porte se nom) mais une machine a vapeur dwemer, donc tout a fait en accord avec le BG

GrindKore
GrindKore
Niveau 8
14 juillet 2009 à 17:19:24

Ah ! Ca change déjà du tout au tout !
J'avais pas encore testé le mod du Metro donc je me suis imaginé autre chose. Oui bien sûr, s'il s'agit d'une machine Dwemer dans ce cas c'est bien plus intéressant :ok:
Je compte me mettre sur TESCS bientôt, le temps de bien apprendre les bases et de faire mes premiers pas. Le logiciel est difficile d'accès ? En combien de temps à peu près on peut le maîtriser ?

-_-coolmec-_-
-_-coolmec-_-
Niveau 7
14 juillet 2009 à 17:22:15

Ne vous inquiétez pas, le véritable principe est de faire rouler cette machine ! :ok:

Et comme je prendrai de toute manière des objets qui viennent du jeu original pour le créer, il n'y aura pas trop de dénaturation. En fait, j'ai dit un train en pensant au métro, mais sa pourrait être autre chose... un échassier des marais par exemple ! Le principe est qu'il doit nous emmener à notre destination *en temps réel*.
Eh oui, à Morrowind, on ne fait normalement pas Balmora/Molag Mar en une micro-seconde à dos d'échassier ! (quoi les guides de guildes ? Jamais entendu parler... :o)) )

-_-coolmec-_-
-_-coolmec-_-
Niveau 7
14 juillet 2009 à 17:27:00

Le logiciel n'est pas difficile d'accès, on maitrise assez facilement les bases avec un simple tuto.
Et si tu es assez téméraire, tu peux te mettre aux scripts. Perso j'ai essayé un tuto une fois, j'ai rien compris alors j'ai fait ça seul en regardant les scripts déjà existants et apprenant comment ils fonctionnaient. Cette façon de faire est assez efficace ! :ok:

Oubliez un petit instant la dénaturation, est-ce que ce projet est intéressant ou non ? On peut très bien faire un train dwemer ( de toute façon, j'aurais même pas essayé de faire un train normal, je vois pas trop où j'aurais trouvé les éléments, d'autant plus que je ne créer pas de mesh)ou se limiter à un moyen de transport déjà existant.

GrindKore
GrindKore
Niveau 8
14 juillet 2009 à 17:34:23

Quand tu dis que le train de pourra pas prendre de courbes, il voyagera de manière rectiligne ou il pourra effectuer des descente et des montées ?

-_-coolmec-_-
-_-coolmec-_-
Niveau 7
14 juillet 2009 à 17:46:10

J'ai analysé le script, et d'après ce que je peux voir, je ne peux que lui faire suivre sur un temps donné un mouvement donné. C'est-à-dire qu'il bougera pendant 30 secondes dans la direction que je lui donne.

Mais la c'est déjà plus compliqué :

Je fais bouger un objet sur 4 secondes sur l'axe X. Sa veut dire qu'il va bouger sur l'axe Ouest/Est.
Je peux aussi faire bouger l'objet sur l'axe Sud/Nord et sur la verticale (et hop voilà un ascenceeur ! :o)) ).
Mais est-il possible de lui faire suivre un chemin du genre vers le nord-est ? ou même en descente comme tu le proposes ? Pour çà faut que je fasse un nouveau script et que je teste jusqu'à qu'il n'y ait plus de bugs.

Bref, si quelqu'un est déjà assez doué de ce côté là, ça ira plus vite ! :ok:

GrindKore
GrindKore
Niveau 8
14 juillet 2009 à 17:54:36

Bon je viens d'installer Morrowind sur mon PC ainsi que le Construction Set. Je n'y connais absolument rien (au CS, Morrowind je l'ai retourné de fond en comble :o)) ).
Le temps de m'adapter au logiciel et de comprendre les bases. Je te souhaite bonne chance, ton projet a l'air vraiment pas mal du tout. :ok:
Et si jamais un jour (quand je connaitrais mieux le logiciel) tu as besoin d'aide, n'hésites pas. Je posterais certainement des questions sur l'utilisation du TESCS, en attendant bon courage ! :ok:

Gromuluscle
Gromuluscle
Niveau 5
14 juillet 2009 à 17:56:34

Oui mais (programe math 2nd) le vecteur de translation prend en compte l'axe X et Y, car sinon le train bougerai en travers des rails, alors mieux vaut que tu te contente de l'axe X

Et quand tu dit qu'il faut une micro seconde, non il se passe 6h entre chaque deplacement en echassier, resumés par un chargement...

-_-coolmec-_-
-_-coolmec-_-
Niveau 7
14 juillet 2009 à 17:58:20

Attention c'est long. Pour les connaisseurs, lisez le script. Et j'ai fait une simple analyse de débutant mais elle m'a quand même sacrément aider à démêler ce script qui me semblait compliquer au départ mais en fait... non.

Le script de base quelque peu modifié déjà :

SOURCE : mod "Le Canal des Mystères" (par Shanthe, camembérisé par gudul75)

    • ***********************************************
    • *********************************

Begin wall_mover_03

float timer
short start

if ( start == 3 )
return ;stop here for speed if it's all done
endif

if ( MenuMode == 1 )
return
;don't run time in Menu Mode. Very bad.
endif

if ( OnActivate == 1)
if ( start == 0 )
set start to 1
Playsound "Door Stone Open"
endif
return
;when activated, we want to start movement on the next frame...
endif

if ( start == 0 )
return
;if we have't started, stop here for speed
endif

if ( timer < 4 )
if ( timer > 1 )
if ( start == 1 )
;PlaySound "Door Stone Open"
Set start to 2
endif
endif
Rotate X 45
;above line rotates the crank itself
00_test_move->Moveworld x 300
;above line lowers the wall.
endif
endif

if ( timer > 4)
SetAngle X 0 Y 0 Z 90
set start to 3
endif

set timer to ( timer + GetSecondsPassed )
;above line increments the timer... should be last here outside if
;statements
;otherwise bad things can happen

end

    • ***********************************************
    • *********************************

Analyse :

Variables utilisées :
Start
OnActivate
MenuMode
Timer

if ( OnActivate == 1)
if ( start == 0 )
set start to 1
Playsound "Door Stone Open"
endif
return
;when activated, we want to start movement on the next frame...
endif

Si on active l’interrupteur et si la variable « start » est égale à 0, alors :
:d) Renvoie la variable « start » à 1 (On ne pourra plus le réactiver, activable une fois)
:d) On fait jouer le son « Door Stone Open »

if ( timer < 4 )
if ( timer > 1 )
if ( start == 1 )
;PlaySound "Door Stone Open"
Set start to 2
endif
endif
Rotate X 45
;above line rotates the crank itself
00_test_move->Moveworld x 300
;above line lowers the wall.
endif
endif

Si la variable « timer » est comprise dans l’intervalle ]1 ;4[ et que la variable start est égale à 1, alors :
:d) On fait jouer le son « Door Stone Open »
:d) Renvoie la variable « start » à 2
:d) Fais tourner l’objet Activator sur lui-même de 45° ( ?)
:d) L’objet en question est déplacé sur l’axe des abscisses jusqu’à 300

if ( timer > 4)
SetAngle X 0 Y 0 Z 90
set start to 3
endif

Si la variable « timer » est plus grande que 4, alors :
:d) Replace l’objet Activator dans l’angle défini. (vers le haut ici)

set timer to ( timer + GetSecondsPassed )
:d) Renvoie la variable “timer” à (timer + GetSecondPassed)

:d) Ici, le script prend fin au bout de 4 secondes, c'est facilement modifiable. Mais dans ces conditions, l'objet n'atteindra jamais le point d'abscisse 300, car il se déplace de manière lente et je l'ai fait commencer à un point d'abscisse situé dans Balmora ! (pour info, 300, c'est de l'autre côté du pont dwemer pas loin) Et en 4 secondes, l'objet n'atteint pas cet endroit. Tant pis, il stoppe au bout de 4 secondes.
De cette manière, on pourra faire en sorte qu'il stoppe au terminus.

Je me demande tout de même s'il est possible de faire bouger l'objet plus vite :question:

-_-coolmec-_-
-_-coolmec-_-
Niveau 7
14 juillet 2009 à 18:00:43

Fan de maths ? :o))

Moi en tous cas j'en suis un et c'est peut être pour ça que j'aime tellement ces maudites variables ! :diable:

Pour le coup de la micro seconde, ce n'était qu'un exemple visant à démontrer qu'en un simple chargement on est là où on veut. Or je vais changer cela ! :-)

-_-coolmec-_-
-_-coolmec-_-
Niveau 7
14 juillet 2009 à 18:09:47

J'en étais sûr !! Vive les maths !!
Je sais à présent diriger l'objet dans toutes les direction. Pour l'instant je ne l'ai fait que se diriger en diagoanle mais je vois aprfaitement comment le faire descendre, remonter, etc...
Je vais vriment prendre ce projet à coeur :coeur:

Au prochain post, j'essaierai d'expliquer comment je fais bouger cet objet à l'aide d'images ! :ok:

-_-coolmec-_-
-_-coolmec-_-
Niveau 7
14 juillet 2009 à 18:29:42

Ohlàlà...

Tout d'abord excusez-moi pour les fautes du dernier post, c'est rare que je ne vérifie pas avant de poster...

Ensuite, pareil mais pour le nombre de posts à la suite. Désolé mais je réécris ici l'avancement du projet.

A un moment, dans le script, j'écris "00_test_move->Moveworld x 300"

Ceci fera bouger l'objet *dans la direction* du point d'abscisse 300, tout en suivant l'axe des abscisses.
Exemple : Au départ, l'objet a les coordonnées suivantes (0;600)
A la fin, il aura celles-ci (300;600)

A présent, faisons bouger cet objet dans l'angle "Nord-Est".
J'écris :
00_test_move->Moveworld x 300
00_test_move->Moveworld y 300

"00_test_move" est évidemment l'ID de l'objet en question.
Maintenant l'objet va se déplacer *vers* le point de coordonnées (300;300).
Imaginons que le point de départ soit les coordonnées (0;0), alors l'objet se déplacera dans l'angle Nord-Est comme j'aime l'appeler !

http://www.noelshack.com/uploads/16062009/Explications_mouvement089915.jpg

Et je pense que je peux ajouter encore une ligne comme celle-ci :
00_test_move->Moveworld z -300

Ceci fera descendre l'objet (ici jusqu'à -300 donc sous le niveau de l'eau :o)) )

Pareil pour le faire monter.

Maintenant, si on fait réellement un train, sa va être chaud ! Pourquoi ? parce qu'il faudra que TOUTES les pièces se déplacent en même temps ! Et comme elles ne seront pas toutes au même point de départ, ni ne devront arriver au même point d'arrivée., cela va être très long à trouver les bonnes coordonnées pour chaque pièce... (finalement je crois que je vais opter pour l'échassier des marais mobile, c'est plus simple !)

Nicomacdo
Nicomacdo
Niveau 17
14 juillet 2009 à 21:12:28

Arggh, je suis nul en maths. :ouch: Bon courage pour ton mod.

-_-coolmec-_-
-_-coolmec-_-
Niveau 7
14 juillet 2009 à 21:17:14

CORRECTION

Après un nouveau test, je crois que j'ai dit beaucoup de merde.

En fait, si j'écris 00_test_move->Moveworld x 300

L'objet se déplacera de 300 unités sur l'axe des abscisses (il n'ira pas jusqu'à ce point d'abscisse, c'est n'importe quoi).
Pareil pour si j'ajoute une ligne 00_test_move->Moveworld y 300, l'objet fera une translation de vecteur (vecteur x + vecteur y, ça donne la diagonale que j'avais dessinée.)
Enfin, je sais comment aller plus vite. Lorsque j'écris :

if ( timer < 4 )
if ( timer > 1 )
etc...

Cela ne signifie pas que pendant 4 secondes l'objet se déplace dans la direction du point d'arrivée donné. Cela signifie que l'objet a 4 secondes POUR arriver à son point d'arriver !! (ici c'est 300 unités vers la droite)
C'est pourquoi mon objet va lentement car 4 secondes c'est largement suffisant pour réaliser 300 unités. Par contre, 4 secondes pour réaliser 15000 unités, c'est tellement rapide que l'objet "disparait" pour réapparaitre à son point d'arrivée. Pas question d'aller à cette vitesse, je veux que le personnage reste sur l'objet.

Bref, voilà je m'excuse pour tous ceux qui ont lu toutes les absurdités écrites plus haut (et j'espère que ce que je dis là, c'est bon cette fois !). Par contre, on n'apprend que de ses erreurs ! Hop, j'y retourne ! :-)

-_-coolmec-_-
-_-coolmec-_-
Niveau 7
14 juillet 2009 à 22:09:38

Je me suis trompé quelque part... je finirai par trouver !

D'après la logique ci-dessus, j'ai placé un bloc de pierre à un certain endroit et lui demande de se déplacer de 1770 unités sur les axes x et y.
D'après le tescs, je suis censé arriver au bout de mon "chemin de fer" que j'ai créer.
Pour que ça aille très lentement, je lui donne 15 secondes.

Voilà, je vais tester... je me met sur mon p'tit bloc de pierre d'essai, j'actionne l'interrupteur. Et voilà que mon bloc file à toute vitesse !! Je tiens même pas 2 secondes dessus !
Il va exactement dans la direction que je voulais. Donc l'histoire des vecteurs, c'est bon. En tous cas pour ce qui est de la direction et de la trajectoire. pas de la norme !!
Je lui ai laissé 15 secondes pour arriver à son point d'arrivée et il est parti très vite, son point d'arrivée devait donc être assez éloigné (je n'ai plus mes persos super forts qui auraient été capable de le suivre :snif2: ). Pourquoi ? Est-ce que quelqu'un a une idée ?
Sinon je retourne faire des tests et je verrais bien...

Linkdu17
Linkdu17
Niveau 7
15 juillet 2009 à 11:09:05

Moi, je dis bon courage a tout le monde ^^
Bien que je ne m'y connaisse pas en script, je propose une idée :
sur cette page : http://forum.wiwiland.net.net/index.php?showtopic=12907 (tu reconnais, non ?) il y a un script permettant de faire tourner un objet autour de quelque chose(le script de Nenfëa)...Pour les tournants, pouquoi ne pas modifier le script afin qu'il ne fasse pas un tour complet, mais qu'il change de dirrection ?
Tu le fais légèrement tourner par rapport a un objet du décor et comme ça, pas besoin de trajectoire toute droite...
En esperrant que cette idée t'aide ^^

-_-coolmec-_-
-_-coolmec-_-
Niveau 7
15 juillet 2009 à 11:47:57

Merci linkdu17, mais c'est Tribunal requis et pauvre que je suis je ne l'ai pas ^^

De toute façon je pense avoir trouvé un moyen. C'est simple, je donne 15 secondes à mon objet pour aller dans un sens, puis je lui en donne 15 autres pour qu'il aille dans une autre direction. Normalement, si je "successionne" ces deux scripts, à la fin du premier il tournera et prendra une autre direction. On peut mettre tout ça dans un seul script évidemment...

Ps : Je ne pourrais plus continuer ce mod tant que mon ordinateur ne sera pas réparé. Un virus a infecté tous mes fichiers et m'empêche d'ouvrir ma session normale. Seul le mode sans échec avec partage réseau fonctionne... Et en mode sans échec, on ne peut pas utiliser le Tescs.

Linkdu17
Linkdu17
Niveau 7
15 juillet 2009 à 11:52:27

^^ d'accord ( dommage, au moins j'aurais essayé...)

La vidéo du moment