Jak mam “ obiekty nadrzędne ”?

Szukam sposobu na połączenie dwóch oddzielnych obiektów, tak aby podczas przesuwania pierwszego obiektu przesuwał się również drugi. Termin rodzic jest używany, ale jak mam nadać obiekt?

Odpowiedź

Aby uzyskać szybką i prostą odpowiedź, wybierz obiekt, który zostanie najpierw połączony (obiekt potomny), a następnie wybierz obiekt, który prześle dane transformacji do obiektu podrzędnego (obiekt nadrzędny). Kolejność wyboru jest ważna, obiekt nadrzędny musi być wybrany jako ostatni, aby był to aktywny obiekt . Teraz naciśnij Ctrl P > Obiekt .


Istnieje wiele sposobów na rodzicielskie obiekty w blenderze. Obiekty macierzyste można umieszczać w pięciu różnych oknach: Widok 3D, Edytor właściwości, Szkicownik, Edytor tekstu i Konsola; ponadto istnieje zniechęcająca lista różnych typów nadrzędnych.
lista wszystkich p arent options
Wydaje się, że rodzicielstwo to złożona próba, więc spróbuję to uprościć.
Z tej obszernej listy istnieją tylko trzy rodzaje rodzicielstwa. Są to Object , Armature i Vertex .

Różnice w wielu typach rodzicielstwa

  • Obiekt to zdecydowanie najpowszechniejszy typ rodzica. Jest używany w ośmiu z trzynastu typów rodzicielstwa.
    Za każdym razem, gdy wybierze się dwa lub więcej obiektów, dostępny jest typ rodzicielstwa obiektu. Każde przesunięcie (obrót skali i położenie) obiektu nadrzędnego będzie miało wpływ na dziecko.

  • Deformacja armatury To prawdopodobnie najbardziej skomplikowana grupa rodzicielstwa rodzaje. Deformacja armatury jest dostępna tylko wtedy, gdy aktywnym obiektem jest armatura. Ustawia rodzica Obiekt , z wybranym obiektem jako dzieckiem, a aktywnym obiektem (szkieletem) jako rodzicem. Dodaje modyfikator Armature do obiektu podrzędnego, przy czym szkielet jest już ustawiony jako obiekt docelowy modyfikatora. W tym momencie nie zrobi nic więcej niż zwykły obiekt nadrzędny. Trzy opcje podrzędne Puste grupy , automatyczne wagi i obwiednie są używane w procesie montażu.

  • Kość Jest dostępny tylko wtedy, gdy aktywnym obiektem jest Armatura. Jest dokładnie taki sam jak obiekt rodzic, ale tutaj dziecko jest przekształcane z jednej kości.
    Na poniższym obrazku umieściłem pierścień wokół palcem, a następnie Shift zaznacz szkielet. Mając teraz szkielet jako aktywny obiekt, możesz przejść do trybu Pose i wybrać odpowiednią kość. Na koniec nadaj obiekt do bone, z Ctrl P > Bone . przykład użycia typu Kość rodzicielska

  • Względny kości Jest taki sam jak kość z tą różnicą, że wszelkie zmiany wykonane w trybie edycji do kości macierzystej nie wpłynie na obiekt podrzędny.

  • Deformacja krzywej Jest dostępna tylko wtedy, gdy aktywny obiekt jest obiektem krzywym ( Krzywa Beziera lub Nurbsa). Ustawia rodzica Obiekt , z wybranym obiektem jako dzieckiem, a aktywnym obiektem (krzywą) jako rodzicem. Dodaje modyfikator Curve do obiektu podrzędnego z krzywą już ustawioną jako obiekt docelowy modyfikatora.

  • Podążaj ścieżką ponownie jest dostępne tylko wtedy, gdy aktywny obiekt jest obiektem krzywym. Ustawia obiekt nadrzędny Obiekt , tak samo jak Deforma krzywej. Animuje również Czas oceny dla Animacja ścieżki na obiekcie krzywej.
    okno właściwości przedstawiające kartę krzywej z podświetlonym czasem oceny

  • Ograniczenie ścieżki to ostatnia opcja dostępna tylko dla obiektów składających się z krzywych. Nie ustawia żadnych elementów nadrzędnych, zamiast tego dodaje ograniczenie Podążaj ścieżką do wybranego obiektu z cel ograniczenia jako obiekt aktywny (krzywa).

  • Deformacja kratowa Jest to specjalna opcja dostępna tylko wtedy, gdy aktywny obiekt jest krata. Ustawia kratę jako rodzica, a wybrany obiekt jako dziecko, a także dodaje modyfikator Lattice do wybranego obiektu.

  • Wierzchołek To jest jeden z trzech głównych typów rodzicielstwa. Różni się od obiektu macierzystego tym, że dziecku podaje się tylko informacje o lokalizacji. Jest to lokalizacja wierzchołka, który jest rodzicem. Obiekt nadrzędny nie musi się poruszać, ale modyfikator może zmienić położenie wierzchołka, obiekt podrzędny się przesunie.

  • Wierzchołek (trójkąt) Na pierwszy rzut oka może wyglądać tak samo jak obiekt macierzysty obiektu, ale raczej jest dokładnie tym samym, co rodzic wierzchołka, z wyjątkiem tego, że teraz są 3 wierzchołki. Z trzech wierzchołków dziecko otrzymuje teraz lokalizację, skalę i obrót tak samo, jak w obiekcie macierzystym; z korzyścią śledzenia wierzchołków.

Widok 3D

Najczęstszym sposobem na obiekty nadrzędne jest widok 3D z zaznaczonymi dwoma lub więcej obiektami, naciśnij Crtl P > Obiekt . Zauważ, że rodzic to aktywny obiekt , a dziecko to wybrany obiekt. Działa to tak samo, jak Korzystanie z menu w nagłówku widoku 3D Obiekt > Nadrzędny > Obiekt . Statki relacji dziecko-rodzic są reprezentowane w widoku 3D za pomocą małej przerywanej linii łączącej początki obiektów. Ustawianie rodzica za pomocą skrótu w widoku 3D
Tutaj kostka i małpa są już rodzicami Object. Sześcian to rodzic (aktywny obiekt), a małpa to dziecko.

Szkicownik

Szkicownik jest świetny, ponieważ nie ma pomyłki z aktywnym obiektem lub w którą stronę rodzic jedzie. Po prostu przeciągnij ikonę żądanego obiektu podrzędnego i upuść ją na wybrany obiekt nadrzędny. Jeśli istnieje więcej opcji rodzicielstwa, blender zapyta Cię, której chcesz użyć. animowany gif przedstawiający proces rodzicielski w szkicowniku

Okno Właściwości

Możesz po prostu wybrać obiekt, który będzie rodzicem. W przypadku tej metody aktywnym obiektem jest zawsze podrzędny .
obiekt edytora właściwości zaznaczone ustawienie nadrzędne karty
Jednak obiekty rodzicielskie używające tej metody dają bardzo różne wyniki niż widok 3D lub szkicownik.
Na poniższym obrazku zarówno sześcian, jak i stożek znajdują się dokładnie w tym samym miejscu i nie mają rotacji ani skali. Lewa strona przedstawia, jak oboje wyglądali przed jakimkolwiek rodzicielstwem. Ustawiłem kostkę jako rodzic dla stożka zarówno w środku, jak i po prawej stronie. Środek jest nadrzędny w widoku 3D, a po prawej stronie użyłem pola w oknie właściwości. różnica między różnymi opcjami rodzicielstwa
Różnica wynika z różnych poleceń Pythona (więcej na ten temat w sekcji Python). Co ważne, gdy używamy pola w oknie właściwości, odległość obiektu podrzędnego od początku świata (0,0,0) staje się przesunięciem od rodzica. Jest to pokazane na powyższym obrazku przez sześcian o wielkości 4 jednostek wzdłuż osi X stożka.

Python

Ostatnie dwa miejsca, w których można tworzyć obiekty nadrzędne, to Edytor tekstu i Konsola . Oba dają dostęp do rodzicielstwa bezpośrednio przez Pythona. Dwa polecenia rodzicielskie to

bpy.ops.object.parent_set() i bpy.data.objects["child"].parent = bpy.data.objects["parent"]

Ten skrypt będzie nadrzędny tak samo jak widok 3D.

import bpy bpy.data.objects["child"].select = True bpy.data.objects["parent"].select = True bpy.context.scene.objects.active = bpy.data.objects["parent"] bpy.ops.object.parent_set() 

Jednak ten wiersz kodu

bpy.data.objects["child"].parent = bpy.data.objects["parent"] 

będzie rodzicielem tak samo jak przy użyciu okna właściwości. Powodem jest to, że okno właściwości działa bpy.context.object.parent = bpy.data.objects["parent"], ale wszędzie indziej blender używa parent_set().

Możesz jednak uniknąć używania bpy.ops.object.parent_set() i pozostawić obiekt podrzędny na swoim miejscu po rodzicu sol. Aby to zrobić, musisz jawnie ustawić element potomny „s matrix_parent_inverse na odwrotną macierz świata rodzica. Zobacz poniższy kod:

parent = bpy.data.objects.get("parent") child = bpy.data.objects.get("child") if child: child.parent = parent if parent: child.matrix_parent_inverse = parent.matrix_world.inverted() 

Inne opcje

Istnieją dwa inne sposoby uzyskania relacji tego samego typu co obiekt nadrzędny, są to Child Of Constraint i Parent Actuator .

Child Of Constraint

Child Of Constraint działa tak samo jak obiekt macierzysty, z dodatkową korzyścią wynikającą z bycia ograniczeniem: współdziałanie, wielu rodziców na tym samym obiekcie, wpływające tylko na niektóre transformacje i wpływające tylko na określone osie.
Jak zaznaczono w ręcznym po określeniu obiektu docelowego prawdopodobnie będziesz chciał nacisnąć przycisk " Ustaw odwrotność " w ograniczenie (wraca do tego samego, co różnica między rodzicem w oknie właściwości a widokiem 3D) . Teraz masz obiekt, który będzie zachowywał się tak samo jak obiekt podrzędny w obiekcie nadrzędnym.
Jedną z dziwactw związanych z ograniczeniem jest to, że jeśli wybierzesz zarówno obiekt podrzędny, jak i obiekt nadrzędny i przesuniesz je, ruch dziecka będzie być złożone, co oznacza, że będzie się poruszać dwa razy szybciej niż rodzic. Po zakończeniu ruchu po prostu naciśnij ponownie przycisk " Ustaw odwrotność " , aby przenieść dziecko z powrotem do poprawna lokalizacja.
animowany gif przedstawiający Dziecko Ograniczenia

Moją ulubioną cechą dziecka ograniczenia jest to, że możesz wpływać tylko na niektóre transformacje. Jest to pokazane na powyższym gifie.

Parent Actuator

Parent Actuator, będąc cegłą logiczną, działa tylko w silniku gry.Robi dokładnie to samo, co zwykły obiekt macierzysty. Podczas gdy zwykłe rodzicielstwo działa w silniku gry (są pewne dziwactwa ). Siłownik nadrzędny daje tę korzyść, że rodzic może być dynamicznie sterowany w grze za pomocą klocków logicznych lub języka Python.

Komentarze

  • Dobra, wyczerpująca lista -direct people to.
  • Bardzo fajnie! W przypadku widoku 3D, jaka jest różnica między " Object " a " Object ( Keep transform) "?
  • Anson Savage, w Keep Transform obiekt zachowa dokładnie to samo położenie, w którym umieściłeś obiekt w widoku 3D.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *