• Добро пожаловать на Quest3D - Русскоязычное сообщество.
 

Можно ли менять положение Pivot point объекта в Q3D?

Автор barmadjar, 16 октября 2008, 18:18:37

« назад - далее »

barmadjar

Привет всем!
Проблема такая - при импорте сложной сцены, содержащей разные подобъекты, приходится некоторые из них делать отдельными объектами. Но при этом, когда их делаешь отдельными, Pivot Point их может находиться далеко от самого объекта (расстояние от PP до объекта = расстоянию от PP сцены до этого объекта, когда он был подобъектом, извините, если запутанно объясняю))
Возможно ли менять положение Pivot Point объекта?
PS: вариант импорта этих объектов как отдельных нежелателен

Viik

Можно, у ченела Motion есть чаилд Parent Matrix, цепляеш туда другой Motion ченел и ним задаеш положение пивота, это как бы "перенос" осей мировых координат, так обект будет всегда двигаться, поварачиваться и скейлиться относительно парента.

barmadjar

#2
Спасибо, Viik!
Попробую реализовать)

KBECT0MAH

А ещё на форуме есть поиск  ;)

Кроме варианта Viik'a, есть ещё один - https://guest3d.wohlnet.ru/forum/index.php?topic=25.0
Насчёт "парента": я заметил, что его часто используют в случаях когда надо, чтобы объект
двигался вместе с другим.
.

barmadjar

#4
И тебе, Квестоман, спасибо)
попробуем

«17 Октября 2008, 13:27:01 »
А я что-то не совсем понял. Я сделал, как у тебя, Квестоман, написано. Pivot сместил, все нормально, но когда потом переходишь из режима Pivot в режим Motion, гизма находится опять там-же, где была, а не в центре объекта  ???
то есть вся история повторяется и физически Pivot остается смещенным  :-[
Как же быть? Надо как-то использовать ту матрицу наверное, в которую записываются значения, полученные при перемещении Pivot'a?

KBECT0MAH

Покажи скрин схемы объекта, что бы был виден Position Vector.
Возможно у тебя там стоят координаты, относительно которых "пивот" изменяется при переходе обратно.

Я бы советовал в Position Vector поставить все значения "0" и потом двигать "пивот" ориентируясь
по сетке, "0" находится в месте пересечения синей и зелёной координатной полосы.
.

barmadjar

нет, в Position Vector координаты нулевые
при этом сам объект далеко от этого места
включаюсь в режим Pivot - двигаю гизму к объекту - возвращаюсь в режим Motion - гизма опять в начале коор-т
(если опять перейти в режим Pivot, гизма будет там, куда я ее передвинул). Если в режиме Motion передвинуть объект, Pivot останется стоять на том месте, куда его передвинули.
может это в версии 3.6 такой глюк

KBECT0MAH

#7
Я наверно правильно понял: ты пытаешься перетащить "стрелки" координат к объекту?
Если у тебя в Position Vector стоит "0-ль", то тебе в режиме Pivot надо объект тянуть
в "0-вую" точку координат Queust'a, не обращая внимания на "стрелки" координат ;)

Вот тебе пример:
у чайника координаты(глобальные) в "Максе" 1; 2; 3(XYZ), при импорте в Quest3d он сдвинут, хотя
в Position Vector стоит "0-ль". Это получается потому, что при экспорте за "0-вые" координаты Pivot'a
берутся глобальные координаты "Макса". Теперь что бы чайнику задать "0-вые" координаты(объекта)
в Quest3d, надо сдвинуть Pivot point на -1; -3; -2(Q3d-XYZ). Если не нужна точность это можно
сделать простым перетаскиванием объекта в "0-вую" точку координат Queust'a.

Надеюсь понятно изложил пример, сам уже запутался  ::)
Цитировать... может это в версии 3.6 такой глюк
От версии это не должно зависеть, ничего сложного в этом нет, просто надо понять принцип и всё получится :D
.

barmadjar

Эх, все равно не получа :-\
перетаскиваю объект в ноль (правда в режиме Motion, поскольку в режиме Pivot перетаскивается только гизма. возможно я тут что-то недопонял)- гизма соответственно уезжает делеко (поскольку объект находится очень далеко от гизмы), соответственно Position Vector уже становится НЕ ноль , подтаскиваю в режиме Pivot гизму к объекту, то есть в начало координат, переключаюсь в режим Motion и ...
получаю те же пяльцы вид сбоку, то бишь гизма опять где-то рядом, а точнее на том -же удалении от объекта, что и была...
возможно у меня какой-то особый случай :-\
а точнее тяжелый :)

KBECT0MAH


barmadjar

#10
«17 Октября 2008, 17:09:16 »
ага,вечером - сейчас убегаю
но там горный ландшафт большой и всякое, что в данном случае не относится, надо будет файл упростить
спасибо)

«20 Октября 2008, 11:10:06 »
вот, выкладываю исходник

barmadjar

#11
2 КВЕСТОМАН
похоже понял в чем проблема, но легче мне от этого не стало)
дело в том, что видимо я некорректным способом вынес подобъект из объекта. поясняю. у меня есть сцена, содержащая в себе ландшафт и несколько объектов типа надписей(названий населенных пунктов). причем все это является одним объектом (поскольку сцена импортировалась целиком), что означает, что все эти надписи - суть сюрфейсы этого большого объекта. чтобы сделать один такой сюрфейс отдельным объектом, я выносил этот сюрфейс из объекта, вводил в сцену канал Primitive Object, удалял все ненужное, подсоединял к чайлду Surface тот самый сюрфейс и... получал объект, у которого Pivot Point находится на таком же расстоянии, на которое этот объект (будучи еще в составе большого объекта) отстоит от Pivot Pointa родительского объекта   (надеюся не слишком запутал :) )
в этом же случае твой вариант, КВЕСТОМАН, не действует, а происходит то, что я описал в предыдущих сообщениях.
может есть какой-то альтернативный способ вывода подобъекта из состава объекта  ???
P.S. : но зато твой способ смещения Pivot Pointa четко действует в случае, когда объект получен нормальным способом :) спасибо!!!

Viik

А в чем проблема импорта как отдельного объекта? Зачем заморачиваться со всей это ерундой с пивотами?

barmadjar

дело в том, что сцену эту создают другие, размещают эти все объекты в определенных местах (а помимо надписей там еще дофига всего, что тоже желательно иметь в виде отдельных объектов). и если импортировать это все как отдельные объекты, мне придется делать ту же работу, которую делали несколько человек, создававших эту сцену в максе (просто объект очень большой и там все должно быть размещено довольно точно)
и видимо если нет простого способа перевода из подобъектов в отдельные объекты, мне все-таки придется этим заниматься
:(

KBECT0MAH

Цитата: barmadjar от 20 октября 2008, 12:20:34
...
в этом же случае твой вариант, КВЕСТОМАН, не действует, а происходит то, что я описал в предыдущих сообщениях.
...

Всё действует!!
У тебя размеры большие, поэтому что бы добиться результата надо на большие значения сдвигать Pivot.
.