1. home >
  2. Large Language Artefacts >
  3. Mikaël >
  4. Smiley_Mikaël

November 22nd at 10:31am


Smiley_Mikaël

Placement_final_smiley

Prompt pour la génération : Je suis entrain de travailler sur un projet de smiley en 3d. Je veux que la position, la rotation, et l'échelle de mes différent élément, soit contrôlé par un fichier texte, ou JSON en dehors d'un script. Comment je peux faire pour que Blender, lisent ce fichier externe, et puissent modifier les paramètres cités, automatiquement.

Script pour récupérer les informations :

import bpy import json

Hardcode the path to the JSON file

json_path = 'D:\Boulot\Art et design (étude)\Workshop\Workshop ia\your_file.json'

Read JSON file

with open(json_path, 'r') as f: data = json.load(f)

Modify objects

for obj_name, obj_data in data.items():

Check if object exists in the scene

if obj_name in bpy.context.scene.objects:
    obj = bpy.context.scene.objects[obj_name]
    obj.location = obj_data['location']
    obj.rotation_euler = obj_data['rotation']
    obj.scale = obj_data['scale']

Contenu du fichier JSON :

{ "ObjectName1": { "location": [x, y, z], "rotation": [x, y, z], "scale": [x, y, z] }, "ObjectName2": { "location": [x, y, z], "rotation": [x, y, z], "scale": [x, y, z] }, ... }

J’ai donc rempli le fichier JSON avec les 3 objet que j’ai dans ma scéne.

Scene_smileu

Contenu du fichier JSON :

{ "Face": { "location": [0, 0, 0], "rotation": [0, 0, 0], "scale": [1, 1, 1] }, "Oeil": { "location": [0, 0, 0], "rotation": [0, 0, 0], "scale": [1, 1, 1] }, "Bouche": { "location": [0, 0, 0], "rotation": [0, 0, 0], "scale": [1, 1, 1] } }

Essai de placement des objet par mistral :

prompt : Maintenant nouvelle exercice ! J'aimerais que le contenu du fichier JSON, tu le modifie pour me faire correctement le smiley. Car comme tu peux le voir, tous les éléments sont positione sur le point 0. J'ai trois élément, un objet pour le visage apellé "Face" d'un diamètre de 2 mètre. Un pour les yeux appelé "Oeil" constitué d'un ovale d'une Hauteur de 0.4m et de 0.1m de largeur. Mis en mirroir, ducoup la position de l'objet correspond à l'oeil gauche. et un pour la bouche appelé "Bouche3. Qui est un rectangle de de 1m de largeur et de 0.2 m de hauteur. essaye de me placer les élément correctement avec le fichier json pour faire le visage selon tes connaissances.

Résultat : { "Face": { "location": [0, 0, 0], "rotation": [0, 0, 0], "scale": [1, 1, 1] }, "Oeil": { "location": [-0.5, 0, 0.5], "rotation": [0, 0, 0], "scale": [1, 1, 1] }, "Bouche": { "location": [0, -0.2, 0.5], "rotation": [0, 0, 0], "scale": [1, 1, 1] } }

Résultat final :

{ "Face": { "location": [0, 0, 0], "rotation": [0, 0, 0], "scale": [1, 1, 1] }, "Oeil": { "location": [-0.5, 0.2, 0], "rotation": [0, 0, 0], "scale": [1, 1, 1] }, "Bouche": { "location": [0, -0.4, 0], "rotation": [0, 0, 0], "scale": [1, 1, 1] } } Placement_final_smiley

Pour mettre en lien mon projet, je lui ai demandé de me générer un script qui permettrait de mettre des valeurs aléatoires dans la position de la bouche et des yeux sans que ce soit trop déformé.

Prompt : Génére moi un scripts dans blender qui permettrait de modifier la position des objets de manière aléatoire

import json import random

Generate random values for the location and scale of the objects

face_location = [0, 0, 0] face_scale = [1, 1, 1]

oeil_location = [-0.5 + random.uniform(-0.1, 0.1), 0.2 + random.uniform(-0.05, 0.05), 0] oeil_scale = [random.uniform(0.9, 1.1), random.uniform(0.9, 1.1), random.uniform(0.9, 1.1)]

bouche_location = [random.uniform(-0.1, 0.1), -0.4 + random.uniform(-0.05, 0.05), 0] bouche_scale = [random.uniform(0.9, 1.1), random.uniform(0.9, 1.1), random.uniform(0.9, 1.1)]

Create the JSON data

data = { "Face": { "location": face_location, "rotation": [0, 0, 0], "scale": face_scale }, "Oeil": { "location": oeil_location, "rotation": [0, 0, 0], "scale": oeil_scale }, "Bouche": { "location": bouche_location, "rotation": [0, 0, 0], "scale": bouche_scale } }

Write the JSON data to a file

with open('D:/Boulot/Art et design (étude)/Workshop/Workshop ia/your_file.json', 'w') as f: json.dump(data, f, indent=2)

print("JSON file generated successfully.")

Scripts

Maintenant, avec l’aide de deux script, je peux générer des valeurs aléatoire, et lancer le positionnement.


Liste des références associées au projet