Home Tutorials Blender 2.5 Semplice script Python per ancorare le mesh a punti della scena in Blender 2.59; versione testuale

Google Translator

 

Effettua una donazione

 

 

 

 

 

Page Rank Check    

 

 

Ultimi articoli

Semplice script Python per ancorare le mesh a punti della scena in Blender 2.59; versione testuale
Tutorials - Blender 2.5
Scritto da RedBaron85   
Lunedì 19 Settembre 2011 00:00

Semplice script Python per ancorare le mesh a punti della scena in Blender 2.59; versione testuale


Link utili sulla programmazione Python in Blender 3D:


VIDEO - Playlist Youtube videocorso Python 3.2, 15 lezioni


EBOOK - Programmazione script e Add-On in Python per Blender 3D 2.5


 

 

NOTA --- Per visualizzare la versione video di questo tutorial, cliccare qui

 

Salve a tutti,
in questo tutorial vedremo come realizzare un semplice script per spostare un oggetto ponendo un suo vertice nelle coordinate date dalla posizione del 3D Cursor in Blender 3D 2.59, uno script utile quando si vuole far combaciare un punto di una mesh con un determinato punto dell'universo virtuale: volendo, si tratta di una funzione di ancoraggio degli oggetti.

Questo script non è presente nel mio ebook sulla programmazione di script e add-ons in Python per Blender 3D 2.5 ma, dopo aver studiato l'ebook, non sarà difficile scrivere o interpretare script del genere.

 

 

Nell'ebook si parla anche di come rilasciare gli script sotto forma di Add-Ons, per integrarli in maniera stabile nell'applicazione facendoli apparire ad esempio nel menù Info o nella Tool Shelf, ma in questo particolare tutorial non tratteremo queste operazioni; per maggiori informazioni sul contenuto dell'ebook, come sommario e pagine d'esempio, rimando alla sezione ebooks del mio sito web.

Ebook, videocorsi e tutorials di RedBaron85 su Blender, Java3D e altro su effe12.com


Ho aperto lo script in una finestra Text Editor di Blender; lo script non è un add-on, per cui verrà eseguito con Run Script e il suo operatore richiamato o con la Python Console oppure con la casella dell'help veloce, nella 3D View.

Esaminiamo lo script: all'inizio troviamo, ovviamente, gli import di base, mentre a seguire abbiamo la definizione della classe dell'operatore che vogliamo implementare, unica classe presente nello script e registrata nell'ambiente di esecuzione di Blender mediante i metodi register e unregister e il controllo che li richiama, a fine script.

Il corpo della classe è composto, in realtà, da poche istruzioni, ma prima di esaminarle dobbiamo parlare di come funziona lo script in generale.

A volte si ha la necessità di spostare un oggetto facendo coincidere un suo particolare punto (identificato, in pratica, mediante un vertice) con un altro punto della scena, sia esso il vertice di un altro oggetto che un punto qualsiasi.

Lo script qui presentato consente di fare proprio questo e funziona in questo modo: dopo aver posizionato il 3D Cursor nella coordinata di destinazione, si seleziona l'oggetto da spostare, si sceglie in Edit Mode il vertice che dovrà finire nel punto individuato dal 3D Cursor e, una volta tornati in Object Mode, si esegue lo script, che calcola l'offset di spostamento tra il 3D Cursor e il vertice, e sposta tutta la mesh, in Object Mode.

Torniamo allo script: la prima istruzione serve a recuperare l'oggetto attivo della scena, quello che vogliamo spostare, assegnandogli una variabile di comodo, dopodiché si forza il passaggio a Object Mode, visto che lo script funziona correttamente solo in questo contesto.

Si recuperano il vertice selezionato e le sue coordinate mediante ciclo for con controllo sul valore del campo booleano select, depositando le coordinate in vp (per Vertex Position); dal momento che queste sono coordinate locali del vertice rispetto all'Origin della mesh, per recuperare le coordinate globali dobbiamo sommare i valori di vp a quelli di location della mesh: un vettore con le coordinate XYZ dell'Origin della mesh (per cui la somma implementata col + è proprio la somma tra due variabili vettore, membro a membro).

