Blender praktycznie => Python, skrypty, pluginy i Blender Game Engine => Wątek zaczęty przez: misztal w 29.09.2017 23:35:37
Tytuł: Modyfikator. Jest taki?
Wiadomość wysłana przez: misztal w 29.09.2017 23:35:37
Mam różnego rozmiaru modele, sześciany. Chce je ustawić jeden obok drugiego bez kolizji i wolnych przestrzeni w osi x losowo. Czy spotkał się ktoś z addonem dającym takie możliwości? Lub wie jak napisać taki addon?
Tytuł: Odp: Modyfikator. Jest taki?
Wiadomość wysłana przez: goten22 w 30.09.2017 02:47:20
Nie znam takiego addonu.
A może jakoś systemem cząsteczek? (https://i.imgur.com/geJwuVK.jpg)
Tytuł: Odp: Modyfikator. Jest taki?
Wiadomość wysłana przez: wefhy w 30.09.2017 21:28:09
Ciekawy challenge, chyba spróbuję napisać taki addon, wygląda na coś w miarę prostego, a przynajmniej sobie przypomnę API(miałem w planach rozpoczęcie serii przydatnych skryptów, więc coś takiego idealnie się wpasuje). Możesz zerknąć w tym tygodniu w ten wątek, jak znajdę czas, to wstawię kod. Przy okazji jak będziesz chciał, to podpatrzysz, jak jest zrobiony.
PS Witam wszystkich ponownie na nowej wersji forum ;) (szkoda, że stare konta się nie zapisały - ale pewnie jest już o tym jakiś wątek, więc poszukam i sobie poczytam)
Tytuł: Odp: Modyfikator. Jest taki?
Wiadomość wysłana przez: PawelB w 01.10.2017 03:00:40
Od takich rzeczy są np. Animation Nodes
Tytuł: Odp: Modyfikator. Jest taki?
Wiadomość wysłana przez: misztal w 01.10.2017 09:07:39
Dzięki za odpowiedzi. Tylko czy mogę mieć różne rozmiary obiektów. muszę to sprawdzić. Jak narazie mam plan b, użycie tego generatora on daje takie możliwości, ale samo dodanie obiektów jest czasochłonne i mam możliwość dania wymiarów 2, 4. Nie mogę dać dowolnego. http://cgchan.com
Tytuł: Odp: Modyfikator. Jest taki?
Wiadomość wysłana przez: wefhy w 01.10.2017 10:02:01
No, coś tam wyskrobałem ;) Jedyny warunek dzałania to środek obiektu tam gdzie trzeba (w kostkach będzie w dobrym miejscu, jak nie to shift+ctrl+alt+c, origin to geometry)
main() Działanie jest proste, zaznaczasz obiekty, które mają tworzyć ciąg przełączasz się w wiodok scripting, tworzysz nowy dokument, wklejasz kod i klikasz alt+p (z myszą nad tekstem) Powstanie 25 losowo zduplikowanych obiektów od (0,0,0) w górę osi x. Wszystkie zostaną zaznaczone, żeby łatwo je było przenieść, obrócić itp ;) Wrzucam też screena efektu ;) Jak chcesz zmienić ilość obiektów, w kodzie jest od tego zmienna. Jeszcze kiedyś powstanie z tego dodatek z interfejsem.
EDIT: mały update, wersja uwzględniająca przemieszczone środki obiektów:
def get_x_dim(object): #better to make function getting from center to left, from center to rigth. One of them to current, one of them to last ;) bounding_box = [x[:] for x in object.bound_box] max_x = max(bounding_box, key=lambda x: x[0]) min_x = min(bounding_box, key=lambda x: x[0]) return (max_x[0] - min_x[0]) * object.scale.x
def get_x_before(object): bounding_box = [x[:] for x in object.bound_box] min_x = min(bounding_box, key=lambda x: x[0]) return - min_x[0] * object.scale.x
def get_x_after(object): bounding_box = [x[:] for x in object.bound_box] max_x = max(bounding_box, key=lambda x: x[0]) return max_x[0] * object.scale.x
def main(): to_dupli = [] for object in context.selected_objects: to_dupli.append(object) object.select = False