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