Vai al contenuto
Alessia Basili

creare una torre di lego in 3dsmax

Recommended Posts

Inviata (modificato)

salve a tutti voi cari amici di treddi.com...!!!!:D

sono agli inizi con la modelazione con 3dsmax.

e quindi forse faccio una domanda un po' ovia, ma stavo cercando di ricostruire questa torre di container, e mi chiedevo se ci fosse un plugin o uno script che copiasse in verticale tutte queste proxy ruotandole random, componendo un incastro perfetto, e io più che fare una copia multipla con l'array, non mi viene in mente nient'altro :mellow:.

chi di voi sa la soluzione?

metto il link della scena in questione perchè a mio parere è molto bella..

http://www.evermotion.org/tutorials/show/8375/making-of-metallum-city-giants-in-the-dust_07.jpg


Modificato da Alessia Basili

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Prova ad usare questo mio ingenuo e semplice script. Selezioni il tuo proxy, determini la rotazione minima e massima dell'oggetto e con il pulsante "Go Z!" crei una nuova copia con rotazione casuale sopra quello selezionato. Esso funziona con un "Boundig Box" virtuale, quindi devi prestare attenzione al punto più alto del tuo oggetto.

 

Se vuoi cambiare il "copia" con "reference" o "instance", modifica la stringa "copy_obj = copy $" con "copy_obj = instance $" o "copy_obj = reference $"

 

try (destroydialog :: test) catch()

rollout test "Clone and Rotate"
(
	global _min, _max, pos, copy_obj
	
	group "Degree of Rotation" (
	spinner sp02 "Min :" range:[0,360,10] fieldWidth:40
	spinner sp03 "Max :" range:[0,360,45] fieldWidth:40
	)
	button bt "Go Z!"
	
	on bt pressed do
	(
       try(
		_min = $.min
		_max = $.max
		copy_obj = copy $

			copy_obj.pos = [$.pos.x, $.pos.y, _max.z]
			copy_obj_rotate = eulerangles 0 0 (random sp02.value sp03.value)
rotate copy_obj copy_obj_rotate
select copy_obj
	   )catch()
		
	)
	
	
	
)
createdialog test style:#(#style_titlebar, #style_sysmenu, #style_toolwindow, #style_sunkenedge)

 

 

 

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

ciao michele,

grazie mille di avermi risposto così velocemente.!! :D

ho provato al volo il tuo script..

ma non mi fa selezionare più blocchi contemporaneamente. quindi ruotando un solo un blocco per volta non è che mi viene molto bene..

e dalle immagini che ti posto qui sotto, sembra che lui combini almeno due blocchi diversi ( quello aperto e quello chiuso) creando una base quadrata della torre.. e sembra che questi blocchi slittano pure...

....

secondo te lui si fà una proxy con tutta la base della torre e poi va copiando e ruotando e traslando quella?

bho...sicuramente sono io che non ho capito, ma pensavo ci fosse una sorta di scatter che permettesse di scegliere due o tre mattoncini/container  diversi, e di combinarli tra loro in elevazione... in modo da creare quelle torri...

ho caricato l'immagine della mia prova con lo script.. che tra parentesi funziona... :D

ma non mi fa ottenere questo risultato...

_06.jpg

 

 

prova script.png

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

@Alessia Basili

 

Ho modificato lo script, la quale ora, ti permette di selezionare più oggetti. La rotazione determinata dagli spinner, è basata da 0° a 360° (con un minimo da quale parte la rotazione ad un massimo la quale termina). Quindi il mio consiglio è di usare piccole rotazioni per arrivare all'effetto voluto. Per lo scostamento dei container, ti conviene farle a mano anche perche hai un maggiore controllo sulla forma finale. Spero che possa tornarti utile.

 

Per quanto concerne la tua domanda, io credo che l'autore, ceato un gruppo, ruoti e sposti i container per poi applicargli il materiale (almeno Credo)... 

 

-- Rotate e clone di Michele71. Modifica a tuo rischio e pericolo!! :D


try (destroydialog :: cr) catch()

rollout cr "Clone and Rotate" width:264 height:64
(
	global _min, _max, pos, d, d2,sel
	
	groupBox grp1 "Degree of Rotation" pos:[8,8] width:196 height:48
	spinner sp02 "Min :" pos:[24,32] width:75 height:16 range:[0,360,0] fieldwidth:40
	spinner sp03 "Max :" pos:[120,32] width:78 height:16 range:[0,360,45] fieldwidth:40
	button bt "Go Z!" pos:[208,16] width:48 height:40
	
	on bt pressed do
	(			
	  try(
		
		maxOps.cloneNodes (selection as array) cloneType:#copy newNodes:&cn 
		for i = 1 to cn.count do (select cn) 
		_min = $.min
		_max = $.max
		d = dummy pos:_min
		sel = selection as array 
		toolMode.selectionCenter()
		sel.parent = d
		d.pos = [d.pos.x, d.pos.y, _max.z]
		delete d
		d2 = dummy()
		d2.pos = $.Center
		sel.parent = d2
		d2_rotate = eulerangles 0 0 (random sp02.value sp03.value)
		rotate d2 d2_rotate
		delete d2
		  
	   )catch()
		
	)
)
createdialog cr style:#(#style_titlebar, #style_sysmenu, #style_toolwindow, #style_sunkenedge)

 

 

Condividi questo messaggio


Link al messaggio
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora

  • Navigazione recente   0 utenti

    Non ci sono utenti registrati da visualizzare in questa pagina.

×