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


Фотография

Проверка на FOV


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

#1 OFFLINE   Kurt212

Kurt212

    Рядовой

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

Отправлено 16 April 2016 - 22:32

Есть в Арме стандартное средство для проверки, находится ли нужный юнит в поле зрения другого юнита?
Я такой не нашёл, пришлось самому реализовывать ради интереса.


Сообщение отредактировал Kurt212: 16 April 2016 - 22:37

  • 1

#2 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 16 April 2016 - 22:42

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

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

Сообщение отредактировал vlad333000: 16 April 2016 - 22:45

  • 0

#3 OFFLINE   Kurt212

Kurt212

    Рядовой

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

Отправлено 16 April 2016 - 22:54

vlad333000,  knowsAbout вроде не то, что нужно. Ну видимо придётся использовать своё.


  • 1

#4 OFFLINE   Kurt212

Kurt212

    Рядовой

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

Отправлено 16 April 2016 - 23:15

Сделал отдельную тему для мой реализации тогда. Я знаю, что кому-нибудь она нужна будет


  • 1

#5 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 18 April 2016 - 18:16

BIS_fnс_inAngleSector

//------------------
// Authors: Peter Morrison (snYpir) & Philipp Pilhofer (raedor), optimised by Killzone_Kid
// Purpose: Checks if a position lies within an angle sector
// Arguments: [<center position>,<center angle of sector>,<sector width>,<position>]
// Return: boolean
//
/*
	Returns true if <position> lies within the sector defined by <center position>,
	<center angle of sector> and <sector width>. Use this function to determine if
	a position lies within a certain angle from another position (ie the <center position>). 
	Example:
	[position player,getdir player,30,position enemy_tank] call BIS_fnc_inAngleSector
	will return true if the vehicle named enemy_tank is within 30 degrees of where the player is pointing.
*/
// Revision History:
// 09/01/08 0.1 - First cut VBS2
//------------------

/// --- validate input
#include "..\paramsCheck.inc"
#define arr [[],0,0,[]]
paramsCheck(_this,isEqualTypeParams,arr)

params ["_center", "_dir", "_sector", "_pos"];

private _dirTo = _center getDir _pos;
acos ([sin _dir, cos _dir, 0] vectorCos [sin _dirTo, cos _dirTo, 0]) <= _sector/2

Единственное, не производится проверка угла по оси Z. Я думаю пара магических пассов руками, помогут и с этим)

 

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

https://arma3.ru/for...th-mod/?p=61535


Сообщение отредактировал SteelRat: 18 April 2016 - 18:24

  • 1

#6 OFFLINE   Kurt212

Kurt212

    Рядовой

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

Отправлено 19 April 2016 - 23:10

SteelRat, вот за функцию спасибо) Апдейтнул свою.

 

Но с z-осью большие проблемы, потому что у eyeDirection что-то не так с третьей координатой.

Или я что-то не понимаю. Но значения там не адекватные.


  • 0

#7 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 19 April 2016 - 23:32

Kurt212, не знаю что у вас там с eyeDirection, но у меня все норм с ней - использовал для "захвата" направления взгляда игрока и последующего "воспроизведения" - итог 1 к 1 все получилось
  • 0

#8 OFFLINE   Kurt212

Kurt212

    Рядовой

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

Отправлено 20 April 2016 - 00:02

vlad333000, нет, проверял, крутил головой. Z-овая ведёт себя крайне неадекватно, изменяется сама собой.


  • 0

#9 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 21 April 2016 - 00:04

Kurt212, не знаю что у вас там с eyeDirection, но у меня все норм с ней - использовал для "захвата" направления взгляда игрока и последующего "воспроизведения" - итог 1 к 1 все получилось

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

 

vlad333000, нет, проверял, крутил головой. Z-овая ведёт себя крайне неадекватно, изменяется сама собой.

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


  • 0

#10 OFFLINE   Kurt212

Kurt212

    Рядовой

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

Отправлено 21 April 2016 - 22:52

SteelRat, не думаю, что можно что-то делать не так, смотря на значение, крутя головой)

Тогда как иначе получить вектор направления игровой камеры?


  • 0




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