Перейти к содержимому


Фотография

Как сделать выстрел во время анимации?



  • Авторизуйтесь для ответа в теме
Сообщений в теме: 22

#1 OFFLINE   Nika

Nika

    Ефрейтор

  • Пользователи
  • 34 сообщений

Отправлено 27 June 2017 - 17:49

Всем доброго времени суток. Полазала по многим форумам, но не смогла найти ответа на вопрос, как сделать эффект выстрела во время проигрывания анимации юнитом? Анимация "Acts_Executioner_Kill". Заранее благодарю за помощь. Если подобная тема уже создавалась, прошу прощения, буду признательная за ссылку на решённый вопрос. 


Сообщение отредактировал Nika: 27 June 2017 - 18:17

  • 0

#2 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1792 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 27 June 2017 - 19:03

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

.


  • 0

#3 OFFLINE   Nika

Nika

    Ефрейтор

  • Пользователи
  • 34 сообщений

Отправлено 29 June 2017 - 01:14

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

.

 

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


  • 0

#4 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1792 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 30 June 2017 - 13:39

Nika, нельзя, поскольку я не работал с этой командой. Кроме этого, что-то я засомневался, что она подойдёт, -- эта команда обычно используется для создания эффектов дыма при выстреле, а вспышка, насколько я знаю, -- часть модели.
А с помощью команд

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

,

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

и др. не получается?


  • 0

#5 OFFLINE   shaman33

shaman33

    Ефрейтор

  • Пользователи
  • 81 сообщений
  • Откуда:Владимир

Отправлено 02 July 2017 - 19:54

Можете поэкспериментировать с командой "

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

":

Soldier fire currentWeapon soldier;

Если я правильно помню, юнит выстрелит во время любой анимации, но корректно ли он это сделает - я не уверен.


Сообщение отредактировал shaman33: 02 July 2017 - 19:55

  • 0

#6 OFFLINE   Nika

Nika

    Ефрейтор

  • Пользователи
  • 34 сообщений

Отправлено 03 July 2017 - 01:18

Спасибо, попробую с этими командами, после отпишусь.


  • 0

#7 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 03 July 2017 - 04:39   Лучший Ответ

Прикрепленный файл  FireTest_2.Stratis.7z   1.37К   37 Количество загрузок:


  • 1

#8 OFFLINE   Nika

Nika

    Ефрейтор

  • Пользователи
  • 34 сообщений

Отправлено 03 July 2017 - 06:03

Nika, нельзя, поскольку я не работал с этой командой. Кроме этого, что-то я засомневался, что она подойдёт, -- эта команда обычно используется для создания эффектов дыма при выстреле, а вспышка, насколько я знаю, -- часть модели.
А с помощью команд

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

,

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

и др. не получается?

 

С помощью doTarget и doFire не получилось 


Можете поэкспериментировать с командой "

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

":

Soldier fire currentWeapon soldier;

Если я правильно помню, юнит выстрелит во время любой анимации, но корректно ли он это сделает - я не уверен.

 

Тоже к сожалению не помогло


  • 0

#9 OFFLINE   Nika

Nika

    Ефрейтор

  • Пользователи
  • 34 сообщений

Отправлено 03 July 2017 - 06:25

SteelRat, Вау! Класс! Супер! :yahoo: В файле который вы скинули всё сработало как надо, вот только в моём случае почему-то выдаёт ошибку:

'Palach forceWeaponFire [|#|_weapon, _modes select 0];'
Error
_weapon

Сообщение отредактировал Nika: 03 July 2017 - 06:31

  • 0

#10 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 03 July 2017 - 08:18

как вариант вы не отредактировали эту строку

_weapon = currentWeapon terpila;

в вашем случае не терпила а палач


Зы

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

Что то в районе между 3 и 4 секундами.


  • 1

#11 OFFLINE   Nika

Nika

    Ефрейтор

  • Пользователи
  • 34 сообщений

Отправлено 03 July 2017 - 12:36

SteelRat, Да, вы оказались правы - я действительно забыла поменять имя юнита в этой строке.  :good: Но теперь возникла новая проблема.

'|#|sleep 3;'
Error

Может быть я просто неправильно делаю, так как у меня всё это прописано в файле ролика миссии и выглядит как-то так:
 

setacctime 0.5
camera camSetTarget Palach
0 = 0 spawn {
	sleep 4;
	
	Palach playMove "Acts_Executioner_Kill";
	sleep 3;
	
	_weapon = currentWeapon Palach;
	_modes = getArray (configFile >> "cfgweapons" >> _weapon >> "modes");
	hintsilent str(_modes);
	Palach forceWeaponFire [_weapon, _modes select 0];
	
};

Возможно это нужно в отдельный файл прописать и как-то вызвать, поправьте меня пожалуйста если я ошибаюсь.  :unsure:


  • 0

#12 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1792 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 03 July 2017 - 13:08

Nika, а полный текст ошибки, который в RPT-файле, можно?
Разве в вашем коде первые 2 строки не должны оканчиваться точкой с запятой?


  • 0

