Camera qui tourne autour d'un objet

Modérateur: LudlowFx

Camera qui tourne autour d'un objet

Messagepar spygon » 15 Avr 2010, 16:56

Bonjour

J'essaye de créer un bouton qui permet de tourner autour d'un objet.
Normalement en restant appuye sur le bouton, ca continuera de tourner mais je n'ai pas encore implanter cette partie.

Mon problème c'est que j'arrive pas à obtenir le résultat que je veux.
Ma caméra tourne bien autour mais j'arrive pas à régler l'angle de déplacement ni à remettre la caméra à la même auteur.

Si vous connaissez la technique que ce soit sur le plan mathématique ou programmation, je suis preneur.

Voici mon code

Code: Tout sélectionner
var target : Transform;
var damping = 1.0;

var bouton;

var distance ;

var rotationDamping = 1.0;

function OnGUI () {

btnGauche = GUI.Button(Rect(20,80,100,40),"gauche");

   if(btnGauche){
   //var rotation = Quaternion.LookRotation(target.position - transform.position);   
   distance = Mathf.Sqrt( (target.position.x - transform.position.x) * (target.position.x - transform.position.x) +
                           (target.position.y - transform.position.y) * (target.position.y - transform.position.y) +
                           (target.position.z - transform.position.z) * (target.position.z - transform.position.z) );
                           
   wantedRotationAngle = target.eulerAngles.y;
   currentRotationAngle = transform.eulerAngles.y;

   currentRotationAngle = Mathf.LerpAngle (currentRotationAngle, wantedRotationAngle,  rotationDamping *Time.deltaTime);

   currentRotation = Quaternion.Euler (0, currentRotationAngle, 0);
   GameObject.Find("Main Camera").transform.position = target.position ;
   GameObject.Find("Main Camera").transform.position -=  currentRotation * Vector3.right * distance ;
   
   transform.position.y =  0.5;
   
   transform.LookAt (target);
   
   }
}
spygon
 
Messages: 4
Inscription: 15 Avr 2010, 16:25

Re: Camera qui tourne autour d'un objet

Messagepar chloridrik » 15 Avr 2010, 21:23

Salut, si comme moi tu n'es pas bon en math, et encore moins en math 3D, je tenterais de faire un truc comme ça :

- créer un GameObject vide, et le positionner au centre de l'objet autour du quel tu veux tourner
- mettre dans cet objet la caméra et l'excentrer
et pour tourner autour, tu as juste à faire tourner ton gameObject

non ?
chloridrik
 
Messages: 18
Inscription: 24 Mar 2010, 19:05

Re: Camera qui tourne autour d'un objet

Messagepar giyomuSan » 16 Avr 2010, 03:14

Avatar de l’utilisateur
giyomuSan
 
Messages: 1704
Inscription: 09 Déc 2009, 14:52
Localisation: Japon

Re: Camera qui tourne autour d'un objet

Messagepar spygon » 16 Avr 2010, 17:04

nikel giyomuSan

c'est exactement ce qui me fallait j'ai du la zapper en regardant la doc

j'en étais au point de refaire les fonctions à la main comme en OpenGL

j'ai plus qu'a trouver comment choper la position du milieu de mon objet
spygon
 
Messages: 4
Inscription: 15 Avr 2010, 16:25

Re: Camera qui tourne autour d'un objet

Messagepar spygon » 19 Avr 2010, 15:54

Je fais un petit up car j'arrive pas du tout à récupérer le centre de mon objet sachant que c'est un objet max importer en FBX

le pivot est pas au centre de mon objet et du coup pour mon rotateAround c'est pas terrible avec le pivot

si vous savez comment récupérer le centre d'un objet je suis preneur
spygon
 
Messages: 4
Inscription: 15 Avr 2010, 16:25

Re: Camera qui tourne autour d'un objet

Messagepar giyomuSan » 20 Avr 2010, 02:47

http://unity3d.com/support/documentation/ScriptReference/Renderer-bounds.html?from=Mesh

normalement tu ne devrait pas avoir a manipuler ca , si ton mesh a etet exporter correctement avec son centre / pivot la ou il est cense etre (a moins que tu est volontairement deplace son pivot..)

regarde ds unity si lorsque que tu change entre >> center ou Pivot pour la manipulation du mesh la location du gizmo..normalement el center devrait toujours indiquer el centre du mesh (sauf si tu l as modifier ds ton app 3D, volontairement ou invonlontairement)

Faire gaffe aussi car pivot != center...selon les app , tu peu avoir un pivot et un center of mesh completement different et a l export unity va se fier au "center" plutot qu 'au pivot pour manipuler ton model
Avatar de l’utilisateur
giyomuSan
 
Messages: 1704
Inscription: 09 Déc 2009, 14:52
Localisation: Japon

Re: Camera qui tourne autour d'un objet

Messagepar spygon » 20 Avr 2010, 16:20

le probleme je pense vient que ca vient du fait que ce n'est pas un mesh mais un ensemble de mesh

pour le bouton center / pivot j'avais deja vu que mon center etait a la bonne place c'est pour ca que je me suis dis que je pouvais le recuperer sinon je me suis dis que je pouvais recuperer largeur, hauteur et longueur de mon objet mais non pareil je trouve pas pourtant je suis pas du genre a poster sur les forums mais là je galère et comme c'est pour un projet de master j'aime pas perdre 2-3 j pour rien :(
spygon
 
Messages: 4
Inscription: 15 Avr 2010, 16:25

Re: Camera qui tourne autour d'un objet

Messagepar giyomuSan » 20 Avr 2010, 17:09

hmm solution system D , plutot que de galerer , creer un empty game object que tu place (ca risque d etre a juger mais bon ) au centre de ton ensemble de mesh et utilise la fonction rotate around sur l empty object..a defaut d etre jolie comme solution , ca t evitera de perdre trop de temps la dessus dans un premier temps..
Avatar de l’utilisateur
giyomuSan
 
Messages: 1704
Inscription: 09 Déc 2009, 14:52
Localisation: Japon



Retourner vers Scripting Javascript, C# et Boo




Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Traduction par: phpBB-fr.com