W4Tweaks
·  Регистрация Вход
[ Новые сообщения · Участники · Подписки · Поиск · RSS ]
Страница 4 из 11«1234561011»
Форум » Worms 4 Mayhem » 4.3. Ваши идеи по моделированию » W4AnimEditor or W3DAnimEditor... Создадим? (Собираю всю информацию по анимации, для создания программы..)
W4AnimEditor or W3DAnimEditor... Создадим?
AlexBond
Дата: СР, 02.02.2011, 22:55:20 | Сообщение # 61
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1035
Репутация: 106
Инвентарь: 8
Статус: Offline
Все кто хочет помочь, и знает программинг и английский, помогите разобраться.

Вот я нарыл статейку как устроена анимация в Maya - то бишь в Червях.

http://download.autodesk.com/us....ve.html

The Maya developer's kit ships with example code (animDemo) which demonstrates how to evaluate a Maya animation curve independent from Maya. The animation parameter curves in Maya are defined by a restricted set of cubic two-dimensional Bezier curves. It is defined by four points. P1 = (x1, y1) is the (key,value) pair for the first key. P2 = (x2, y2) is a point which defines the outgoing tangent direction at P1. P4 = (x4, y4) defines the second key and P3 = (x3, y3) is a point which defines the incoming tangent direction at P4. There are some basic restrictions for the x coordinates of these points: x1 <= x2 <= x3 <= x4.
The 2-dimensional Bezier curve is defined as

Code
  F(u) = [ u^3 u^2 u 1 ] * B * | P1 |   ,  0 <= u <= 1
                      | P2 |
                      | P3 |
                      | P4 |

          = [ B0(u) B1(u) B2(u) B3(u) ] * | x1 y1 |
                      | x2 y2 |
                      | x3 y3 |
                      | x4 y4 |

      where B is the Bezier Basis matrix  | -1  3  -3  1 |
                      |  3 -6   3  0 |
                      | -3  3   0  0 |
                      |  1  0   0  0 |

...

When evaluating an animation curve, a two stage process is used:

1. the evaluation time is examined to determine if it falls within the range of the animation curve, and if it does not evaluation is based upon the infinity settings for the animation curve.
2. if the evaluation time falls within the range of the animation curve, the bezier parameters of the curve are computed and used as described below.

Animation curves may have either weighted or non-weighted tangents. With non-weighted tangents, tangents are implemented as vectors and P2 and P3 are internally adjusted to account for the time difference between P1 and P4.

When evaluating a time within a segment, the following algortithms are used:

Code
For weighted tangents:
         where x is the start of the segment
         given the bezier x parameters a', b', c', d', find the parameter t
         which satisfies the formula:
                 (time - x) = (t^3 * a') + (t^2 + b') + (t * c') + d'
         with t (and the bezier y parameters a, b, c, d) compute the value as:
                 v = (t^3 * a) + (t^2 + b) + (t * c) + d

For non-weighted tangents:
         where x is the start of the segment
         compute the parameter t as time - x
         with t (and the bezier y parameters a, b, c, d) compute the value as:
                 v = (t^3 * a) + (t^2 + b) + (t * c) + d


 
Герыч
Дата: СР, 02.02.2011, 23:14:42 | Сообщение # 62
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Инвентарь: 5
Статус: Offline
К пакету разработчика Maya прилагается код-пример (animDemo), показывающий, как воспроизводить анимацию Maya не в Maya. Кривые параметров движения в Maya определяются ограниченным множеством квадратичных кривых безье (или множеством ограниченных квадратичных кривых безье). Они определяются по четырём точкам. P1 = (x1, y1) - пара (ключ,значение) для первого ключа (я так полагаю ключевого кадра). P2 = (x2, y2) - точка, определяющая тангенс угла касательной, выходящей из P1. P4 = (x4, y4) - определяет второй ключ, а P3 = (x3, y3) - точка, определяющая тангенс угла касательной, входящей в P4. Для координат x точек выполняется ограничение: x1 <= x2 <= x3 <= x4.
Двухразмерная кривая Безье Определяется как:

Code
  F(u) = [ u^3 u^2 u 1 ] * B * | P1 |   ,  0 <= u <= 1  
                       | P2 |  
                       | P3 |  
                       | P4 |  

           = [ B0(u) B1(u) B2(u) B3(u) ] * | x1 y1 |  
                       | x2 y2 |  
                       | x3 y3 |  
                       | x4 y4 |  

       где B - матрица Безье  | -1  3  -3  1 |  
                       |  3 -6   3  0 |  
                       | -3  3   0  0 |  
                       |  1  0   0  0 |

...

При выполнии анимации используется двухэтапный процесс:
....

Устал smile


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
AlexBond
Дата: ЧТ, 03.02.2011, 00:08:24 | Сообщение # 63
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1035
Репутация: 106
Инвентарь: 8
Статус: Offline
И еще одна ссылка по тому же разделу. но о формате записи анимации...
http://download.autodesk.com/us....mat.htm


 
AlexBond
Дата: ЧТ, 03.02.2011, 02:46:23 | Сообщение # 64
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1035
Репутация: 106
Инвентарь: 8
Статус: Offline
Пример данных из анимации WXP_Mesh_024.xom:

"WXM_DefSource" (4.50s)
joint1|joint2.pos.x.keys[10] (2)
0. [0.32; 0.95; 0.32; 0.95; 0.00; 3.13]
1. [0.48; -0.88; 0.48; -0.88; 0.42; 3.68]
2. [0.90; -0.43; 0.90; -0.43; 0.88; 1.53]
3. [0.94; 0.33; 0.94; 0.33; 1.42; 3.21]
4. [0.67; 0.74; 0.67; 0.74; 1.96; 1.91]
5. [0.90; 0.44; 0.90; 0.44; 2.38; 4.26]
6. [0.98; 0.20; 0.98; 0.20; 2.88; 2.36]
7. [0.98; -0.20; 0.98; -0.20; 3.42; 4.47]
8. [0.63; -0.78; 0.63; -0.78; 4.04; 2.13]
9. [0.31; 0.95; 0.31; 0.95; 4.50; 3.13]
joint1|joint2.pos.y.keys[9] (2)
0. [0.58; -0.81; 0.58; -0.81; 0.00; -0.41]
1. [0.73; -0.68; 0.73; -0.68; 0.42; 0.79]
2. [0.58; -0.82; 0.58; -0.82; 0.83; -1.18]
3. [0.98; -0.21; 0.98; -0.21; 1.54; -0.80]
4. [0.63; 0.77; 0.63; 0.77; 2.08; -1.44]
5. [0.66; 0.75; 0.66; 0.75; 2.88; 0.82]
6. [0.93; 0.36; 0.93; 0.36; 3.29; -0.07]
7. [0.96; -0.27; 0.96; -0.27; 3.92; 1.23]
8. [0.84; -0.55; 0.84; -0.55; 4.50; -0.41]
pPlaneShape1_lambert2.texpos.y.keys[73] (0)
0. [0.24; 0.97; 0.00; 0.00; 0.00; 0.00]
1. [0.24; 0.97; 0.00; 0.00; 0.06; 0.25]
2. [0.24; 0.97; 0.00; 0.00; 0.13; 0.50]
3. [0.24; -0.97; 0.00; 0.00; 0.19; 0.75]
4. [0.24; -0.97; 0.00; 0.00; 0.25; 0.00]
5. [0.24; 0.97; 0.00; 0.00; 0.31; 0.25]
6. [0.24; 0.97; 0.00; 0.00; 0.38; 0.50]
7. [0.24; -0.97; 0.00; 0.00; 0.44; 0.75]
8. [0.24; -0.97; 0.00; 0.00; 0.50; 0.00]

pPlaneShape1_lambert2.texpos.y.keys - должна быть импульсной... Какая же формула?

Прикрепления: 0344153.png(45Kb)


 
Герыч
Дата: ЧТ, 03.02.2011, 07:19:57 | Сообщение # 65
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Инвентарь: 5
Статус: Offline
На всякий случай, с вики, квадратичная кривая безье задаётся так:
Code
x(t)=(1-t)^3*x1 + 3*t*(1-t)^2*x2 + 3*t^2*(1-t)*x3 + t^3*x4
y(t)=(1-t)^3*y1 + 3*t*(1-t)^2*y2 + 3*t^2*(1-t)*y3 + t^3*y4

где t пробегает значения от 0 до 1


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Дата: ЧТ, 03.02.2011, 07:22:03 | Сообщение # 66
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Инвентарь: 5
Статус: Offline
И твои письмена непонятны:
Code
"WXM_DefSource" (4.50s)  
joint1|joint2.pos.x.keys[10] (2)  
0. [0.32; 0.95; 0.32; 0.95; 0.00; 3.13]  
1. [0.48; -0.88; 0.48; -0.88; 0.42; 3.68]  
2. [0.90; -0.43; 0.90; -0.43; 0.88; 1.53]  
3. [0.94; 0.33; 0.94; 0.33; 1.42; 3.21]  
4. [0.67; 0.74; 0.67; 0.74; 1.96; 1.91]  
5. [0.90; 0.44; 0.90; 0.44; 2.38; 4.26]  
6. [0.98; 0.20; 0.98; 0.20; 2.88; 2.36]  
7. [0.98; -0.20; 0.98; -0.20; 3.42; 4.47]  
8. [0.63; -0.78; 0.63; -0.78; 4.04; 2.13]  
9. [0.31; 0.95; 0.31; 0.95; 4.50; 3.13]  
joint1|joint2.pos.y.keys[9] (2)  
0. [0.58; -0.81; 0.58; -0.81; 0.00; -0.41]  
1. [0.73; -0.68; 0.73; -0.68; 0.42; 0.79]  
2. [0.58; -0.82; 0.58; -0.82; 0.83; -1.18]  
3. [0.98; -0.21; 0.98; -0.21; 1.54; -0.80]  
4. [0.63; 0.77; 0.63; 0.77; 2.08; -1.44]  
5. [0.66; 0.75; 0.66; 0.75; 2.88; 0.82]  
6. [0.93; 0.36; 0.93; 0.36; 3.29; -0.07]  
7. [0.96; -0.27; 0.96; -0.27; 3.92; 1.23]  
8. [0.84; -0.55; 0.84; -0.55; 4.50; -0.41]  
pPlaneShape1_lambert2.texpos.y.keys[73] (0)  
0. [0.24; 0.97; 0.00; 0.00; 0.00; 0.00]  
1. [0.24; 0.97; 0.00; 0.00; 0.06; 0.25]  
2. [0.24; 0.97; 0.00; 0.00; 0.13; 0.50]  
3. [0.24; -0.97; 0.00; 0.00; 0.19; 0.75]  
4. [0.24; -0.97; 0.00; 0.00; 0.25; 0.00]  
5. [0.24; 0.97; 0.00; 0.00; 0.31; 0.25]  
6. [0.24; 0.97; 0.00; 0.00; 0.38; 0.50]  
7. [0.24; -0.97; 0.00; 0.00; 0.44; 0.75]  
8. [0.24; -0.97; 0.00; 0.00; 0.50; 0.00]

расшифруй хотя бы чуть-чуть


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
AlexBond
Дата: ЧТ, 03.02.2011, 13:27:04 | Сообщение # 67
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1035
Репутация: 106
Инвентарь: 8
Статус: Offline
хорошо расшифрую:

2. [0.90; -0.43; 0.90; -0.43; 0.88; 1.53]

ключ третий N (расчет с нуля), анимации объекта joint1|joint2 для значения pos.x

tanIn (0.90;-0.43)
tainout(0.90;-0.43)
time (0.88)
value (1.53)

Итого структура keys имеет вид:

N. [tanin.X;tanin.Y;tanout.X;tanout.Y;time;value]

Я так понимаю, если брать два ключа:

0. [0.32; 0.95; 0.32; 0.95; 0.00; 3.13]
1. [0.48; -0.88; 0.48; -0.88; 0.42; 3.68]

То по выше принятому объяснению http://w4tweaks.ru/forum/105-1304-30907-16-1296677682 , для этого участка:
P1 = (0.00; 3.13)
P2 = (0.32; 0.95)
P3 = (0.48; -0.88)
P4 = (0.42; 3.68)

Проблема в том что P2 и P3 находятся в пределах (-1..1)
А P1 и P2 вообще в своей системе координат (time;value);

Как нарисовать кривую P1P4 ?


 
Sergey
Дата: ЧТ, 03.02.2011, 14:35:49 | Сообщение # 68
Sergey
Его узнают в чате
Группа: Проверенные
Сообщений: 814
Репутация: 37
Инвентарь: 11
Статус: Offline
Выглядит прикольно!

Администрация имеет право кастрировать пользователей сайта!
 
Герыч
Дата: ЧТ, 03.02.2011, 23:52:46 | Сообщение # 69
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Инвентарь: 5
Статус: Offline
скорее всего это так:

дано два ключа:

Code
N:        [a; b; c; d; e; f]
N + 1:    [g; h; i; j; k; l]

точки получатся такие:

Code
P1: (e; f)
P2: (e + c; f + d)
P2: (k - g; l - j)
P4: (k; l)


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Некто
Дата: ЧТ, 03.02.2011, 23:54:56 | Сообщение # 70
Некто
Знаменитость
Группа: Проверенные
Сообщений: 1897
Репутация: 21
Статус: Offline
AlexBond, в каком формати импорт\эекспорт анимации и можно ли редактировать анимацию в программе?
 
AlexBond
Дата: ПТ, 04.02.2011, 00:10:31 | Сообщение # 71
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1035
Репутация: 106
Инвентарь: 8
Статус: Offline
Ничего не получается, попытался ввести в 3DSMAX координаты этой кривой, но импульсы нужной формы не получаются...

Скорее всего у них там используются иные методы получения кривой анимации...

Прикрепления: 4101812.png(30Kb)


 
Герыч
Дата: ПТ, 04.02.2011, 00:11:33 | Сообщение # 72
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Инвентарь: 5
Статус: Offline
не понимаю, в чём проблема?

________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
AlexBond
Дата: ПТ, 04.02.2011, 00:14:50 | Сообщение # 73
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1035
Репутация: 106
Инвентарь: 8
Статус: Offline
Quote (Некто)
AlexBond, в каком формати импорт\эекспорт анимации и можно ли редактировать анимацию в программе?

Формат анимации Xom Animate Clip *.xac
Данный формат в бета тестировании, т.к. работает лишь для обычных объектов, для Xbone глючит, поэтому не используется.

Редактировать анимацию пока нельзя, т.к. чтобы ее редактировать нужна среда, кривая анимации, точки, и т.п. Их мы и пытаемся получить....


 
AlexBond
Дата: ПТ, 04.02.2011, 00:18:54 | Сообщение # 74
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1035
Репутация: 106
Инвентарь: 8
Статус: Offline
Quote (Герыч)
не понимаю, в чём проблема?

Смотри. Анимация для Молнии, должна иметь прямоугольную кривую, как на средней картинке,

но ее получить нельзя используя тангенсы, т.к. прямой угол в Безье получается лишь с приближением при больших Весовых направляющих.

Подставляя значения из данных я вообще не получаю ступенчатость.

Quote
P1: (e; f)
P2: (e + c; f + d)
P2: (k - g; l - j)
P4: (k; l)

Не может работать, т.к. нельзя слаживать Секунды и Радианы!!!


 
Герыч
Дата: ПТ, 04.02.2011, 00:28:59 | Сообщение # 75
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Инвентарь: 5
Статус: Offline
во-первых я ошибся...
Code
P1: (e; f)  
P2: (e + c; f + d)  
P2: (k - g; l - h)  
P4: (k; l)

и попробуй поменяй на это:
Code
P1: (e; f)  
P2: (e + d; f + c)  
P2: (k - h; l - g)  
P4: (k; l)


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Дата: ПТ, 04.02.2011, 00:34:04 | Сообщение # 76
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Инвентарь: 5
Статус: Offline
стоп, а что такое это
joint1|joint2.pos.x.keys[10] (2)
joint1|joint2.pos.y.keys[9] (2)
Почему x и y? По идее, если задаются две координаты, то надо их по времени синхронизировать.


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
AlexBond
Дата: ПТ, 04.02.2011, 01:49:35 | Сообщение # 77
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1035
Репутация: 106
Инвентарь: 8
Статус: Offline
я вообще ничего не понимаю...

я раньше думал что первый ключ это вес, т.к. он положительный всегда, и в пределах от 0 до 1,0
Но тут облом В анимации DrawRainDance... короче мне не понятно, как это работает... angry

2. [0.33; 0.94; 0.33; 0.94; 0.29; -0.71]
3. [1.00; 0.00; 1.00; 0.00; 0.38; 0.00]
4. [0.09; -1.00; 1.00; 0.00; 0.71; -0.94]
5. [1.00; 0.00; 1.00; 0.00; 0.83; 0.00]
6. [1.00; 0.00; 1.00; 0.00; 0.92; 0.00]
7. [0.17; 0.00; 2.08; 0.00; 1.08; 0.00]
main|head|eyetop_right.pos.y.keys[8] (0)
0. [1.00; 0.00; 1.00; 0.00; 0.00; 0.00]
1. [0.38; -0.93; 0.38; -0.93; 0.13; -0.71]
2. [0.33; 0.94; 0.33; 0.94; 0.29; -0.71]
3. [1.00; 0.00; 1.00; 0.00; 0.38; 0.00]
4. [0.09; -1.00; 1.00; 0.00; 0.71; -0.94]
5. [1.00; 0.00; 1.00; 0.00; 0.83; 0.00]
6. [1.00; 0.00; 1.00; 0.00; 0.92; 0.00]
7. [0.17; 0.00; 2.08; 0.00; 1.08; 0.00]
main|shoulder_left|wrist_left.pos.x.keys[14] (0)
0. [1.00; 0.00; 1.00; 0.00; 0.00; 0.00]
1. [1.00; 0.00; 1.00; 0.00; 0.17; -7.31]
2. [1.00; 0.00; 1.00; 0.00; 0.25; -7.31]
3. [0.04; -0.70; 0.06; -1.00; 0.29; -7.71]
4. [0.04; -0.81; 0.04; -0.81; 0.33; -8.52]
5. [0.12; -0.99; 0.12; -0.99; 0.38; -9.14]
6. [0.08; -1.00; 0.08; -1.00; 0.54; -9.67]
7. [0.03; -1.00; 0.03; -1.00; 0.58; -11.66]
8. [1.00; 0.00; 1.00; 0.00; 0.67; -14.47]
9. [0.04; 2.28; 0.02; 1.00; 0.71; -9.94]
10. [0.04; 2.04; 0.08; 4.08; 0.75; -7.81]


 
AlexBond
Дата: СБ, 05.02.2011, 13:08:02 | Сообщение # 78
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1035
Репутация: 106
Инвентарь: 8
Статус: Offline
Quote (Герыч)
стоп, а что такое это
joint1|joint2.pos.x.keys[10] (2)
joint1|joint2.pos.y.keys[9] (2)
Почему x и y? По идее, если задаются две координаты, то надо их по времени синхронизировать.

Объясню еще раз, анимация это постепенная смена кадров. моментов. В данном случае моментом является положение того или иного объекта в пространстве.
Все изменения положений определяются кривыми каждого значения. Кривые строятся по ключевым точкам.
Каждое мгновение находим множества value(значений) для текущего time (времени). И находим матрицу трансформации, т.е. они все синхронизированы. Смена матриц трансформаций во времени и создаёт эфект анимации.

Чтобы анимация была правильной, нужна верная кривая, как бы функция f(t). Именно ее я и не могу построить.

Что касается импульсов. Мне нужна прямоугольная кривая для того чтобы текстура сдвигалась рывками, на следующий рисунок молнии, в итоге получается анимация текстуры, т.к. у меня кривая не импульсная, мы видим переход первого кадра во второй и получается мерцание....


 
AlexBond
Дата: СБ, 05.02.2011, 13:24:10 | Сообщение # 79
AlexBond
Легендарный червь
Группа: Админы
Сообщений: 1035
Репутация: 106
Инвентарь: 8
Статус: Offline
ВНИМАНИЕ!!! ИЩУ ПОМОЩНИКА!!!!

От человека требуется запись видеоролика, как в игре проигрывается анимация которую я назову.
Этот человек должен уметь работать с Луа и командами вызова анимации.
Прошу всех кто заинтересован и может помочь, отписаться.


 
Герыч
Дата: СБ, 05.02.2011, 15:57:11 | Сообщение # 80
Герыч
Админ
Группа: Админы
Сообщений: 1240
Репутация: 60
Инвентарь: 5
Статус: Offline
ok, АлексБнд, а почему на том рисунке, где ты графики показал, ты задал наклон кривой только в одном направлении? ты как будто забил на tanin, использовал только tanout

________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Форум » Worms 4 Mayhem » 4.3. Ваши идеи по моделированию » W4AnimEditor or W3DAnimEditor... Создадим? (Собираю всю информацию по анимации, для создания программы..)
Страница 4 из 11«1234561011»
Поиск:

Copyright W4Tweaks™ 2008-2017 Хостинг от uCoz