Jump to content
Sign in to follow this  
Igor Goncharov

Пользовательская Анимация.

Recommended Posts

konsni

Прописываете что-нибудь типа:

<part>

<name>Elevator1</name>

<animation>

<rotation>X</rotation>

<parameter>

<sim>

<variable>ELEVATOR DEFLECTION</variable>

<units>radians</units>

<bias>0</bias>

<scale>1</scale>

</sim>

</parameter>

</animation>

</part>

И будет вам абсолютно плавная анимация.

 

 

Вопрос: Как сделать непрерывно проигрывающуюся (т.е. циклическую) анимацию? Деталь в Максе уже сделана и анимирована от 0 до 100-го кадра, а что нужно прописать в MakeMDL.parts.xml? Пробовал что-то городить с ABSOLUTE TIME, ничего не получилось :sarcastic:

Edited by konsni

Share this post


Link to post
Share on other sites
konsni

Ответ:

Сообразил сам. Код получился таким:

<animation>

<parameter>

<code>

(L:Par,second) 0 == if{ (E:ABSOLUTE TIME, second) (>L:Par,second) }

els{ (E:ABSOLUTE TIME, second) (L:Par,second) - 5 > if{ (E:ABSOLUTE TIME, second) (>L:Par,second) } }

(E:ABSOLUTE TIME, second) (L:Par,second) - 20 *

</code>

</parameter>

</animation>

Share this post


Link to post
Share on other sites
mercator

Помогите понять: <code>(L:MySwitch, bool) 50 *</code>

 

Почему "L", откуда взялось MySwitch, что такое bool, и * после 50.

Спасибо

Edited by Глеб

Share this post


Link to post
Share on other sites
konsni

L - это вид переменной, т.е. пользовательская переменная.

MySwitch - это имя переменной, которое может быть любым.

bool - тип переменной - булевский, т.е. могущий принимать два логических значения: 0 и 1.

А знак * (умножить) ставится посмле 50 потому, что таков порядок записи выражений в XML: сначала два "операнда" - числа или переменных, а затем знак (что с ними нужно сделать).

Share this post


Link to post
Share on other sites
VITAL

Konsni

Я так понял что ты изучал XML ? :-) Не подскажешь где найти учебный материал для изучения кода применительно к симу ?

Подскажи плиз как должен выглядеть код анимации тележки шасси прикрученный к тангажу самолёта, чтоб при задирании носа тележка не задиралась вместе с ним а катилась по впп ? Я нашёл в Panels_SDK в Parameters.doc параметр PLANE PITCH DEGREES, но скрестить его с кодом методом научного тыка пока не увенчалось успехом, срабатывает но не так как надо. Я в XML 2 по 5 пока , просто на примере другого кода пытаюсь догнать :-)

И ещё вопрос, где узнать полный список параметров сима кроме Parameters.doc ? например какой параметр у направления ветра в симе, чтоб закинуть код в MakeMDL.parts.xml и прикрутить анимацию флага на на правление ветра в симе.

Share this post


Link to post
Share on other sites
konsni

XML изучал по SDK, статье на этом сайте про приборостроение (в файлах), по форуму. Смотрел MakeMDL.parts.xml, много думал.

Конкретно шасси не занимался. Что значит "срабатывает но не так как надо"?

Кроме Parameters.doc - вроде нигде. Мне, например, нужна переменная опускания конкордовского носа (в симе точно есть такая), а в этом файле ее нет :)

А AMBIENT WIND DIRECTION чем не устраивает? Взято из того же Parameters.doc.

Share this post


Link to post
Share on other sites
VITAL

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

Share this post


Link to post
Share on other sites
Frolov.DI
Помогите понять: <code>(L:MySwitch, bool) 50 *</code>

 

Почему "L", откуда взялось MySwitch, что такое bool, и * после 50.

Спасибо

 

Такая запись потому, что операции через стек.

 

(L:MySwitch, bool) - первый операнд

50 - второй операнд

* - оператор

результат остается в стеке.

 

Читать еще раз доки в SDK. там подробно все расписано. в 2004 так точно.

Share this post


Link to post
Share on other sites
konsni

Предлагаю выкладывать сюда удачные решения в XML-коде. Например, задача: сделать высотомер с правильно работающим "барабанным" счетчиком. Решение:

