Добрый день, у меня возникло очередная проблема а в гугл не разобрался, может вы поможете..
У меня иерархическая фигура человека со своими костями и контроллерами анимации. А в скрипте для него создал структуру.
У меня уже есть метод передвижении объекта, а как можно его повернуть или анимировать, чтобы он ходил - не представляю.
Знаю только приблизительно что надо нужные позиции каждой части умножать на матрице самого моделья: $MyCharacter.transform, но его ведь центра даже нету, там 36 разных объектов.
Но как именно это делается?
Конкретизируй свой вопрос, все же писать за тебя функции не буду, тем более не понимая что это должно быть.
По поводу матриц трансформаций, читай соответ. литературу. доступно описанно в литературе по DirectX/OpenGL
PS
По моему ты тут пытаешься велосипед изобрести, зачем хелперы в скрипте двигать ?
прицепи их к центру сами будут и двигаться и вращаться.
Совет найди похожий скрипт и уже от него пляши.
Дела в том, что этими хелперами потом должен сделать анимацию, который на центре не должен отрозится.
Согласен, вопрос не понятный вишел. Хотел узнать как сказать в скрипте например: Чоб объект "А" повернулось на 75 градусов, только не на собственный, а на Z ось объекта "Б"?
IrakliSpainСогласен, вопрос не понятный вишел. Хотел узнать как сказать в скрипте например: Чоб объект "А" повернулось на 75 градусов, только не на собственный, а на Z ось объекта "Б"?
in coordsys $Box02 about coordsys rotate $Box01 75 z_axis
Доступ к резюме доступен только по пакетному доступу HR менеджерам зарегистрированных компаний. Узнать о вариантах корпоративных пакетов можно по ссылке.
IrakliSpain
У меня иерархическая фигура человека со своими костями и контроллерами анимации. А в скрипте для него создал структуру.
У меня уже есть метод передвижении объекта, а как можно его повернуть или анимировать, чтобы он ходил - не представляю.
Знаю только приблизительно что надо нужные позиции каждой части умножать на матрице самого моделья: $MyCharacter.transform, но его ведь центра даже нету, там 36 разных объектов.
Но как именно это делается?
А это сама структура:
struct structZombie (
Control_Head = $Control_Head01,
Control_Body = $Control_Body01,
Hand_Right = $Hand_Right01,
Hand_Left = $Hand_Left01,
Leg_Right = $Leg_Right01,
Leg_Left = $Leg_Left01,
Control_HRight = $Control_HRight01,
Control_HLeft = $Control_HLeft01,
Control_LRight = $Control_LRight01,
Control_LLeft = $Control_LLeft01,
BaseModel_Mesh = $BaseModel_Mesh01,
BaseModel_Bones = (for o in selection where classof o == BoneGeometry collect o),
delta_Control_Head = $Control_Head01.pos,
delta_Control_Body = $Control_Body01.pos,
delta_Hand_Right = $Hand_Right01.pos,
delta_Hand_Left = $Hand_Left01.pos,
delta_Leg_Right = $Leg_Right01.pos,
delta_Leg_Left = $Leg_Left01.pos,
delta_Control_HRight = $Control_HRight01.pos,
delta_Control_HLeft = $Control_HLeft01.pos,
delta_Control_LRight = $Control_LRight01.pos,
delta_Control_LLeft = $Control_LLeft01.pos,
rotationCenter = [0,0,0],
function moveTo NewPos = (
Control_Head.pos = NewPos + delta_Control_Head;
Control_Body.pos = NewPos + delta_Control_Body;
Hand_Right.pos = NewPos + delta_Hand_Right
Hand_Left.pos = NewPos + delta_Hand_Left
Leg_Right.pos = NewPos + delta_Leg_Right
Leg_Left.pos = NewPos + delta_Leg_Left
Control_HRight.pos = NewPos + delta_Control_HRight
Control_HLeft.pos = NewPos + delta_Control_HLeft
Control_LRight.pos = NewPos + delta_Control_LRight
Control_LLeft.pos = NewPos + delta_Control_LLeft
rotationCenter = NewPos
)
function RotateModel Gradus = ( ............. ),
function Walk = ( ............ )
)
Savin Denis
По поводу матриц трансформаций, читай соответ. литературу. доступно описанно в литературе по DirectX/OpenGL
PS
По моему ты тут пытаешься велосипед изобрести, зачем хелперы в скрипте двигать ?
прицепи их к центру сами будут и двигаться и вращаться.
Совет найди похожий скрипт и уже от него пляши.
IrakliSpain
Согласен, вопрос не понятный вишел. Хотел узнать как сказать в скрипте например: Чоб объект "А" повернулось на 75 градусов, только не на собственный, а на Z ось объекта "Б"?
Savin Denis
IrakliSpain
большое спасибо.