wezyr512 Napisano 19 Lipiec 2014 Napisano 19 Lipiec 2014 Wita, Jak zrobić taka animację w maxie, ale żeby powielone banknoty były losowo wybierane z puli np. 10? http://www.shutterstock.com/video/clip-2033080-stock-footage-hundred-dollar-bill-growing-pile.html?src=rel/258610:1/gg Tak żeby stos tworzony był z różnych walut i jednocześnie każdy banknot był losow lekko obrócony jak na filmiku? Jeśli ktoś zna radę w after effect też może się przydać. Z góry dzięki! Pozdrawiam
Reanimator Napisano 19 Lipiec 2014 Napisano 19 Lipiec 2014 MaxScript. Gdyby to byla maja to bym Ci napisal skrypt Pythona, bo to banalne, ale maxscripta nie znam:)
Reanimator Napisano 19 Lipiec 2014 Napisano 19 Lipiec 2014 (edytowane) Ok, jakbys chcial sprobowac w Majce to to jest narzedzie dla Ciebie:) Mozesz to sobie pozniej przeniesc FBXem do Maxa! (w Twoim przypadku pewnie najpierw musisz sobie z Maxa przerzucic banknoty, ktore maja byc kopiowane) Zaznaczasz w scenie obiekty, ktore chcesz ulozyc w stosie i odpalasz skrypt. Parametry, np. ILOSC_BANKNOTOW ustawiasz sobie wg. uznania FTR nie dbalem o elegancje kodu;) Python: import maya.cmds as cm import random #UWAGA: musisz miec zaznaczone banknoty, ktore chcesz kopiowac #ustawiasz wg uznania ILOSC_BANKNOTOW = 10 START_ANIMACJI = 10 ODSTEP_MIEDZY_POJAWIANIEM = 5 #w klatkach ODSTEP_MIEDZY_BANKNOTAMI = 0.2 MAX_OBROT = 2 #jak bardzo moja sie obracac banknoty POLOZENIE_STOSU = (0, 0, 0) #w swiecie (x, y, z) sel = cm.ls(sl=True) x = 0 for i in range(START_ANIMACJI, ILOSC_BANKNOTOW*ODSTEP_MIEDZY_POJAWIANIEM+START_ANIMACJI, ODSTEP_MIEDZY_POJAWIANIEM): print i obj = sel[random.randint(0,len(sel)-1)] cm.select(obj, r=True) cm.duplicate() cm.move(POLOZENIE_STOSU[0] , POLOZENIE_STOSU[1]+x, POLOZENIE_STOSU[2], a=True) liczba = random.randrange(-MAX_OBROT, MAX_OBROT) cm.rotate(0, liczba, 0, a=True) cm.setKeyframe( v=0, at='visibility', t=i) cm.setKeyframe( v=1, at='visibility', t=i+ODSTEP_MIEDZY_POJAWIANIEM) x += ODSTEP_MIEDZY_BANKNOTAMI Edytowane 20 Lipiec 2014 przez Reanimator
olaf Napisano 19 Lipiec 2014 Napisano 19 Lipiec 2014 Bardzo fajnie, ze podałeś kod, ale pewnie mała funkcja zamiast zmiennej wygladałaby znacznie lepiej wizualnie. Nie znam pytonga ale to zwykły OOP więc mam sugestię: ODSTEP_MIEDZY_POJAWIANIEM = 2*(3*getRandom()); ODSTEP_MIEDZY_BANKNOTAMI = .2*(.2*getRandom()); gdzie function getRandom(){} to funkcja zwracająca liczby 0.1-1; da to mniej regularny, bardziej naturalny ruch obiektów.
Reanimator Napisano 19 Lipiec 2014 Napisano 19 Lipiec 2014 Przyklad nie mial randomu w animacji, wiec go nie zrobilem. Jest tylko w rotacji. Czemu odstep miedzy banknotami plaskimi mialby byc rozny?:)
olaf Napisano 19 Lipiec 2014 Napisano 19 Lipiec 2014 heh w sumie nie musi. Taka moja maniera, by unikać tych samych liczb przy generowaniu fizycznych obiektów/dynamiki, mam teorię, że oczy to widzą :P
Dynamico Napisano 20 Lipiec 2014 Napisano 20 Lipiec 2014 (edytowane) To dla jednego banknotu. Utwórz w scenie banknot, zaznacz go a potem uruchom skrypt. Ewentualnie dostosuj niektóre wartości do swoich potrzeb. /* Początek skryptu */ set animate on frame = 100 /*od której klatki ma wystartować animacja */ krok=5 /* co ile klatek ma zostać dołożony banknot */ jakigruby=0.04 /* jak ma rosnąć stos w gore */ ilebanknotow = 100 animationRange= interval 0 ((ilebanknotow*krok)+frame) for i =1 to ilebanknotow do ( obrot = random -2 2 przes = random -.05 .05 sliderTime = frame maxOps.cloneNodes $ cloneType:#instance newNodes:&nnl #nodialog select nnl move $ [przes,przes,jakigruby] rotate $ (eulerangles 0 0 obrot) /* usuń ten wiersz jeżeli banknoty nie powinny się obracać */ frame=frame +krok ) set animate off /* Koniec skryptu */ Edytowane 20 Lipiec 2014 przez Dynamico
Reanimator Napisano 20 Lipiec 2014 Napisano 20 Lipiec 2014 Dynamico, Twoj kod wcale nie sprawi, ze obiekty beda sie pojawialy co okreslona ilosc klatek;) Takze jako ze nie uzyles rotacji do wartosci absolutnej Twoj stos stworzy najprawdopodobniej spirale, bo bedzie obracal o dodatkowa wartosc juz obroconego banknotu. Dodatkowo, jak sobie odpalam Twoj skrypt, to poszegolne banknoty maja animacje na rotacji i obracaja sie przez jakis czas. Dziwny efekt.
wezyr512 Napisano 20 Lipiec 2014 Autor Napisano 20 Lipiec 2014 (edytowane) Na poczatku, Dzięki Wielkie za skrypty i poświęcony czas! Reanimator, musze zainstalowac Mayke tak wiec Twój skrypt sprobuje jako nastepny, podejrzewam ze bedzie dzialac tak jak chcialem widzac po komentarzach:) Mam nadzieje, ze animacja bedzie mozliwa do zapisania w FBXie i zaimportowania potem. EDIT Działa!:) Tylko jest problem z osiami, kopiowane banknoty sa obrocone o 90 stopni i kopiuja się w górę. Idzie to jakos naprawić? Może źle zrobiłem w FBXie coś? https://www.dropbox.com/s/yc9re6sz1nvd9nf/Przechwytywanie.PNG Edytowane 21 Lipiec 2014 przez wezyr512
Reanimator Napisano 21 Lipiec 2014 Napisano 21 Lipiec 2014 Z pewnoscia kwestia osi. Jak zrobisz screena z wlaczona translacja lokalna, zebym mogl zobaczyc kierunki, to bylbym w stanie podac Ci wlasciwe wartosci. Ja mam tak, jak w zalaczniku, czyli Y do gory, u Ciebie jest pewnie inaczej. Nie wiem tez, czy nie chcesz przypadkiem, zeby stos ukladal sie pionowo, bo wydaje sie, ze zrodlowe banknoty sa u Ciebie pionowo. Zobacz. cm.rotate(0, liczba, 0, a=True) Ta linijka odpowiada za obrot. Pierwsze 0 to rotacja w X, liczba to randomowa liczba z zakresu ustalonego na poczatku i dziala w osi Y, a ostatnie 0 to obrot w Z. Zmieniajac te wartosci, jak ich kolejnosc, decydujesz o tym, jak wyglada stos. Mozesz zmienic np. tak: cm.rotate(90, liczba, 0, a=True) albo tak: cm.rotate(liczba, 0, 90, a=True) Zalezy od osi zrodlowego banknotu i efektu, jaki chcesz uzyskac. Wiec jezeli bedziesz chcial w pionie to i te linijke bedzie trzeba zmienic: cm.move(POLOZENIE_STOSU[0] , POLOZENIE_STOSU[1]+x, POLOZENIE_STOSU[2], a=True) Ehh... wystaw mi swoj plik Majowy na dropboxa to Ci wszystkie parametry ustawie odpowienio ;)
Dynamico Napisano 21 Lipiec 2014 Napisano 21 Lipiec 2014 No cóż. Jeżeli chodzi o Maxscript to jestem więcej niż amatorem ale jednak chyba działa ;-) [video=youtube_share;MwbuVV_gL8o] Po drobnych zmianach banknoty mogą np. spadać z góry. Jeżeli chodzi o rotację to jest losowa i faktycznie może się zdarzyć, że banknoty utworzą spiralny stos.
Reanimator Napisano 21 Lipiec 2014 Napisano 21 Lipiec 2014 Nie twierdze, ze jestes amatorem:) Po prostu jest to efekt inny niz na referencji:) Poza tym jak go uzylem to mialem przedziwny efekt obracajacych sie banknotow, czego u Ciebie nie widac. Dziwne:)
Dynamico Napisano 21 Lipiec 2014 Napisano 21 Lipiec 2014 @Reanimator. Jestem, jestem :-) Ten efekt obracających się banknotów nie jest dziwny. Przy zadanym kroku klatek większym niż 1, banknot ustawia się w swojej pozycji (jest przecież kopiowany z poprzednika) w ciągu właśnie tych kilku klatek. Trzeba by jeszcze zmienić wszystkie "tangent" w krzywej animacji na "stepped", ale na razie nie wiem jak to zrobić. Wtedy kopia pojawiała by się już z ostatecznymi współrzędnymi.
Reanimator Napisano 21 Lipiec 2014 Napisano 21 Lipiec 2014 Chyba nie ogarniam zasad dzialania Maxa;) Ja zrobilem to inaczej, tym bardziej, ze robie stos z puli zaznaczonych obiektow, ktore leza obok. Nie tworze kopii w czasie, tylko tworze fizycznie w scenie caly stos (niewidoczny) i animuje jedynie visibility w odpowiednim momencie. I nie ma na zadnej karcie animacji na rotacji.
wezyr512 Napisano 21 Lipiec 2014 Autor Napisano 21 Lipiec 2014 Działa!:) Wziąłem cm.rotate(90, liczba, 0, a=True) i jest teraz dobrze, co prawda przy 300-stu kopiach mieli dluugo ale to chyba wina sprzetu. Dzięki wielkie Reanimator za pomoc! Przyznam, że dla mnie skryptowanie to czarna magia, a i Majke odpaliłem pierwszy raz:) Moze sie przyda na przyszlosc:) Dynamico, dzieki rowniez! Wybralem skrypt Majkowy ze wzgledu na losowe powielanie, nie wszystkie obiekty mam identyczne ale dzieki za poswiecony czas!
uzumakishadow Napisano 21 Lipiec 2014 Napisano 21 Lipiec 2014 Panowie a nie prościej było to machnąć partiklami (pflow w maxie?) z instancjami (maya), repliaktorami)modo) clonerami i mogrpahem (c4d). Nie dość, że nic nie mieli, można wygenerować naprawdę sporo obiektów, wszystko jest full opcja proceduralne, można spokojnie sobie w łatwy sposób animować prędkość, rozsunięcia, obroty etc etc. Dodatkowo nie trzeba się ograniczać do pionowego stosu, spirale, helisy, po dowolnie pogiętej ścieżce... Można podołączać rożne obiekty etc...Można różnie kombinować z detalami jak np. czy stos ma się generować "new on top" czy wypychanie od dołu i to za pomocą kilku kliknięć... Do mayi jest nawet taki mega przyjazny tool pt. Mash (taki mograph dla mayi).
Reanimator Napisano 21 Lipiec 2014 Napisano 21 Lipiec 2014 (edytowane) Hah, akurat bardziej znam sie na programowaniu, niz particlach, wiec dla mnie latwiej i szybciej;) a animacje mozna dodac dwoma dodatkowymi linijkami kodu, spirale podobnie;) w koncu pod UI partiklowym kryje sie kod;) Wezyr: musisz miec starego kompa mocno, skoro az tyle to trwa. Chociaz "az tyle" nie moze trwac wiecej, niz ile? 3 sekundy?:) u mnie jest natychmiast przy tej ilosci,a nie mam najnowszego sprzetu Edytowane 21 Lipiec 2014 przez Reanimator
uzumakishadow Napisano 21 Lipiec 2014 Napisano 21 Lipiec 2014 Heh no u mnie to z tym melem to heh jakoś niezbyt... To nawet nie są jakieś tam czary mary partiklowe z kodowaniem ;) ot generuj partikle - podepnij obiekty - zabawa. Parę klocków na krzyż. Ale jak siedzisz w mayi i chcesz sobie uprościć parę rzeczy to polecam Mash'a.
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ę