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


Фотография

Вопрос про UnitCapture и UnitPlay


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

#1 OFFLINE   Sandefend

Sandefend

    Ефрейтор

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

Отправлено 29 November 2014 - 02:51

Всем доброго времени суток. Возникли проблемы по Unitplay, Смотрел этот туториал -  ,

 

строго обучился алгоритму (но смысл не понял, плохо понимаю разговорный английский), так же из описания скачал его миссию с описанием скриптов, когда дело доходит до координатов движения бота (см 2:16) то возникает проблема, у меня не появляются вообще координаты движений юнита(просто жму "вставить") , так же подозреваю, что вовсе не происходит запись (команда 0-0-1). Может ли кто помочь разжевать эту тему? Может кто подправит миссию. Очень нужно.


Сообщение отредактировал Sandefend: 29 November 2014 - 02:56

  • 0

#2 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 29 November 2014 - 07:26

Ты F1 для копирования то нажимал после остановки записи?


  • 0

#3 OFFLINE   Sandefend

Sandefend

    Ефрейтор

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

Отправлено 29 November 2014 - 13:28

Ты F1 для копирования то нажимал после остановки записи?

 

 

Попробовал. Сначало нажал esc(остановить запись) , потом ф1, дальше полез в блокнот, никаким образом не смог вставить координаты. Так же пробовал и без остановки записи жать ф1.

 

Кстати, при старте записи видео (жму 0-0-1) у меня появляется такое меню - 

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

 , в туториале не так же.


Сообщение отредактировал Sandefend: 29 November 2014 - 13:42

  • 0

#4 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 29 November 2014 - 17:53

rec = [unitname, "ты тут время в сек указал?"] spawn BIS_fnc_UnitCapture;


  • 0

#5 OFFLINE   Sandefend

Sandefend

    Ефрейтор

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

Отправлено 29 November 2014 - 18:33

rec = [unitname, "ты тут время в сек указал?"] spawn BIS_fnc_UnitCapture;

Незнаю. Я скачал миссию в описании видео , это был пример. Там вот так 

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


  • 0

#6 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 30 November 2014 - 00:06

Попробуйте это, вставьте в инит своего юнита

this addAction ["START UnitCapture", {
	[(_this select 0), 50] spawn BIS_fnc_UnitCapture;
},"",0,false,true];

this addAction ["STOP UnitCapture", {
	BIS_EndCapture = true;
},"",0,false,true];

Требуемое время записи выставьте сами, для запуска записи и остановки будут добавлены экшены, ESC жать не надо, копирование данных в буфер стандартно F1


  • 1

#7 OFFLINE   Sandefend

Sandefend

    Ефрейтор

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

Отправлено 30 November 2014 - 19:07

SteelRat,

вставил в инит, та же проблема - жму 0-0-1 и пишет capturing completed, как я понял запись и не начинается даже.


Сообщение отредактировал Sandefend: 30 November 2014 - 19:10

  • 0

#8 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 30 November 2014 - 19:29

Sandefend, а вы юнита не забыли обозвать?  


  • 0

#9 OFFLINE   Sandefend

Sandefend

    Ефрейтор

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

Отправлено 30 November 2014 - 19:41

Sandefend, а вы юнита не забыли обозвать?  

юнит без имени. так было изначально в скачанной миссии, надо было?  :unsure:

 

обозвал юнита, все равно пишет вначале что сьемка завершена, и не копируются координаты, но я имя юнита не вписывал в другие скрипты и тригеры


Сообщение отредактировал Sandefend: 30 November 2014 - 19:47

  • 0

#10 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 30 November 2014 - 19:50

Sandefend, обзываешь юнит
superPuperUnit01
и в триггере пишешь 
[superPuperUnit01, 50] spawn BIS_fnc_UnitCapture;

Сообщение отредактировал vlad333000: 30 November 2014 - 19:51

  • 1

#11 OFFLINE   Sandefend

Sandefend

    Ефрейтор

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

Отправлено 30 November 2014 - 19:54

vlad333000,спасибо! Теперь запись и координаты работают!  


  • 0

#12 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 01 December 2014 - 02:57

SteelRat,

вставил в инит, та же проблема - жму 0-0-1 и пишет capturing completed, как я понял запись и не начинается даже.

Не надо жать 001, если вы сделали как написано, у вас должно появиться два экшена

START UnitCapture

STOP UnitCapture

 

И наверное правильнее эту часть кода сделать так

this addAction ["START UnitCapture", {
	[vehicle (_this select 0), 50] spawn BIS_fnc_UnitCapture;
},"",0,false,true];


  • 1

#13 OFFLINE   Sandefend

Sandefend

    Ефрейтор

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

Отправлено 07 December 2014 - 22:40

А можно как нибудь заставить проигрывать стрельбу юнита? Только что записывал, и сам стрелял с самолёта, а бот просто пролетает по заданным координатам, но не стреляет


Сообщение отредактировал Sandefend: 07 December 2014 - 22:40

  • 0

#14 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 08 December 2014 - 02:42