(для первого барабанчика, вращающегося плавно)

<part>
<name>Vys_m</name>
<animation>
	<rotation>Z</rotation>
	<parameter>
			 <code>
			  (A:INDICATED ALTITUDE, meter) 0.0062832 *
			 </code>
	</parameter>
</animation>
</part>

Для второго и последующих, вращающихся рывками:

<part>
<name>Vys_km</name>
<animation>
	<rotation>Z</rotation>
	<parameter>
			 <code>
			 (A:INDICATED ALTITUDE, meter) 10 / flr 10 * (A:INDICATED ALTITUDE, meter) - /-/ 10 / (>L:metr, meter)
			  (A:INDICATED ALTITUDE, meter) 100 / flr 100 * (A:INDICATED ALTITUDE, meter) - /-/ 90 > ! if{ (A:INDICATED ALTITUDE, meter) 100 / flr 0.6283 * } els{ (A:INDICATED ALTITUDE, meter) 100 / flr (L:metr, meter) + 0.6283 * }
			</code>
	</parameter>
</animation>
</part>

Естественно, детали Vys_m и Vys_km должны пердставлять собой цилиндры с нанесенными на них цифрами от 0 до 9.

Share this post


Link to post
Share on other sites
User_Deleted

Подсобите с кодом, плз. Есть задумка реализовать запуск ракеты. Тумблер запуска в кабине. Последовательность такая:

1. Тумблер нажат, отцепка, ракета три секунды летит параллельно самолету, 20 кадров.

2. Раскладывается стабилизатор, еще через пять секунд происходит старт двигателя (тут надо прицепить эффект, ну в смысле не технически прицепить - это понятно, а сделать так, чтобы он запускался на нужном кадре). Еще кадров 30-35.

3. 50 кадров - разгон.

4. Все остальное - полет. Взрыв реализовать как-то не представляется возможным.

Дополнительно вопрос: предположим ракета запущена, возможно ли сделать, чтобы при изменении направления полета ракета продолжала лететь в направлении запуска?

Share this post


Link to post
Share on other sites
User_Deleted

И еще вопрос. Предположим, мне надо изменить скорость уборки одной из стоек шасси. В makemdl.parts.xml соответствующих переменных нет. Как быть?

Share this post


Link to post
Share on other sites
Fishbed
И еще вопрос. Предположим, мне надо изменить скорость уборки одной из стоек шасси. В makemdl.parts.xml соответствующих переменных нет. Как быть?

 

в эйркрафт.кфг время уборки\выпуска шасси выставляется

Share this post


Link to post
Share on other sites
Fishbed

2 Maximus

 

отправил в приват. Проверь

Share this post


Link to post
Share on other sites
User_Deleted

Fishbed

 

Спасибо, разобрался. Чуть не нагородил огород :D

 

Я тут глюк какой-то упрямый поймал - делаю стабилизатор (у меня это две детали), обзываю его (точнее их) elevator_key (соответствующая секция в makemdl.parts имеется, по сдк делаю анимацию - 0 кадров-вверх, 50 кадров-нейтрально, 100 кадров-вниз... И ничего не происходит. В симе висит на нулевом кадре.

Share this post


Link to post
Share on other sites
mercator
Fishbed

 

Спасибо, разобрался. Чуть не нагородил огород :)

 

Я тут глюк какой-то упрямый поймал - делаю стабилизатор (у меня это две детали), обзываю его (точнее их) elevator_key (соответствующая секция в makemdl.parts имеется, по сдк делаю анимацию - 0 кадров-вверх, 50 кадров-нейтрально, 100 кадров-вниз... И ничего не происходит. В симе висит на нулевом кадре.

Если обе детали обзываете одинаково то есть такой глюк, называйте папример Elevator_Key_perviy а вторую Elevator_Key_vtoroy.

Share this post


Link to post
Share on other sites
mercator
в эйркрафт.кфг время уборки\выпуска шасси выставляется

Покажите пожалуйста где это выставлять :sarcastic:

 

И ещё вопрос, какая переменная отвечает за tailhook, в СДК не нашёл.

 

Спасибо

Share this post


Link to post
Share on other sites
Fishbed
в эйркрафт.кфг время уборки\выпуска шасси выставляется

Покажите пожалуйста где это выставлять :sarcastic:

 

 

Спасибо

 

11 и 12 столбик в эйркрафт.кфг в секции контакт поинтс (дефолтный эркрафт.кфг открой, там все подписано, что за что отвечает)

Share this post


Link to post
Share on other sites
BIGSIZE

Помогите разобраться с анимацией ато я не понял, например как сделать анимацию шасси?

Share this post


Link to post
Share on other sites
VortexMX
Помогите разобраться с анимацией ато я не понял, например как сделать анимацию шасси?

Где(в чем) сделать?

Edited by VortexMX

Share this post


Link to post
Share on other sites
BIGSIZE

В 3sMax сделал модель с анимацией, настроил как в SDK написанно, но анимация не работает?

Share this post


Link to post
Share on other sites
gosha-z
В 3sMax сделал модель с анимацией, настроил как в SDK написанно, но анимация не работает?

А версию сима, для которой делаете, даже под пыткой не скажете?

Share this post


Link to post
Share on other sites
BIGSIZE
В 3sMax сделал модель с анимацией, настроил как в SDK написанно, но анимация не работает?

А версию сима, для которой делаете, даже под пыткой не скажете?

 

 

MFS9

 

 

 

(Если можно выложите плагин для экспорта в .X для 7 max а то у меня левый)

Share this post


Link to post
Share on other sites
Kirill Konovalov

Уважаемые Коллеги. Доброго времени суток.

Пожалуста, проясните мне ситуацию с созданием Деталей, по которым предполагается действие пользователя(кнопки и др. в ВК)

 

Модель в Максе 7, панда под него из соседнего топика.

 

Мне не удается создать деталь, по которой можно было-бы кликнуть.

 

Я пробовал вот такой код.

 

<part>
<name>Left_Window_Handle</name> 
<animation>
<parameter>
<code>(L:Left_Window,bool) 50 *</code> 
<lag>50</lag>
</parameter>
</animation>
<mouserect>
<cursor>Hand</cursor>
<tooltip_text>Window</tooltip_text>
<mouse_flags>LeftSingle</mouse_flags>
<callback_code>(L:Left_Window,bool) ! (>L:Left_Window,bool)</callback_code>
</mouserect>
</part>

 

Вместо ">" там естественно "&gt"

"Лапа" не появляется на детали.

И я не могу найти ошибку. Помогите пожалуста.

Edited by Kirill Konovalov

Share this post


Link to post
Share on other sites
Echer
Мне не удается создать деталь, по которой можно было-бы кликнуть.
На вид ошибок в коде нет, Visual Studio тоже подсвечивает XML как well-formed.

 

Попробуй, на всякий случай, скопипастить к себе нижеприведенный кусок кода, Left_Window_Handle в свою очередь скопипасть из названия детали в максе.

 

<part>
    <name>Left_Window_Handle</name>
    <animation>
 	 <parameter>
 	   <code>
 		 (L:LWindow,bool) 50 *
 	   </code>
 	   <lag>50</lag>
 	 </parameter>
    </animation>
    <mouserect>
 	 <cursor>Hand</cursor>
 	 <tooltip_text>Window</tooltip_text>
 	 <mouse_flags>LeftSingle</mouse_flags>
 	 <callback_code>
 	   (L:LWindow,bool) ! (>L:LWindow,bool)
 	 </callback_code>
    </mouserect>
  </part>

 

Что делает этот код. При щелчке мышкой по детали с названием Left_Window_Handle будет вызван код обратного вызова (то что между тегами callback_code). В нем текущее значение булевской переменной LWindow (может принимать два значения: 0 либо 1) с помощью оператора ! (логическое НЕ - оператор записывается после операнда) меняется на противоположное, и записывается в переменную LWindow (в коде >L:LWindow,bool) параллельно деталь Left_Window_Handle выставляется в кадр анимации, расчитывемый в теге code. То есть, текущее значение LWindow умножается на 50 и получается либо кадр 0, либо кадр 50. Код работает с той самой пандой как в 8м максе так и в 7м.

Edited by Echer

Share this post


Link to post
Share on other sites
komal_brn

добрый день! Подскажите как сделать в gmax пользовательскую анимацию. Со стандартной, такой как вращение колес винтов я разобрался.

Да, ещё вопрос:внешнее освещиен как то фары и габариты как прописываюся?

Спасибо!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...