Resultados 1 al 2 de 2

¿Cómo almacenar la posición inicial de un objeto en Blender?

  1. #1
    Fecha de ingreso
    Sep 2008
    Mensajes
    186

    Blender Variable?

    Blender 2.54. Atención pregunta: Yo tengo un cubo en la posición (1,3,4) y creo una variable _cubito_ = Bpy, data, objects[Cube].location.x.

    Cuyo resultado será 1, si muevo el cubo en el eje X dos unidades, el valor de cubito será 3.
    ¿Cómo podría hacer para que el valor de cubito solo fuera el valor de la primera posición(en este caso 1)? O sea que solo memorizara el valor del eje X cuando yo arranco el script. Gracias por la ayuda que podáis ofrecerme.

  2. #2
    Fecha de ingreso
    Dec 2025
    Mensajes
    0
    Para almacenar la posición inicial de un objeto en Blender, debes capturar y guardar su ubicación en una variable al inicio del script, antes de realizar cualquier transformación. En versiones actuales de Blender (como la serie 4.x), la lógica es similar pero usando la API actual.

    Primero, importa bpy si no lo has hecho. Luego, obtén una referencia a tu objeto. Para guardar la posición inicial, necesitas copiar el vector de ubicación completo, no solo una de sus coordenadas. Si solo guardas una coordenada como .location.x y luego mueves el objeto, la variable seguirá referenciando la propiedad actual y cambiará. Debes almacenar una copia del valor.

    Puedes hacerlo así: al principio de tu script, después de tener la referencia al objeto, crea una variable para la posición inicial. Usa .copy() en el vector de ubicación para almacenar una copia independiente. Por ejemplo: posicion_inicial = mi_objeto.location.copy(). Esto guarda las tres coordenadas.

    Si solo necesitas el eje X, puedes almacenar el valor flotante directamente, pero asegurándote de que es un valor simple y no una referencia a la propiedad. Por ejemplo: cubito_x_inicial = mi_objeto.location.x. En Python, esto captura el valor numérico en ese instante.

    Aquí está el enfoque correcto. Al inicio de tu script, escribe estas líneas. Primero, obtén el objeto. Puedes usar bpy.data.objects["Cube"] si tu cubo se llama "Cube". Luego, almacena la coordenada X inicial en una variable nueva. Asegúrate de que el nombre de la variable sea claro, como valor_x_inicial.

    La línea clave sería: valor_x_inicial = bpy.data.objects["Cube"].location.x. En el momento que se ejecuta esta línea, el valor de la posición X se guarda en la variable valor_x_inicial. Más adelante, aunque muevas el objeto, el valor en valor_x_inicial permanecerá como 1 (en tu ejemplo).

    Para un método más robusto que guarde toda la posición, usa posicion_inicial = bpy.data.objects["Cube"].location.copy(). Luego puedes acceder a la X con posicion_inicial.x.

    Recuerda que si ejecutas el script completo repetidas veces en la misma sesión, la variable se redefinirá con la posición actual en ese nuevo inicio. Para un almacenamiento permanente durante la ejecución, considera usar variables globales en el script o propiedades personalizadas en el objeto.

Temas similares

  1. Tiempo de animación variable
    Por Rock0la en el foro Animación y Rigging
    Respuestas: 1
    : 12-04-2023, 17:56
  2. Escala variable de textura
    Por rgisbert en el foro Materiales y Texturizado
    Respuestas: 6
    : 15-03-2020, 11:46
  3. Variable extmin
    Por Ababol en el foro Programas de Diseño 3D y CAD
    Respuestas: 5
    : 26-12-2012, 14:40
  4. Flash Flash as3 variable colisión
    Por Gabriel_Arg en el foro Programas de Diseño 3D y CAD
    Respuestas: 1
    : 18-02-2011, 21:00
  5. Variable de AutoCAD
    Por Nacho074 en el foro Programas de Diseño 3D y CAD
    Respuestas: 2
    : 18-02-2008, 16:00

Etiquetas para este tema