Skocz do zawartości

[maxscript] mirror script


guru

Rekomendowane odpowiedzi

Mam taki skrypcik jak ponize. Dziala ale mam problem. Bo klon pozostaje na swoim miejscu a obiekt ktory klonuje jest przemieszczany mimo tego ze w kodzie jest wszystko ok;/.

Jak to mozliwe? Blagam o pomoc.

Linia nr 5 tworzy kopie ale jak zagladam do tablicy to ma taka sama nazwe jak obiekt ktory klonuje.a potem nagle po zakonczeniu skryptu nazwy sa uzupelniane o numerek na koncu. No ale mirrorowany jest nie ten obiekt co trzeba.

 

clones = #()
a= selection[1]
rot = a.rotation
pos = a.position
maxOps.cloneNodes a expandHierarchy:true actualNodeList:&objs newNodes:&clones --kopiuje cala hierarchie (dzieci) ***opcjonalne
c = FindRootObj clones
b = c[1]
b.parent = undefined --opcjonalne
b.rotation = (quat rot.x -rot.y -rot.z rot.w)
b.position = pos*[-1,1,1]

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 3
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

znajduje rodzica polozonego najwyzej w hierarchi z danej tablicy

 

fn FindRootObj curSel=
(

local rootObjs = #()
curSel = #()
curSel = getCurrentSelection()

for x in curSel do 
(
	local parentSelected = false
	local next =false
	local curObj = x
	while next==false do 
	(
		if curObj.parent == undefined then 
		(
			next = true
		)
		else if finditem curSel curObj.parent != 0 then
		(
			parentSelected = true
			next = true
		)
		else curObj = curObj.parent
	)
	if parentSelected==false then append rootObjs x
)
return rootObjs
)

Edytowane przez guru
Odnośnik do komentarza
Udostępnij na innych stronach

Problem rozwiązany na gg, dla chętnych gotowy kod:

fn FindRootObj curSel=
(

local rootObjs = #()

for x in curSel do
(
local parentSelected = false
local next =false
local curObj = x
while next==false do
(
if curObj.parent == undefined then
(
next = true
)
else if finditem curSel curObj.parent != 0 then
(
parentSelected = true
next = true
)
else curObj = curObj.parent
)
if parentSelected==false then append rootObjs x
)
return rootObjs
)

clones = #()
a= selection[1]
rot = a.rotation
pos = a.position
maxOps.cloneNodes a expandHierarchy:true actualNodeList:&objs newNodes:&clones --kopiuje cala hierarchie (dzieci) ***opcjonalne
c = FindRootObj clones
b = c[1]
b.parent = undefined --opcjonalne
b.rotation = (quat rot.x -rot.y -rot.z rot.w)
b.position = pos*[-1,1,1]

 

Błąd był w funkcji FindRootObj.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności