Восстановление Вырезанных Анимаций НПС. — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
ФеНиКс (обсуждение | вклад) |
ФеНиКс (обсуждение | вклад) |
||
Строка 5: | Строка 5: | ||
|Мой Тутор думаю поможет новичкам!''' | |Мой Тутор думаю поможет новичкам!''' | ||
|- | |- | ||
− | | | + | |__________________________________ |
|- | |- | ||
|Первые Шаги... | |Первые Шаги... | ||
Строка 37: | Строка 37: | ||
|pause'' | |pause'' | ||
|- | |- | ||
− | | | + | |_____________________ |
|- | |- | ||
| Всё запускаем бантик и появляется файл: | | Всё запускаем бантик и появляется файл: | ||
Строка 53: | Строка 53: | ||
|Название: | |Название: | ||
|- | |- | ||
− | | | + | |'''stalker_animation.omf''' |
|- | |- | ||
|Путь: | |Путь: | ||
Строка 65: | Строка 65: | ||
| pause'' | | pause'' | ||
|- | |- | ||
− | |Всё, запускаем бантик и перед нами файл '''stalker_animation.skls''' | + | |Всё, запускаем бантик и перед нами файл '''stalker_animation.skls''' |
|- | |- | ||
− | | | + | |_____________________________ |
|- | |- | ||
|Выбор анимации... | |Выбор анимации... | ||
Строка 79: | Строка 79: | ||
|'''chistit ruje_1''' | |'''chistit ruje_1''' | ||
|- | |- | ||
− | + | |_____________________________ | |
|- | |- | ||
|Восстановление... | |Восстановление... | ||
Строка 85: | Строка 85: | ||
|Для этого нужно два файла: | |Для этого нужно два файла: | ||
|- | |- | ||
− | | | + | |'''state_mgr_animation_list.script''' |
|- | |- | ||
|'''state_lib.script''' | |'''state_lib.script''' | ||
Строка 105: | Строка 105: | ||
|rnd = nil },'' | |rnd = nil },'' | ||
|- | |- | ||
− | | | + | | |
|- | |- | ||
|Разъяснение: | |Разъяснение: | ||
Строка 155: | Строка 155: | ||
|animation = "stulik" | |animation = "stulik" | ||
|- | |- | ||
− | |},'' | + | | },'' |
|- | |- | ||
|Здесь разъяснять без толку, т.к. тут и всё понятно! | |Здесь разъяснять без толку, т.к. тут и всё понятно! | ||
Строка 220: | Строка 220: | ||
|- | |- | ||
|inv_name_short = | |inv_name_short = | ||
− | inv_weight = 10 | + | |- |
− | inv_grid_width = 3 | + | |inv_weight = 10 |
− | inv_grid_height = 3 | + | |- |
− | inv_grid_x = 22 | + | |inv_grid_width = 3 |
− | inv_grid_y = 29 | + | |- |
− | cost = | + | |inv_grid_height = 3 |
− | can_take = false'' | + | |- |
+ | |inv_grid_x = 22 | ||
+ | |- | ||
+ | |inv_grid_y = 29 | ||
+ | |- | ||
+ | |cost = 0 | ||
+ | |- | ||
+ | |can_take = false'' | ||
+ | |- | ||
+ | |''[table_2]:table | ||
+ | |- | ||
+ | |GroupControlSection = spawn_group | ||
+ | |- | ||
+ | |discovery_dependency = | ||
+ | |- | ||
+ | |$spawn = "taburetka\table_2" | ||
+ | |- | ||
+ | |visual = physics\stol\stol_4.ogf -- тот же стол но с другим визуалом | ||
+ | |- | ||
− | + | |[table_3]:table | |
− | GroupControlSection = spawn_group | + | |- |
− | discovery_dependency = | + | |GroupControlSection = spawn_group |
− | $spawn = "taburetka\ | + | |- |
− | visual = physics\stol\ | + | |discovery_dependency = |
− | + | |- | |
+ | |$spawn = "taburetka\table_3" | ||
+ | |- | ||
+ | |visual = physics\stol\stol_7.ogf -- аналогично | ||
+ | |- | ||
− | [ | + | |[stul]:table |
− | GroupControlSection = spawn_group | + | |- |
− | discovery_dependency = | + | |GroupControlSection = spawn_group |
− | + | |- | |
− | + | |discovery_dependency = | |
− | + | |- | |
− | + | |$spawn = "taburetka\stul" | |
− | + | |- | |
− | + | ||
− | + | ||
− | $spawn = "taburetka\stul" | + | |
visual = physics\stul\stul_1a.ogf -- Стул'' | visual = physics\stul\stul_1a.ogf -- Стул'' | ||
− | + | |- | |
− | Ах да! чуть не забыл!=) | + | |Ах да! чуть не забыл!=) |
− | Нужно прописать наш файл в '''system.ltx''' чтобы спавн работал!=) | + | |- |
− | куда-нибудь в начало пихаем вот это: | + | |Нужно прописать наш файл в '''system.ltx''' чтобы спавн работал!=) |
− | ''' #include "creatures\taburetka.ltx" '''' | + | |- |
− | Всё сохраняем! | + | |куда-нибудь в начало пихаем вот это: |
− | Очередь спавна: | + | |- |
− | + | |''' #include "creatures\taburetka.ltx" '''' | |
− | Создаём файл в папке '' gamedata\scripts'' | + | |- |
− | Назовём его '''esc_stul.script''' | + | |Всё сохраняем! |
− | в нём пишем: | + | |- |
− | '''function esc_stul () | + | |Очередь спавна: |
− | alife():create("stul",vector():set(-X,Y,Z),l_v,g_v) | + | |- |
− | end''' | + | |Создаём файл в папке '' gamedata\scripts'' |
− | + | |- | |
− | где ''XYZ'' пишем координаты места | + | |Назовём его '''esc_stul.script''' |
− | где ''l_v g_v'' пишем левел и гейм вертексы. | + | |- |
− | Всё Наш Чистильщик усажен на стул!=) | + | |в нём пишем: |
− | + | |- | |
+ | |'''function esc_stul () | ||
+ | |- | ||
+ | |alife():create("stul",vector():set(-X,Y,Z),l_v,g_v) | ||
+ | |- | ||
+ | |end''' | ||
+ | |- | ||
+ | |где ''XYZ'' пишем координаты места | ||
+ | |- | ||
+ | |где ''l_v g_v'' пишем левел и гейм вертексы. | ||
+ | |- | ||
+ | |Всё Наш Чистильщик усажен на стул!=) | ||
+ | |- | ||
+ | |} | ||
Создатель:[[Участник:ФеНиКс|ФеНиКс]] 10:32, 23 ноября 2009 (UTC)<br> | Создатель:[[Участник:ФеНиКс|ФеНиКс]] 10:32, 23 ноября 2009 (UTC)<br> | ||
{| class="standart" | {| class="standart" |
Версия 18:32, 3 августа 2010
Редактирование Восстановление Вырезанных Анимаций НПС
Нус...Приступим=)
Мой Тутор думаю поможет новичкам! |
__________________________________ |
Первые Шаги... |
Что нам нужно??? |
Для восстановления Нам нужно сначала посмотреть что нужно восстанавливать! Так ведь? |
1. SDK |
2. Конвертер от бардака! |
Ну и естественно хоть чучуть умения в обращении с этими вещами! |
Просмотр Анимаций... |
Делаем бантик для конвертации модели из ogf в object. |
Название: |
stalker_ki_mask.ogf |
Путь: |
Теперь очередь Бантика! |
Бантик: |
converter -ogf -object stalker_ki_mask.ogf |
pause |
_____________________ |
Всё запускаем бантик и появляется файл: |
stalker_ki_mask.object |
Открываем его в SDK и кликаем на три точки в motion reference , и снимаем все галочки! |
Дальше нажимаем кнопку append и загружаем .skls файл! |
чтобы получить .skls файл нам нужно создать опять же бантик и файл с анимациями! |
Мы возьмём файл со сталкерскими анимациями! |
Название: |
stalker_animation.omf |
Путь: |
\gamedata\meshes\actors |
Бантик: |
converter -omf -skls stalker_animation.omf |
pause |
Всё, запускаем бантик и перед нами файл stalker_animation.skls |
_____________________________ |
Выбор анимации... |
В SDK нажимаем на Motion и перед нами появляется список анимаций! |
Я нашёл вырезанную анимацию чистки ствола! |
Название: |
chistit ruje_1 |
_____________________________ |
Восстановление... |
Для этого нужно два файла: |
state_mgr_animation_list.script |
state_lib.script |
В первом прописываем нашу анимку вот так: |
stulik = { prop = { maxidle = 1, |
sumidle = 1, |
rnd = 100 }, |
into = { [0] = {"chistit ruje_1", {a="wpn_sig220"}, "chistit ruje_1"} }, |
out = nil, |
idle = { [0] = "chistit ruje_1" }, |
rnd = nil }, |
Разъяснение: |
Толком я не понял что за что отвечает, но что-то я всё же понял... |
stulik -- Здесь можно писать что угодно это название анимки которое будет использоваться при |
запись в Логику... |
into -- использовать |
out -- выкинуть |
idle -- идловые анимки. |
rnd -- используется для групповых анимаций, типа повернулся влево вправо встал сел... |
nil -- не использовать. |
Так же Объяснения от Замечательного человека Максим Р. |
into - входная анимация (начальная); |
out - выходная анимация (конечная); |
idle - анимация между into и out; |
rnd - случайная анимация, которая будет отыгрываться во время idle случайным образом. |
chistit ruje_1 -- тут думаю понятно! (сама анимка) |
Т.к. я до конца не разобрался врать не буду, что-то может и не так разъяснил то за что отвечает! |
В state_lib.script пишем следующее: |
stulik= {weapon = "unstrapped", |
movement = nil, |
mental = nil, |
bodystate = nil, |
animstate = nil, |
animation = "stulik" |
}, |
Здесь разъяснять без толку, т.к. тут и всё понятно! |
НО есть формальности из-за которых у меня и была ошибка( не появлялось оружие в руках) |
Поясняю: |
strapped - оружие на спине |
unstrapped - оружие в руках |
none - убрать вообще |
drop - бросить |
fire - стрелять |
все в Логике НПСа пишем: |
[logic] |
active = remark |
[remark] |
anim = stulik |
________________________ |
Вот и всё Анимация Восстановлена!=) |
Ну теперь спавним для нашего Чистильщика стул! |
Создаёшь файл в папке creatures |
Ну допустим назовём файл taburetka.ltx |
и в него конфинги: |
[table]:identity_immunities |
GroupControlSection = spawn_group |
discovery_dependency = |
$spawn = "taburetka\table" -- тут указывается файл и секция (понадобится для спавна) |
;$prefetch = 32 |
class = II_ATTCH |
cform = skeleton |
visual = physics\stol\stol_obedenniy.ogf -- Визуал стола |
radius = 1 |
;script_binding = bind_physic_object.init |
description = inventory_sakbox_01_desc |
inv_name = |
inv_name_short = |
inv_weight = 10 |
inv_grid_width = 3 |
inv_grid_height = 3 |
inv_grid_x = 22 |
inv_grid_y = 29 |
cost = 0 |
can_take = false |
[table_2]:table |
GroupControlSection = spawn_group |
discovery_dependency = |
$spawn = "taburetka\table_2" |
visual = physics\stol\stol_4.ogf -- тот же стол но с другим визуалом |
[table_3]:table |
GroupControlSection = spawn_group |
discovery_dependency = |
$spawn = "taburetka\table_3" |
visual = physics\stol\stol_7.ogf -- аналогично |
[stul]:table |
GroupControlSection = spawn_group |
discovery_dependency = |
$spawn = "taburetka\stul" |
Ах да! чуть не забыл!=) |
Нужно прописать наш файл в system.ltx чтобы спавн работал!=) |
куда-нибудь в начало пихаем вот это: |
#include "creatures\taburetka.ltx" ' |
Всё сохраняем! |
Очередь спавна: |
Создаём файл в папке gamedata\scripts |
Назовём его esc_stul.script |
в нём пишем: |
function esc_stul () |
alife():create("stul",vector():set(-X,Y,Z),l_v,g_v) |
end |
где XYZ пишем координаты места |
где l_v g_v пишем левел и гейм вертексы. |
Всё Наш Чистильщик усажен на стул!=) |
Создатель:ФеНиКс 10:32, 23 ноября 2009 (UTC)
Связаться со мной можно |
---|
По ICQ №559615499 |
ВКонтакте №id19647122 |
На СП(Сталкер-портале) Ник:Николай ФеНиКс |