Skocz do zawartości
View in the app

A better way to browse. Learn more.

Max3D.pl

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

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
  • Wyświetleń 1,1k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

nie chce mi sie zagłębiać w algorytm :P ale spróbuj constrainami copy location i limit location ewentualnie transformation ;) to bedzie dzialac w realtime

http://wiki.blender.org/index.php/Doc:Manual/Constraints

w pythonie raczej da sie napisać przesuwanie na kolejnych klatkach czyli będzie działać pod alt+a albo renderze

Edytowane przez szczuro

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

Poczytaj o constrainach. Jak się czyta manuale to wszystko jest proste.

Napisano

@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

Napisano

Dla prostych rzeczy wystarczy Transformation. Dla skomplikowanych Script.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.