#13 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 03 July 2017 - 13:47

 

Разве в вашем коде первые 2 строки не должны оканчиваться точкой с запятой?

Обязательно должны, без вариантов)

 

У меня есть, не подтверждённое, но подозрение, что команда sleep не совсем совместима с командой setacctime, но могу и ошибаться.

 

А вывод о ошибке действительно странный, и действительно интересно посмотреть весь лог.


Зы

А это лишнее

hintsilent str(_modes);

Эта строка выводит на экран список доступных режимов стрельбы оружия которое на момент вызова находится в руках персонажа. Так для общего понимания)


  • 0

#14 OFFLINE   HarryWorner

HarryWorner

    Лейтенант

  • Модераторы
  • 1035 сообщений

Отправлено 04 July 2017 - 07:13

Команда sleep не совсем совместима с командой setacctime


+

Лучше использовать

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

.
 
 uiSleep is basically using the system time (uiTime more specifically) and not simulation time.

  • 0

#15 OFFLINE   Nika

Nika

    Ефрейтор

  • Пользователи
  • 34 сообщений

Отправлено 04 July 2017 - 10:58

Nika, а полный текст ошибки, который в RPT-файле, можно?
Разве в вашем коде первые 2 строки не должны оканчиваться точкой с запятой?

 

Конечно можно, если вы конечно подскажите, где этот RPT файл достать. У меня в папке с миссией ничего подобного не нашлось.

Говоря о точке с запятой, то да, возможно вы правы, они там действительно должны быть, но как я считаю наверное больше для грамотности, так как каких-то особых изменений с их добавлением я не заметила. Вот когда ты пропускаешь точку с запятой между двумя разными выражениями в инициализации, активации или условие, это сразу чувствуется )

 

Зы

А это лишнее

hintsilent str(_modes)

Эта строка выводит на экран список доступных режимов стрельбы оружия которое на момент вызова находится в руках персонажа. Так для общего понимания)

 

Спасибо за объяснение, убрала. 


Сообщение отредактировал Nika: 04 July 2017 - 10:59

  • 0

#16 OFFLINE   Nika

Nika

    Ефрейтор

  • Пользователи
  • 34 сообщений

Отправлено 04 July 2017 - 11:07

Кажется поняла в чём проблема. У меня файл ролика (заставки) находится в (SQS) разрешение и я использую команду exec в редакторе. Из другой темы с похожей ошибкой я узнала, что exec запускает сценарий (SQS) в unscheduled-окружении, в контексте которого задержки (sleep) недопустимы... Мне нужно создать отдельный файл и потом уже запустить его через команду в нужный момент? 


  • 0

#17 OFFLINE   Nika

Nika

    Ефрейтор

  • Пользователи
  • 34 сообщений

Отправлено 04 July 2017 - 11:23

Всё разобралась. Создала отдельный файл в разрешение (SQF) и запустила его командой 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 в файле с роликом в нужном кадре. Спасибо всем огромное за помощь в решение этого вопроса.  :good: Остался лишь маленький вопросик, как так сказать откалибровать момент выстрела по времени? В моём случае в ролике идёт замедленное время, так что тот самый Palach, стреляет из пистолета уже когда пистолет опущен вниз.  :unknw:


Сообщение отредактировал Nika: 04 July 2017 - 11:23

  • 0

#18 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1792 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 04 July 2017 - 13:26

если вы конечно подскажите, где этот RPT файл достать

Эти файлы находятся в папке

%USERPROFILE%\AppData\Local\Arma 3

(например, C:\Users\User\AppData\Local\Arma 3) и содержат подробные отчёты о работе игры.
 

Остался лишь маленький вопросик, как так сказать откалибровать момент выстрела по времени? В моём случае в ролике идёт замедленное время, так что тот самый Palach, стреляет из пистолета уже когда пистолет опущен вниз.  :unknw:

На глаз.
Вроде бы в просмотрщике анимации её можно замедлить. Потом нужное время разделить на коэффициент замедления, установленный setAccTime.


  • 0

#19 OFFLINE   Nika

Nika

    Ефрейтор

  • Пользователи
  • 34 сообщений

Отправлено 04 July 2017 - 14:51


Schatten, Я понимаю, что придётся подбирать задержку выстрела на глаз, я не знаю какой командой это прописать. Зачем мне замедлять анимацию, которая итак уже замедлена? 

 


  • 0

#20 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1792 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 04 July 2017 - 15:06

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

sleep, uiSleep.
 

Зачем мне замедлять анимацию, которая итак уже замедлена?

Чтобы точнее определить время выстрела!
Замедлена она в сценарии, а я про замедление в просмотрщике анимаций. Например, мы определили, что выстрел происходит через 5,734 с после начала анимации; если в сценарии коэффициент замедления 0,5, то задержку нужно установить на 5,734 / 0,5 = 11,468 (с).


  • 1




Яндекс.Метрика