[Résolu] SetMotionType

Le langage des scripts.
Répondre
Avatar du membre
kdence
Confrère
Messages : 40

SetMotionType

Message par kdence »

Bonjour à tous,

Je me pose deux trois question à propos de cette fonction et comme la doc officielle est incomplète (et que pour rien arranger, je suis une bille en anglais), elle ne répond pas à mes questions.

Voici le lien vers la doc -> https://www.creationkit.com/index.php?t ... tReference

Mes questions concernent plus précisément les paramètres de cette fonction.
Pour commencer, que font les paramètres suivants :
1. Motion_Character
2. Motion_BoxInertia/SphereInertia/ThinBoxInertia

Ensuite, dans l'exemple donné, ils utilisent Motion_Keyframed pour stopper la simulation de Havok.
Dans ce cas, quelle est la différence entre Motion_Keyframed et Motion_Fixed?

J'ai une dernière question pour la route ^^
Est-il possible de stopper la simulation d'Havok sur un objet tout en permettant de le déplacer en le "grabbant"?
Mon objectif étant de créer des meubles (item pas static) que l'on pourrait déplacer facilement mais qui ne bougerais plus une fois relâcher. Ce serait pas mal pour faire, par exemple, des tableaux que le joueur pourrait acheter dans un magasin (voir le crafter, mais niveau RP on est pas tous Picasso) et puis placer où bon lui semble, même dans une maison ajoutée par un mod tiers.

J'ai déjà tenter quelque chose avec les events OnGrab et OnRelease mais ça n'a rien donner. Je ne vais pas tout réécrire mais en gros ça donnait :
► Afficher le texte
Le problème avec ça, c'est qu'une fois que l'objet a été grabber puis relâcher, il cesse de bouger (ça c'est bien) et il n'y a plus moyen de le regrabber (ça c'est mal), d'où ma dernière question.

En espérant trouver des réponses ici, je vous salue amis moddeur!
Modifié en dernier par kdence le 20 juin 2015, 18:43, modifié 6 fois.
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: Question sur SetMotionType

Message par Gerauld »

Ça tombe bien, je vais bosser sur ça dans le cadre d'un mod de craft (stations d'alchimies et autres objets de craft pouvant être pris dans l'inventaire, posés et déplacés). Je pensais passer par un script de ce genre :
http://www.confrerie-des-traducteurs.fr ... 25&t=13783
pour basculer d'un mode à l'autre.
Tu peux réutiliser ce script et le modifier comme tu veux, c'est une ressource qui est là pour ça.

Pour ma part, il n'y a aucun soucis si tu veux que je t'envoie le script fonctionnel une fois que je l'aurai terminé pour mon mod. Tu auras sans doute quelques modifs à y faire mais le principe devrait être le même.
Avatar du membre
kdence
Confrère
Messages : 40

Re: Question sur SetMotionType

Message par kdence »

Woh! Réponse rapide dis donc :D

Merci bien, je regarderai ça de plus près ce soir quand je serai posé.

Mais en attendant je me pose toujours les mêmes questions à propos des paramètres de cette fonction :P
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: Question sur SetMotionType

Message par Gerauld »

Le mieux serait de tester en jeu et nous le dire après. M'est avis que le type actor est peut-être lié au layer de collision correspondant.
Hors-sujet
Sinon, pour la réponse rapide, cela fait quelques mois qu'un dragon violet me retient en otage dans la forge... Un manchot est retenu quant à lui dans les autres forums...
EDIT : J'ai un script fonctionnel pour mes stations d'alchimie :
- 1 appui sur E : utiliser la station d'alchimie
- 2 appuis sur E : commutation Keyframed/dynamic
- 3 appuis sur E : retour dans l'inventaire.

En gros, pour tes meubles, il faudrait le modifier comme suit :
- 1 appui sur E : ouvrir le meuble (activate(playerref))
- 2 appuis sur E : commutation Keyframed/dynamic (en utilisant une variable de type int déclarée en début de script pour savoir dans quel état on se trouve).

Si jamais tu bloques lors de tes prochains essais, je peux poster le script adapté aux meubles ici. La modif ne sera pas longue à faire.
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: [Demande] Question sur SetMotionType

Message par Gerauld »

Hors-sujet
Déterrage de topic car je n'aime pas voir des sujets non résolus dans la Forge.
En regardant dans les meshes, au niveau des blocs de collision, on aperçoit les mêmes termes. Ce sont des méthodes utilisées par le moteur havoc pour simuler son comportement à partir de la forme de collision. Cette instruction est d'ailleurs un héritage direct du moteur havoc vers Papyrus.
Certains paramètres de cette fonction sont inopérants si le mesh n'a pas des valeurs compatibles dans le BhkRigidBody.
Les paramètres motion_keyframed et motion_dynamic se suffisent pour stopper le havoc d'un objet mais ne peux modifier la prise en compte de l'objet par le havoc si le mesh n'est pas compatible (bhkrigidbody).
Il faut faire attention quand on modifie ces paramètres dans un mesh car il faut souvent reprendre l'intégralité des réglages du bhkrigidbody. Comme cela se fait à la main et qu'il faut faire quelques allers-retours entre le jeu et Nifskope, je le déconseille sauf pour ceux qui savent ce qu'ils font ou qui veulent faire plein de tests.

Bon, cela va piquer les yeux de certains :
► Afficher le texte
En clair, quand tu fais un setmotiontype(Motion_Keyframed), tu ne désactives en rien le havoc de l'objet, tu lui mets une masse havoc infinie donc tu ne peux plus t'en saisir.
Quand tu repasses en MOTION_DYNAMIC, soit le moteur fait son petit choix en fonction des données du rigid body, soit il reprend les valeurs du mesh.

J'espère que cela répond à tes interrogations.
Répondre

Retourner vers « Entraide sur les scripts »