А можно как нибудь заставить проигрывать стрельбу юнита? Только что записывал, и сам стрелял с самолёта, а бот просто пролетает по заданным координатам, но не стреляет

Если память мне не изменяет, когда лазил в функции, там нужно передать дополнительно параметры для этого.

 

PS

/*
	File: fn_UnitCapture.sqf
	Author: Martin [Dram] Melicharek

	Description:
	Records movement data of input unit over a specified period of time.
	Pressing the ESC key, the duration ending, or the unit dying ends
	the recording.

	Parameters:
	Unit			- Unit to capture movement data from
	Duration		- Duration to capture for
	OPT:FPS			- OPTIONAL: Frames recorded Per Second (default 20). Limit is 1 - 100
	OPT:Firing		- OPTIONAL: If true, will record the input unit's weapon fire data as well
	OPT:StartTime	- OPTIONAL: Starting time offset for the frame time

	Copies to clipboard:
	Array in format [FrameTime, UnitPosition, UnitDirectionVector, UnitUpVector, UnitVelocity] for each frame
	
	Input Examples:
	a) [BIS_Vehicle, 50, 30, true, 10] spawn BIS_fnc_UnitCapture;
			Which would capture data from a unit named BIS_Vehicle, would capture for 50 seconds, would capture at 30 FPS,
			and would also record the unit's weapon fire data as well. Frame time offset would be 10 seconds.
	
	b) [BIS_Vehicle, 50] spawn BIS_fnc_UnitCapture;
			Which would capture data from a unit named BIS_Vehicle, and would capture for 50 seconds.

	Output Example:
	a) [[0,[8208.26,1953.13,296.04],[0,1,0],[0.000174453,0,1],[0,0,0]],[1.021,[8208.26,1953.13,296.04],[0,1,0],[0.000174453,0,1],[0,0,0]]]
			The above output has 2 frames.
	
	b) [[0,[8208.26,1953.13,296.04],[0,1,0],[0.000174453,0,1],[0,0,0]]]
			The above output has 1 frame.
*/
	OPT:FPS			- OPTIONAL: очень затрудняюсь дать корректный перевод, можно оставить по умолчанию (20)
	OPT:Firing		- OPTIONAL: а это то, что вам нужно, true - фиксировать стрельбу, если не передавать этот параметр, по умолчанию принимает значение - false

В вашем случае приблизительно так:

[unit, (продолжительность записи), 20, true] spawn BIS_fnc_UnitCapture;

Сообщение отредактировал SteelRat: 08 December 2014 - 03:00

  • 1

#15 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 08 December 2014 - 03:07

Ещё один PS

 

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

/*
	File: fn_UnitPlayFiring.sqf
	Author: Martin [Dram] Melicharek

	Description:
	Plays back input weapon fire data on input unit.

	Parameters:
	Unit					- Unit to play weapon fire data on
	Data					- Weapon fire data to use
	OPT:IgnoreDisabled		- OPTIONAL: Whether to ignore if the Unit is dead and/or cannot move

	Example (used in a script):
	a)	_capturedFireData = [[2.135,"GAU8","<NULL-object>"]];
		[BIS_Vehicle, _capturedData, true] spawn BIS_fnc_UnitPlayFiring;
			Which would play back the captured data in the _capturedFireData array (containing only one frame in this example)
			onto a unit named BIS_Vehicle. Playback will play even if the unit is dead or disabled.
	
	Note that in a very large captured sequence, it is a better idea to preprocess the data prior to mission start, or
	a short freeze would occur as it reads the data. For example using the following in the mission's init:
	
		UnitData = compile preprocessFile "PlayBackUnit.sqf";

	..And then later start the sequence like this:
	
		// Start the sequence
		_result = [] call UnitData;
*/

  • 1

#16 OFFLINE   Sandefend

Sandefend

    Ефрейтор

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

Отправлено 08 December 2014 - 10:59

Этот код нужно вставить в инит юнита? Или в какой то документ в папке с миссией? Я не знаю  :blush:


Сообщение отредактировал Sandefend: 08 December 2014 - 11:45

  • 0

#17 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 08 December 2014 - 18:51

 

Этот код нужно вставить в инит юнита? Или в какой то документ в папке с миссией? Я не знаю  :blush:

 

Сударь! Я вам дал комментарии разработчиков прилагающиеся к функциям которые вы вызываете.

Комментарии обычно читают, с целью понять как правильно использовать функционал.

Вот и изучайте!


  • 1

#18 OFFLINE   Sandefend

Sandefend

    Ефрейтор

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

Отправлено 08 December 2014 - 20:26

спасибо, буду пробовать. Всё таки думаю это всё добавлять в документ в папке с миссией. 


Сообщение отредактировал Sandefend: 08 December 2014 - 20:27

  • 0

#19 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 09 December 2014 - 17:15

Пробовать это хорошо и полезно!

 

Но не будет лишним ознакомиться с этим

http://arma3.ru/foru...kriptopisaniiu/

 

Это избавит вас от многих проблем и кучи вопросов!


  • 1




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