Skocz do zawartości

Regulacja plane'ów algorytmem?


Rekomendowane odpowiedzi

Napisano

Witajcie.

Mym proglemem jest to:

 

Posiadam w animacji 3 plane'y. Czy jest możliwość jakaś, żeby "przesuwając" jeden plane w górę i w dół, kolejne dwa będą automatycznie podnościć opadać.

 

Głębjej:

Obiekty: plane1, plane2 oraz plane3.

Wyjaśnienia:

- plane1 - Najwyżej usadowiony.

- plane2 - Niżej od plane1, dalej usadowiony.

- plane3 - Niżej od plane2, dalej usadowiony.(najniżej)

Dodatkowe info:

Podobne jak byśmy przelewali wodę z jednaj szklanki do drugiej. Czyli, jak podniesiemy poziom plane1, "przelewa się" do plane2. Załóżmy że plane1 ma granicę do podniesienia o 1 cm, plane2 o 0.5 cm, plane3 o 0.2 cm.

Działanie:

plane1 chcemy podnieść o 2 cm (ale wlać możemy tylko o 1, ponieważ się wyleje). To co się wylewa, czyli brakujący centymetr podnosi wysokość plane2 o 1 cm, ale znowu powtarza się sytuacja. Dlaczego? Nie wiesz? No to tłumaczę: Plane2 może podnieść tylko wysokość o 0.5 cm, więc co się dzieje z pozostałym 0.5 cm? Odziałowuję na plane3 i podnosi się wtedy o 0.2 cm... 0.3 cm które zostało do podniesienia "znika".

Problem:

Czy jest możliwość napisania takiego algorytmu? Jak to będzie działać? Czy na live, czy potrzeba będzie renderować? Jak na żywo to jak to będzie działać? Chodzi mi o to czy trzeba by renderować to, czy da się na żywo to mieszać?

Rozwiązanie łopatologiczne:

Bazując na moim doświadczeniu z programowaniem (błehehehe) mogę napisać jak to widzę ;)

 

int ile,resztki=0;

poziom_plane1=0;

poziom_plane2=0;

poziom_plane3=0;

granica_plane1=2;

granica_plane2=1;

granica_plane3=0.5;

wpisz(ile);

if ile>granica_plane1

{

ile=ile-granica_plane1;

poziom_plane1=granica_plane1;

{

if ile>granica_plane2

{

ile=ilei-granica_plane2;

poziom_plane2=granica_plane2;

{

if ile>granica_plane3

{

ile=ile-granica_plane3;

poziom_plane3=granica_plane3;

}}}}};

 

No coś takiego, ale nie wiem jak przekładać to na język w blenderze (hehe to jest kombinacja wszystkich języków jakie znam ;) Sorki za ortografię.

 

Proszę o rozpatrzenie tego problemu, oraz podesłania swoich włąsnych pomysłów, prostrzych, bądź bardziej rozbudowanych.

 

Dziękuję i czekam na wiadomości...

  • Odpowiedzi 5
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

Napisano

Nie wiem czy Cię dobrze zrozumiałem i nie bardzo mam czas tak w środku dnia - ale może o coś takiego chodzi?

 

Wciskasz 'P' i potem 'W' i 'S' dodajesz i ujmujesz 0.1 z 'ile' - po 'przelaniu' plane1 napełnia się 'plane2' itd.

 

Starałem się maksymalnie łopatologicznie to napisać - w razie czego wal - pomogę ile dam radę.

 

Założyłem, że 'na live' znaczy, że chcesz to w Blender Game Engine mieć.

Tak?

Napisano (edytowane)

@dac77:

Hmm, a możesz coś więcej napisać? Myślałem trochę, ale nie mam pojęcia jak to zrobić 'normalnymi' constrainami.

 

@Coody:

Ruszaj Emptym w załączonym pliku.

W 'Options' można sobie ustawić pozycje początkowe plejnów i ich limity ruchu.

 

@all:

Proszę się nie śmiać - to mój pierwszy PyConstrain i pewnie wszystko jest dookoła głowy robione - ale chiba działa :D Komentarze i wytknięcie większych błędów mile widziane.

 

EDIT:

Aaa, bo zapomniałem:

Ruszanie jest Emptym, bo nie umiem w constrainie wyłapać ruchu dalej - dopóki plane1 jedzie w górę to mam jego pozycję, a jak się plane1 'wypełni' i zatrzyma to nie wiem skąd wziąć dane o dalszym przesunięciu mychy. Anyone?

Edytowane przez ArturM

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