Página 1 de 1

Arrastrar objeto con el ratón

Publicado: Mié Dic 13, 2017 3:06 pm
por antoniocasas47
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.

Re: Arrastrar objeto con el ratón

Publicado: Mié Dic 13, 2017 3:27 pm
por D4rB
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.

Re: Arrastrar objeto con el ratón

Publicado: Mié Dic 13, 2017 3:30 pm
por juani
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

Re: Arrastrar objeto con el ratón

Publicado: Mié Dic 13, 2017 4:57 pm
por antoniocasas47
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.

Re: Arrastrar objeto con el ratón

Publicado: Mié Dic 13, 2017 5:00 pm
por antoniocasas47
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.

Re: Arrastrar objeto con el ratón

Publicado: Jue Dic 14, 2017 12:41 am
por juani
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.

Re: Arrastrar objeto con el ratón

Publicado: Jue Dic 14, 2017 6:29 am
por soliman
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) :)

Re: Arrastrar objeto con el ratón

Publicado: Jue Dic 14, 2017 9:57 am
por antoniocasas47
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.

Re: Arrastrar objeto con el ratón

Publicado: Jue Dic 14, 2017 4:31 pm
por juani
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

Re: Arrastrar objeto con el ratón

Publicado: Jue Dic 14, 2017 5:28 pm
por antoniocasas47
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.

Re: Arrastrar objeto con el ratón

Publicado: Vie Dic 15, 2017 12:29 am
por juani
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.

Re: Arrastrar objeto con el ratón

Publicado: Vie Dic 15, 2017 6:51 pm
por antoniocasas47
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 :)