Skocz do zawartości

Animacja rosnącego stosu pieniędzy


wezyr512

Rekomendowane odpowiedzi

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

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 18
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

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 przez Reanimator
Odnośnik do komentarza
Udostępnij na innych stronach

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.

Odnośnik do komentarza
Udostępnij na innych stronach

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 przez Dynamico
Odnośnik do komentarza
Udostępnij na innych stronach

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.

Odnośnik do komentarza
Udostępnij na innych stronach

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 przez wezyr512
Odnośnik do komentarza
Udostępnij na innych stronach

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 ;)

Odnośnik do komentarza
Udostępnij na innych stronach

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.

Odnośnik do komentarza
Udostępnij na innych stronach

@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.

Odnośnik do komentarza
Udostępnij na innych stronach

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.

Odnośnik do komentarza
Udostępnij na innych stronach

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!

Odnośnik do komentarza
Udostępnij na innych stronach

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).

Odnośnik do komentarza
Udostępnij na innych stronach

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 przez Reanimator
Odnośnik do komentarza
Udostępnij na innych stronach

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.

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