30. november 2005 - 15:02Der er
13 kommentarer og 2 løsninger
Animation af lys?
Hejsa
Hvordan laver jeg en animation af blinkende lys? F.eks. som paa en landingsbane, hvor ét lys taender, hvorefter det slukker i og med at det naeste lys taender osv. (lidt domino agtigt, hvis i forstaar) Er der nogen der kan fortaelle mig hvordan man goer det?
Det nemmeste vil nok være at scripte det vha. Maxscript. Grundlæggende ville lade scriptet køre igennem alle keyframes og for hver keyframe gennemløbe alle lys og stille hver lampes lysstyrke. Hvis du ikke kender til scripting vil det være en fin opgave at lære det på .. og samtidig noget du kan bruge mange andre steder.
.. og før du går i gang er det altid en god ide at være helt klar på hvordan du ville gøre det hvis du skulle gøre det med håndkraft, dvs. hvordan virker sådanne lys i virkligheden. Som der engang var en der sagde til mig, at først når man kan definere hvad man vil have i 3d kan man lave det :-)
Hvilen en af følgende måder vil du sige er den rigtige (eller måske en helt anden)? 1. Et lys er tændt og alle andre slukkede, lidt efter det næste tændt og alle andre slukkede osv. 2. Et lys er 100% tændt, næste er 90% tændt, næste er 80% tændt osv. ... 3. En række lys er tændt, og resten slukket. Næste øjeblik er "rækken af tændte" rykket. 4. ... ?
Den maade jeg forestiller mig det ske paa er som jeg har beskrevet i det foerste indlaeg! Altssa at ét lys taendes, hvoerfter et andet lys taendes samtidig med at det foerste lys slukkes (fade ind og ud)! Ligesom paa en landings bane, hvor lysen loeber fra den ene ende til den anden. Haaber det er til at forstaa!
Ok, altså en blanding mellem 1. to 2. .. f.eks. - første lys tændt 100%, andre lys slukkede - første lys tændt 50%, andet lys tændt 50%, andre lys slukkkede - første lys slukket, andet lys tændt 100%, andre lys slukkede - osv.
Det er efter min mening oplagt at lave sådan noget med max scripting. Du kan naturligvis også håndanimere det (men så synes jeg det er lidt sjovere at bruge tiden på at programmere et script end at sidde og skrue op og ned for lysstyrken på en masse lys). Kender du til maxscript eller programmering i forvejen? Er det noget du har mod på?
Her et lille script som gør nogenlunde som du skriver (det starter med at oprette en række lys og derefter animerer den det). Prøv at køre scriptet og derefter animere det ud til en .avi og se om det er sådan noget lignende du er ude efter. Hvis du selv har en række lys i din scene kan du udelade første del af scriptet (hvor der laves en plane og nogle lys). Den virker på een række lys (navngivet så de stiger i nummer f.eks. Omni01, Omni02 osv.). Hvis du vil have to rækker lys tager du blot og kopierer/cloner dine lys efter at du har kørt scriptet. Håber det kan hjælpe dig igang:
-- En plane og nogle lys Plane length:60 width:120 pos:[60,0,0] wirecolor:(color 8 8 136) for p = 1 to 10 do Omnilight rgb:(color 255 255 255) multiplier:0 pos:[p*10,0,10];
-- Animerer lysene lystabel = for j in lights collect j.name sort lystabel antal_lys = lystabel.count antal_keys = 100 taendt_lys_nr = 1 with animate on ( for k = 1 to antal_keys do ( at time k ( for i = 1 to antal_lys do ( lys = getNodeByName lystabel[i] lys.multiplier = 0.2 )--end i loop
Hvis du er ny til scripting så åben din 3ds max (jeg bruger Max 8). Vælg menuen MaxScript > New Script, og cut/paste koden ovenfor. Vælg File > Evaluate All. Nu skal du blot rendere frame 1 to 100 ud i en .avi og afspille den for at se hvorden denne lille test ser ud. Den skal selvfølgelig justeres til, men håber det giver dig en ide om mulighederne.
Damn, du virker til at ha styr paa det har program. Det er cool!
Der er lige en lille ting jeg har glemt! Jeg sidder med 3D VIz 3i og ikke max :-( sorry! Anyway, jeg kan godt koere scriptet, og den laver godt nok ogsaa senen med en plade og nogle lys! Men, der sker bare ikke noget med lysene! Det skyldes sikkert at det er 3D Viz jeg sidder med, tror du ik?
Ah, ok.. jeg er ikke 100% sikker på hvor kompatible MaxScripts fra Max 8 er med din 3D Viz 3i, men det at den kan oprette plade med lysene lyder lovende. Har du prøvet at rendere det ud som en animation, hvor man kan se pladen?
Ellers må jeg lige undersøge lidt på scripting med Viz ..
Så du får kun oprettet banen og lyset - men ingen animation? Ovenstående virker i 3ds max 8 (har lige testet det igen), men skal muligvis justeres for at fungere i Viz. Har du evt. en hjælpefil eller noget fra Viz hvor der står noget om scripting, som du kunne sende til mig så skal jeg se om jeg kan knække den? osborne2210@yahoo.dk
Får du forresten nogen fejlmeddelelser når du kører ovenstående script i Viz? Kan du se om der er dannet nogle keys på de enkelte lys?
Et dumt spørgsmål .. du siger at din render er helt sort.. har du sørget for at sætte kameraet så man ser på banen med lysene (sorry men jeg prøver blot at indkredse problemet :-)
Ok, det var ærgeligt det ikke kørte med scriptet (fungerer fint i max ellers) .. men mange tak for pointene.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.