Восстановление Вырезанных Анимаций НПС. — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

Восстановление Вырезанных Анимаций НПС. — различия между версиями

Материал из 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'''
 
|-
 
|-
|<br>________________________<br/>
+
|________________________
 
|-
 
|-
|Вот и всё Анимация Восстановлена!=)
+
|''Вот и всё Анимация Восстановлена!=)''
 
|-
 
|-
|Ну теперь спавним для нашего Чистильщика стул!
+
|''Ну теперь спавним для нашего Чистильщика стул!''
 
|-
 
|-
|Создаёшь файл в папке ''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" ''''
 
|-
 
|-
|Всё сохраняем!
+
|''Всё сохраняем!''
 
|-
 
|-
|Очередь спавна:
+
|''Очередь спавна:''
 
|-
 
|-
|Создаём файл в папке '' gamedata\scripts''
+
|''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
На СП(Сталкер-портале)
Ник:Николай ФеНиКс
Другие места
LANGUAGE