Le informazioni sulla posizione del 3D Cursor nella scena si trovano, come suggerito dal Tooltip su 3D Cursor Location in una Transform Window, in scene.cursor_location del modulo context, che si riferisce allo stato attuale della scena; depositiamo tali coordinate nel vettore cL, per Cursor Location, una variabile di comodo.

Segue l'istruzione di spostamento della mesh, implementata ancora una volta con la somma vettoriale: all'origin della mesh, indicata da Location, si somma il vettore di offset, calcolato come differenza tra vertex position e cursor location.

Passiamo alla pratica: nella scena è presente un plane, adesso passando in Edit Mode e in modalità selezione vertici poniamo il 3D Cursor in uno dei vertici del piano, selezionando un vertice e sfruttando il menù SNAP, richiamabile con SHIFT-S, per scegliere Cursor to Selected.

Torniamo in Object Mode e aggiungiamo un altro elemento alla scena, ad esempio il classico cubo, la cui Origin sarà, all'inizio, nel punto individuato dal 3D Cursor; spostiamo un po' il cubo per apprezzare meglio l'effetto, dopodiché passiamo in Edit Mode e scegliamo uno dei vertici da posizionare nel punto ove si trova il 3D Cursor, dopodiché torniamo in Object Mode.

Nella finestra Text Editor, clicchiamo su Run Script: apparentemente non è successo nulla, ma in realtà l'operatore definito nello script è stato registrato all'interno di Blender; richiamiamolo, ad esempio, aprendo la casella dell'help veloce nella 3D View e iniziando a digitare il nome dato all'operatore in bl_idlabel, scrivendo “Sposta un” e selezionando la voce che apparirà nella casella dell'help per eseguire lo script, come visibile a video.

Nella 3D View, premiamo CTRL Z per annullare l'operazione ed eseguire lo script richiamandolo, questa volta, dalla Python Console: utilizziamo, in questo caso, l'istruzione specificata nel campo bl_idname, più il prefisso bpy.ops (in quanto si tratta, ora, di un operatore registrato nelle bpy), ossia bpy.ops.wm.cursor_offset e le parentesi tonde, perché si tratta di una funzione.

 

Se si desidera eseguire lo script non appena si clicca su Run Script, è sufficiente inserire l'istruzione appena citata nel file dello stesso, subito dopo la definizione della classe dell'operatore, fuori da tale blocco (cioé con indentazione nulla); per la definizione di Add-Ons da integrare stabilmente nell'applicazione, invece, rimando alle istruzioni contenute nell'ebook.

Semplice script Python per ancorare le mesh a punti della scena in Blender 2.59; versione testuale

Bene, per questo tutorial è tutto;

bye!


 


Risorse consigliate sulla programmazione Python in Blender 3D:


E-Book
Ebook Programmazione Script Python per Blender 2.5 
Programmazione Python
per Blender 3D 2.5


















 

Tags:     videotutorial      informatica computer      computer grafica      computer graphics      redbaron85      blender 3d      blender 2.5      script python      blender python      ebook      blender 2.5 python tutorial      3d cursor location      offset
Ultimo aggiornamento Domenica 17 Febbraio 2013 17:10
 

 

Ricerca personalizzata

 

Milanese Francesco - Partita IVA: 04950350878

Copyright © 2013 RedBaron85.com: Informatica, CG 2D e 3D, Blender, Python, Java 2D e 3D, 3D Studio e altro ancora!. Tutti i diritti riservati.
Joomla! è un software libero rilasciato sotto licenza GNU/GPL.
AltroArticoliblog utentiBlueprintsContestenglishProgrammazioneModelliElencoNewsTexturesTutorialsVideotutorials