Arrastrar objeto con el ratón

Preguntas y respuestas relacionadas con el desarrollo de videojuegos y aplicaciones 3D interactivas, usando Blender Game Engine.
Responder
antoniocasas47
Mensajes: 111
Registrado: Lun Ene 30, 2017 9:32 am
Nombre: Antonio

Arrastrar objeto con el ratón

Mensaje por antoniocasas47 » Mié Dic 13, 2017 3:06 pm

Muy buenas compañeros de la comunidad de Blender. Tengo un objeto en el suelo de mi escena y querría arrastrarlo con el ratón, pero no quiero que se eleve de ninguna forma. Solo que se arrastre por el suelo al mover el ratón en los ejes X e Y. ¿Sabrían cómo se hace? Gracias y saludos.

D4rB
Mensajes: 1048
Registrado: Mar Nov 16, 2010 12:46 pm
Nombre: .
Ubicación: México
Contactar:

Re: Arrastrar objeto con el ratón

Mensaje por D4rB » Mié Dic 13, 2017 3:27 pm

Al momento de iniciar el movimiento puedes restringir el movimiento de un eje presionando Shift + eje (X, Y o Z), en tu caso presiona Shift + Z después de que inicias el movimiento y con eso evitarás que se eleve.

juani
Mensajes: 158
Registrado: Mié Oct 28, 2015 1:34 am
Nombre: Juan Antonio Sanchez Flores

Re: Arrastrar objeto con el ratón

Mensaje por juani » Mié Dic 13, 2017 3:30 pm

Hola Antonio, mira este script es muy sencillo y fácil.El objeto se moverá en los ejes x e y globales, si tiene que moverse en los ejes locales hay que cambiar un poco el script para acceder a los ejes locales.Descarga el .blend y lo miras.
A ver si te va como quieres.
Un saludo.

https://www.foro3d.com/f115/mover-objet ... 25911.html

antoniocasas47
Mensajes: 111
Registrado: Lun Ene 30, 2017 9:32 am
Nombre: Antonio

Re: Arrastrar objeto con el ratón

Mensaje por antoniocasas47 » Mié Dic 13, 2017 4:57 pm

juani escribió:Hola Antonio, mira este script es muy sencillo y fácil.El objeto se moverá en los ejes x e y globales, si tiene que moverse en los ejes locales hay que cambiar un poco el script para acceder a los ejes locales.Descarga el .blend y lo miras.
A ver si te va como quieres.
Un saludo.

https://www.foro3d.com/f115/mover-objet ... 25911.html
Buenas juani. Gracias por el ejemplo. Aunque creo que no se parece mucho al objetivo que estaba buscando. Digamos que es un juego en primera persona y lo que quiero es apartar un mueble cogiéndolo con el cursor (que equivaldría al centro de la vista), desplazárlo con el movimiento del ratón y soltárlo en un lugar que no estorbe. Gracias y saludos.

antoniocasas47
Mensajes: 111
Registrado: Lun Ene 30, 2017 9:32 am
Nombre: Antonio

Re: Arrastrar objeto con el ratón

Mensaje por antoniocasas47 » Mié Dic 13, 2017 5:00 pm

D4rB escribió:Al momento de iniciar el movimiento puedes restringir el movimiento de un eje presionando Shift + eje (X, Y o Z), en tu caso presiona Shift + Z después de que inicias el movimiento y con eso evitarás que se eleve.
Buenas D4rB. Es que la intención que tenía es configurar eso mismo previamente a ejecutar el juego. La duda que tenía era cuál script o editor de lógica se debe definir para coger un objeto con el cursor del ratón y arrastrarlo por la escena.

juani
Mensajes: 158
Registrado: Mié Oct 28, 2015 1:34 am
Nombre: Juan Antonio Sanchez Flores

Re: Arrastrar objeto con el ratón

Mensaje por juani » Jue Dic 14, 2017 12:41 am

Te dejo un blend con el script modificado, tienes que poner una propiedad al objeto y en el sensor Mouse Over Any en Property seleccionas la propiedad, esto es para que solo detecte los objetos que tienen esa propiedad sino detectaría todos los objetos 3d, ah y el triggered debe estar activado para que envie pulsos siempre que el sensor esté activo sino solo mandaría un pulso y tendrias que volver a clicar como en modo Tap.
Adjuntos

[La extensión blend ha sido desactivada y no se mostrará en adelante]


Avatar de Usuario
soliman
Mensajes: 5501
Registrado: Jue Sep 01, 2005 1:13 pm
Nombre: soliman
Contactar:

Re: Arrastrar objeto con el ratón

Mensaje por soliman » Jue Dic 14, 2017 6:29 am

juani escribió:Te dejo un blend con el script modificado, tienes que poner una propiedad al objeto y en el sensor Mouse Over Any en Property seleccionas la propiedad, esto es para que solo detecte los objetos que tienen esa propiedad sino detectaría todos los objetos 3d, ah y el triggered debe estar activado para que envie pulsos siempre que el sensor esté activo sino solo mandaría un pulso y tendrias que volver a clicar como en modo Tap.
Este está muy bueno....
Si pudieras hacer que se moviera por coordenadas sería estupendo.
Por ejemplo, que al presionar la letra Z, se moviera solo en coordenada Z, y lo mismo con las otras coordenadas, y poniendo un TAP podrías hacer que el cubo se moviera un "volumen" y poder construir bloques de edificio (como ejemplo) :)

antoniocasas47
Mensajes: 111
Registrado: Lun Ene 30, 2017 9:32 am
Nombre: Antonio

Re: Arrastrar objeto con el ratón

Mensaje por antoniocasas47 » Jue Dic 14, 2017 9:57 am

