Связь двух объектов при анимации по локальной оси

Автор
Сообщение
На сайте c 05.02.2008
Сообщений: 76
Украина, Черкассы

Есть к примеру 2 объекта А и В:

объект А движется во какому то произвольному пути, нужно что бы объект В по глобальной оси Z всегда был с А на одном уровне но при этом сдвигался по своей локальной оси Z. Если допустим прилинковать В к А и в Link Info в наследовании убрать оси X Y то объект В просто будет двигаться строго вниз в зависимости от положения А по глобальной оси Z, вот нужно тоже самое но по локальной. Надеюсь понятно объяснил)) Может кто подскажет в каком направлении рыть.

На сайте c 03.07.2018
Сообщений: 213
Kyiv




Дата выдачи:
06.08.2024 17:58:08


Пожизненный бан
ничего не понятно но очень интересно. а вообще наверное тут поможет фича wire parameters, но это не точно. там же можно линковать по разным критериям
На сайте c 05.02.2008
Сообщений: 76
Украина, Черкассы
Цитата VictoriaCh2303:
ничего не понятно но очень интересно. а вообще наверное тут поможет фича wire parameters, но это не точно. там же можно линковать по разным критериям

да, тоже на начал рыть в сторону wire parameters, делаю для В анимацию по локальной оси:

потом связываю координату Z объектов А и В, и получается такое:

по Z всё как надо но появляются отклонения по оси Х, хз как это побороть

На сайте c 10.03.2018
Сообщений: 46

Пример: https://youtu.be/Nfbv7rRP1Nk 

Попробуйте такой вариант:

Создаём объект Dummy с названием b2 и выравниваем его относительно объекта b.

Потом объекту b устанавливаем контроллер Position Script и пишем код:

fn planeLineIntersect planePoint planeNormal linePoint lineVector = (

local lineVector=normalize lineVector

local d1=dot (planePoint-linePoint) planeNormal

local d2=dot lineVector planeNormal

if abs(d2)<.0000000754 then ( if abs(d1)>.0000000754 then 0 else -1 )

else ( linePoint + ( (d1/d2)*lineVector ) ))

p=planeLineIntersect a.pos [0,0,1] b2.pos b2.dir

На сайте c 31.03.2008
Сообщений: 1112
Москва

Объект А управляет объектом В?

Раз вы анимируете В, то его позиция по идее не должна зависеть от второго объекта, ведь вы ему путь задали самостоятельно.

Или же объект В управляет объектом А?

На сайте c 05.02.2008
Сообщений: 76
Украина, Черкассы
Цитата -NiK-:

Объект А управляет объектом В?

Раз вы анимируете В, то его позиция по идее не должна зависеть от второго объекта, ведь вы ему путь задали самостоятельно.

Или же объект В управляет объектом А?

Объект В анимируется для движения по прямой, потом через wire parameters координата Z объекта А управляет координатой Z объекта В

Цитата igorznag2:

Пример: https://youtu.be/Nfbv7rRP1Nk  

Попробуйте такой вариант:

Создаём объект Dummy с названием b2 и выравниваем его относительно объекта b.

Потом объекту b устанавливаем контроллер Position Script и пишем код:

fn planeLineIntersect planePoint planeNormal linePoint lineVector = (

local lineVector=normalize lineVector

local d1=dot (planePoint-linePoint) planeNormal

local d2=dot lineVector planeNormal

if abs(d2)<.0000000754 then ( if abs(d1)>.0000000754 then 0 else -1 )

else ( linePoint + ( (d1/d2)*lineVector ) ))

p=planeLineIntersect a.pos [0,0,a.pos.z] b2.pos b2.dir

Супер, попробую, похоже то что надо, спасибо! Постараюсь еще разобраться как это работает)

На сайте c 10.03.2018
Сообщений: 46

Последнюю  строку нужно заменить на:

p=planeLineIntersect a.pos [0,0,1] b2.pos b2.dir

Читают эту тему: