Laatikon pyöritystä
Laatikon pyöritystä
Kuinka laatikon voi animoida kääntyilemään särmänsä ympäri? Yksi 90° käännös tosin onnistuu, jos lootan pivot-piste on reunassa. Yritin niin, että laitan boksin kääntymään 3D-kursorin ympäri. Ensin i -> LocRot, käännös särmän ympäri ja jälleen i -> LocRot. Muuten hyvä, mutta laatikon nurkka painuu käännöksessä lattian läpi! Ipo Curveista näkee, että laatikon keskellä oleva pivot-piste liikkuu vaakasuoraan käännöksen aikana, kun sen pitäisi hieman kohota nurkan varassa kääntyessään.
Re: Laatikon pyöritystä
Tuo onkin paha! Itsekin sitä jossain vaiheessa ihmettelin. Suoraan animoimalla se onnistuu seuraavasti:
Asia selkiytyy heti kun tajuaa että tuo liike koostuu kahdesta liikkeestä: laatikko kääntyy akselinsa ympäri ja yhtäaikaa se siirtyy laatikon koon verran. Eli animoimalla ensi siirtymä ja sitten rotaatio saa jonkinlaisen tuloksen. Puoliväliin tulee tietysti nosto eli itse asiassa siinä on 3 liikettä.
Täydellistä siitä ei kyllä tule eli se vähän "lipsuu" mutta muutamassa käännössä sen voi käsin korjata.
Joka tietää fiksumman tavan niin kertokoon
Eipäs muuten taida toimiakaan! Tulee Gimbal Lock -ilmiö
Asia selkiytyy heti kun tajuaa että tuo liike koostuu kahdesta liikkeestä: laatikko kääntyy akselinsa ympäri ja yhtäaikaa se siirtyy laatikon koon verran. Eli animoimalla ensi siirtymä ja sitten rotaatio saa jonkinlaisen tuloksen. Puoliväliin tulee tietysti nosto eli itse asiassa siinä on 3 liikettä.
Täydellistä siitä ei kyllä tule eli se vähän "lipsuu" mutta muutamassa käännössä sen voi käsin korjata.
Joka tietää fiksumman tavan niin kertokoon
Eipäs muuten taida toimiakaan! Tulee Gimbal Lock -ilmiö
Re: Laatikon pyöritystä
Tein nopeasti yhden ratkaisun joka perustuu Copy Rotation Constraintsin käyttöön. En nyt äkkiseltään parempaakaan keksi. Ohessa blend-tiedosto.
http://www.opendimension.org/blender/im ... llaa.blend
http://www.opendimension.org/blender/im ... llaa.blend
Re: Laatikon pyöritystä
Ei ole täydellinen, kuution reunat hieman muljuavat, eivätkä käänny täsmällisen tarkasti.Tein nopeasti yhden ratkaisun joka perustuu Copy Rotation Constraintsin käyttöön. En nyt äkkiseltään parempaakaan keksi.
Täydellinen ei ole myöskään minun ratkaisuni, jonka kyhäsin pikaisesti. Avaa tiedosto, älä tee mitään äläkä valitse yhtään objektia (varsinkaan kuutiota!) ja paina ainoastaan nuolinäppäintä oikealle. Animaatio etenee frameen 241 saakka. Rullaa kuutiota edes-takaisin ja yritä keksiä ratkaisu. Kun ette kuitenkaan keksi, katsokaa ipo editorista kuution käyrät. Kikkailemallahan tuo on tehty, jokin parempi ratkaisu on varmaankin olemassa, kunhan sen keksisi.
- Attachments
-
- laatikko.blend
- (110.36 KiB) Downloaded 519 times
Re: Laatikon pyöritystä
Voisiko blenderin fysiikka moottorista olla apua tässä?? itse en siihen ole juurikaan perehtyny, mutta tämä ensimmäisenä tuli mieleen.
Jos jotenkin "tönäisisi" kuutiota pyörähtämään ja nauhoittaisi liikkeen "game" -> "record game pysics to ipo" nappulalla.. jos menee vähän vikaan niin hienosäätää sitten ipo-editorista.. Voi olla aika kaukaa haettua. tulipahan sanottua.
Jos jotenkin "tönäisisi" kuutiota pyörähtämään ja nauhoittaisi liikkeen "game" -> "record game pysics to ipo" nappulalla.. jos menee vähän vikaan niin hienosäätää sitten ipo-editorista.. Voi olla aika kaukaa haettua. tulipahan sanottua.
Re: Laatikon pyöritystä
@Cosmos: Näppärä. Onnistuuko tuolla tuo ensimmäisen viestisi animaatio?
Itsekin ajattelin tuota fysiikkamahdollisuutta, se voisi toimia.Voisiko blenderin fysiikka moottorista olla apua tässä?? itse en siihen ole juurikaan perehtyny, mutta tämä ensimmäisenä tuli mieleen.
Re: Laatikon pyöritystä
Tuo kyseinen tapaus onnistuu armaturen avulla. Kts. liitetiedosto. Käytännössä siinä on vain luu (keskusta nurkassa, joka on "pivot"), jonka rotaatiota animoidaan.
Jos haluaa yleisen ratkaisun (kuutio kääntyy, kun driverin sijainti muuttuu), kannattaa perehtyä IPO drivereihin. Erityisesti nuo Python-driverit ovat hyödyllisiä. Tässä tapauksessa voit käyttää esim. emptya (kuution vanhempi), jonka x,y sijainnin mukaan haetaan kuution rotaatio (x ja y) sekä sijainti (z). Rotaation saa suoraan emptyn sijainnista (pitää kertoa n. 5.1:llä bugista johtuen. En muista ihan tarkkaa arvoa.). Z-sijainti on pohjimmiltaan vain sinin huippu (neljännes sinistä.). Testailin tätä ja ratkaisu lienee muotoa. Tuohon pitää sitten miettiä erilaisia skaalauksia ja vaihesiirtoja, jotta sen saa osumaan täysin kohdalleen.
Jos haluaa yleisen ratkaisun (kuutio kääntyy, kun driverin sijainti muuttuu), kannattaa perehtyä IPO drivereihin. Erityisesti nuo Python-driverit ovat hyödyllisiä. Tässä tapauksessa voit käyttää esim. emptya (kuution vanhempi), jonka x,y sijainnin mukaan haetaan kuution rotaatio (x ja y) sekä sijainti (z). Rotaation saa suoraan emptyn sijainnista (pitää kertoa n. 5.1:llä bugista johtuen. En muista ihan tarkkaa arvoa.). Z-sijainti on pohjimmiltaan vain sinin huippu (neljännes sinistä.). Testailin tätä ja ratkaisu lienee muotoa
Code: Select all
sin(abs(sqrt(x**2+y**2)))+cos(abs(sqrt(x**2+y**2)))
- Attachments
-
- kuutiotesti.blend
- Kuutio-esimerkki
- (304.86 KiB) Downloaded 505 times
- Sienikasvusto
- ADMIN
- Posts: 237
- Joined: 26.07.2007, 23:19
Re: Laatikon pyöritystä
Ilmeisesti foorumillemme on pesiytynyt matemaatikko kun noin vaikeita kaavoja laskettelee tuosta vain. Huom, huom: 4 ihmistä ratkoi probleemia eikä onnistunut!
Re: Laatikon pyöritystä
Ei se ratkaisuni oikein hyvä ole. Ongelma on siinä, että jos kuutio teksturoidaan esim. valokuvalla UV-mappaamalla, animaatiossa paljastuu, kun boksi hypähtää aina takaisin alkuperäiseen asentoonsa. En ole kokeillut, mutta kyllä varmaan onnistuisi myös se kuvan mukainen askellus. Pitäisi vain muokata IPO-käppyrät niin, että laatikko salamannopeasti kääntyy 90° Z-akselin suhteen. Nythän se vain hypähtää Y-akselin suunnassa 90° takaperin käännöksen jälkeen.tuxer wrote:@Cosmos: Näppärä. Onnistuuko tuolla tuo ensimmäisen viestisi animaatio?
Kyllähän se, mutta saman asian ajaa, jos kuution pivot-point olisi siinä nurkassa luun tilalla. Emptyn käyttö ei mielestäni myöskään ratkaise pulmaa. Silloin ongelma vain siirtyy, ei kuutio pyöri sen paremmin, vaikka sitä avustetaan armaturella tai emptyllä. Itsekin yritin yhdessä vaiheessa emptyillä kikkailla, mutta en onnistunut. Kerro toki, jos olen väärässä. Tai onnistuisiko jotenkin näin:BeBraw wrote:Tuo kyseinen tapaus onnistuu armaturen avulla. Kts. liitetiedosto.
Jos tuosta nyt laatikko lähtisi kääntymään punaisen viivan eli X-akselin suuntaan, se kierähtäisi Empty 4:n varassa. Käännöksen jälkeen kyseinen empty pitäisi jotenkin vapauttaa irti ipo-käyristä, jolloin kääntyminen voisi jatkua empty 2:n varassa. En vain tiedä, voiko niitä tilapäisesti vapauttaa ipo-käppyröistä. Ja puhumattakaan siitä, milloinka kuution pitäisi rullata kaikkiin suuntiin, eli joka kulmassa pitäisi olla empty.
Se laittamani ensimmäinen kuva on ehkä hieman hämäävä. Alunperin hain ratkaisua, jossa kuutiota voisi rullata mielivaltaisesti mihin tahansa suuntaan kuinka paljon tahansa. Ei siis niin, että vain ne kuvassa näkyvät pari käännöstä.
Sitten se fysiikkamoottorin käyttö. Näinköhän sekään saa kuution kääntymään absoluuttisen tarkasti särmänsä varassa? Eikö fysiikkamallinnuksessa ole nimenomaan toivottavaa, että siinä esiintyy pientä hajontaa tai satunnaisuutta.
Re: Laatikon pyöritystä
Ohessa esimerkki Python driver -ratkaisusta. Toistaiseksi se toimii oikein ainoastaan täysillä käännöillä (360 astetta) x- ja y-akseleilla mutta tuon rajoituksen voinee kiertää sopivalla tarkastelulla (esim. jaollisuus tms.).
Lisätietoa drivereista löytyy seuraavista osoitteista:
http://wiki.blender.org/index.php/BlenderDev/PyDrivers
http://www.blender.org/development/rele ... o-drivers/
http://www.blender.org/development/rele ... scripting/
http://wiki.blender.org/index.php/Relea ... ythonTools
Rotaation korjauskertoimen tulisi olla n. 5.74 edellisen 5.1:n sijasta. Tuohon löytyy tarkka kaava lähdekoodista. Pitäisi tarkistaa.
Lisätietoa drivereista löytyy seuraavista osoitteista:
http://wiki.blender.org/index.php/BlenderDev/PyDrivers
http://www.blender.org/development/rele ... o-drivers/
http://www.blender.org/development/rele ... scripting/
http://wiki.blender.org/index.php/Relea ... ythonTools
Rotaation korjauskertoimen tulisi olla n. 5.74 edellisen 5.1:n sijasta. Tuohon löytyy tarkka kaava lähdekoodista. Pitäisi tarkistaa.
- Attachments
-
- rollingcube5.blend
- Python-driver demo
- (286.88 KiB) Downloaded 525 times
Re: Laatikon pyöritystä
Nätti ratkaisu! Toimii erinomaisesti.Ohessa esimerkki Python driver -ratkaisusta. Toistaiseksi se toimii oikein ainoastaan täysillä käännöillä (360 astetta) x- ja y-akseleilla mutta tuon rajoituksen voinee kiertää sopivalla tarkastelulla (esim. jaollisuus tms.).
PS. Tervetuloa foorumille. Ilmeisesti olet sama BeBraw kuin blenderartist-foorumilla, joten kovan luokan koodari kyseessä
Re: Laatikon pyöritystä
Miten tuon Python driverin oikein pitäisi toimia? En minä saanut laatikkoa pyörimään.
Kehittelin vielä yhden tavan, jolla laatikko kyllä pyörii, mutta ainoastaan yhteen suuntaan. Tiedoston avattuanne painakaa vain nuolinäppäintä oikealle...
Kehittelin vielä yhden tavan, jolla laatikko kyllä pyörii, mutta ainoastaan yhteen suuntaan. Tiedoston avattuanne painakaa vain nuolinäppäintä oikealle...
- Attachments
-
- rullaatirullaa.blend
- (125.37 KiB) Downloaded 494 times
Re: Laatikon pyöritystä
Siirrät vain laatikkoa x tai y akselilla niin laatikko kääntyy reaaliaikaisesti.Miten tuon Python driverin oikein pitäisi toimia? En minä saanut laatikkoa pyörimään.
EDIT: Sorry, siis sitä emptyä pitää siirtää
Onnistuu näemmä noinkin. Alkoihan näitä tapoja löytyäKehittelin vielä yhden tavan, jolla laatikko kyllä pyörii, mutta ainoastaan yhteen suuntaan.
Re: Laatikon pyöritystä
Ikivanha keskustelu mutta herrat on käsittääkseni vielä hengissä.
Pakko kysyä mikä alkuperäisen viestin kirjoittajalla oli ongelmana? Vastauksista ja niiden monimutkaisuudesta päätellen ymmärsin ongelman väärin. Haluttiinko kuutiota pyörittää keskipisteensä ympäri 90 astetta ja samaan aikaan siirtää särmänsä verran kahden muun akselin suuntaan?
Pakko kysyä mikä alkuperäisen viestin kirjoittajalla oli ongelmana? Vastauksista ja niiden monimutkaisuudesta päätellen ymmärsin ongelman väärin. Haluttiinko kuutiota pyörittää keskipisteensä ympäri 90 astetta ja samaan aikaan siirtää särmänsä verran kahden muun akselin suuntaan?
Re: Laatikon pyöritystä
Ei keskipisteen vaan särmän ympäri.Haluttiinko kuutiota pyörittää keskipisteensä ympäri 90 astetta ja samaan aikaan siirtää särmänsä verran kahden muun akselin suuntaan?