juani escribió:Te dejo un blend con el script modificado, tienes que poner una propiedad al objeto y en el sensor Mouse Over Any en Property seleccionas la propiedad, esto es para que solo detecte los objetos que tienen esa propiedad sino detectaría todos los objetos 3d, ah y el triggered debe estar activado para que envie pulsos siempre que el sensor esté activo sino solo mandaría un pulso y tendrias que volver a clicar como en modo Tap.
Buenas juani. He copiado el script y el editor de lógica a mi blender y va genial. El único inconveniente que le veo es dificil de explicar. Cuando coges el objeto desde cualquier punto, este se se posiciona en su centro. Lo que me gustaría es que, lo cojas desde donde lo cojas, puedas arrastrarlo hacia donde quieras partiendo de esa posición primera. ¿Se entiende más o menos lo que quiero decir? xD Gracias y saludos.

juani
Mensajes: 158
Registrado: Mié Oct 28, 2015 1:34 am
Nombre: Juan Antonio Sanchez Flores

Re: Arrastrar objeto con el ratón

Mensaje por juani » Jue Dic 14, 2017 4:31 pm

Creo que si que lo entiendo, mira este ejemplo, el script sigue en la cámara , añadimos un plano que nos coja toda la cámara el cual nos servirá para que el objeto que queremos mover se emparente a él cuando queramos.
El script hace que el plano se mueva siempre con el puntero del ratón.Ahora con logic bricks hacemos que el objto que queremos mover cuando el ratón pase por lo alto de él y hagamos clic se emparente al plano, y con un controlador Nand le decimos que si no haces clic se desemparente.Los logic van en el objeto que quieres mover. Esto con los logic es muy sencillo si tienes algunos objetos, si tienes muchos objetos para mover igual interesa un script.La vista que yo he usado es la superior que es la mejor porque tienes a la vista las coordenadas x, y que es lo que le gusta al ratón.Si tu juego está en primera persona no se si va a ir muy fluido, si no te va muy bien lo comentas e intentamos ajustarlo a tus necesidades. Ah, el plano lo haces que no se renderize para que no se vea.
Saludos
Adjuntos

[La extensión blend ha sido desactivada y no se mostrará en adelante]


antoniocasas47
Mensajes: 111
Registrado: Lun Ene 30, 2017 9:32 am
Nombre: Antonio

Re: Arrastrar objeto con el ratón

Mensaje por antoniocasas47 » Jue Dic 14, 2017 5:28 pm

juani escribió:Creo que si que lo entiendo, mira este ejemplo, el script sigue en la cámara , añadimos un plano que nos coja toda la cámara el cual nos servirá para que el objeto que queremos mover se emparente a él cuando queramos.
El script hace que el plano se mueva siempre con el puntero del ratón.Ahora con logic bricks hacemos que el objto que queremos mover cuando el ratón pase por lo alto de él y hagamos clic se emparente al plano, y con un controlador Nand le decimos que si no haces clic se desemparente.Los logic van en el objeto que quieres mover. Esto con los logic es muy sencillo si tienes algunos objetos, si tienes muchos objetos para mover igual interesa un script.La vista que yo he usado es la superior que es la mejor porque tienes a la vista las coordenadas x, y que es lo que le gusta al ratón.Si tu juego está en primera persona no se si va a ir muy fluido, si no te va muy bien lo comentas e intentamos ajustarlo a tus necesidades. Ah, el plano lo haces que no se renderize para que no se vea.
Saludos
Buenas juani. Gracias por el ejemplo, va excelente ahora :) Lo único que me quedaría es suprimir la posición z del del objeto para que al cogerlo y subir el ratón, el objeto no suba, sino que se mantenga en el suelo. Supongamos que es un objeto pesado y el jugador no puede levantarlo y solo arrastrarlo. He probado a ponerle un actuador de restricción en la posición z pero no me hace nada :S También lo he probado con la orientación. Gracias y saludos.

juani
Mensajes: 158
Registrado: Mié Oct 28, 2015 1:34 am
Nombre: Juan Antonio Sanchez Flores

Re: Arrastrar objeto con el ratón

Mensaje por juani » Vie Dic 15, 2017 12:29 am

Pues aprovechando que tenemos un script en la cámara, añadimos un sensor Alwais para que siempre se esté ejecutando el script y en el script declaramos el objeto Torus que es el que quiero mover(escena.objects['Torus']) lo guardo en la variable que llamo (toro), a continuación diremos (toro.worldPosition.z = 0), esto es que la posición del toro sea siempre 0 en el eje z. Tienes que mirar la posición que tiene en z el objeto que quieres mover, si su centro o su origen está por ejemplo en 1,453 entonces tienes que poner (torus.worldPosition.z = 1,453) para que respete el volumen del objeto.Te dejo el ejemplo.
Adjuntos

[La extensión blend ha sido desactivada y no se mostrará en adelante]


antoniocasas47
Mensajes: 111
Registrado: Lun Ene 30, 2017 9:32 am
Nombre: Antonio

Re: Arrastrar objeto con el ratón

Mensaje por antoniocasas47 » Vie Dic 15, 2017 6:51 pm

juani escribió:Pues aprovechando que tenemos un script en la cámara, añadimos un sensor Alwais para que siempre se esté ejecutando el script y en el script declaramos el objeto Torus que es el que quiero mover(escena.objects['Torus']) lo guardo en la variable que llamo (toro), a continuación diremos (toro.worldPosition.z = 0), esto es que la posición del toro sea siempre 0 en el eje z. Tienes que mirar la posición que tiene en z el objeto que quieres mover, si su centro o su origen está por ejemplo en 1,453 entonces tienes que poner (torus.worldPosition.z = 1,453) para que respete el volumen del objeto.Te dejo el ejemplo.
Excelente. No podía haber quedado mejor. Muchas gracias juani. Saludos :)

Responder