guru Napisano 31 Maj 2010 Napisano 31 Maj 2010 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]
lechoo Napisano 31 Maj 2010 Napisano 31 Maj 2010 Co siedzi w funkcji FindRootObj? Po jej usunieciu obiekt klonowany pozostaje na miejscu a przesuwana jest kopia.
guru Napisano 1 Czerwiec 2010 Autor Napisano 1 Czerwiec 2010 (edytowane) 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 1 Czerwiec 2010 przez guru
pchela1313 Napisano 1 Czerwiec 2010 Napisano 1 Czerwiec 2010 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.
Rekomendowane odpowiedzi
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ę