Константа Z для камеры
|
|
FatalBlade | Дата: Пятница, 18 Ноября 2011, 17:56:42 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| У меня есть несколько глубоких обрывов на карте, и хотелось бы что бы камера не опускалась в эти обрывы когда она направлена в них. Вообще что бы камера сидела на 1 и той же точке по оси Z.
Ещё если можно то запретить разворот и спуск камеры НЕ ИСПОЛЬЗУЯ периодические события с малым периодом
|
|
|
|
Mep3aB4uK | Дата: Пятница, 18 Ноября 2011, 18:12:06 | Сообщение # 2 |
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды: 0
Репутация: 135
Блокировки:
| FatalBlade, Если ты делаешь 3д камеру то скачай себе ДГУИ... там все просто и со вкусом
|
|
|
|
FatalBlade | Дата: Пятница, 18 Ноября 2011, 20:09:56 | Сообщение # 3 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (Mep3aB4uK) FatalBlade, Если ты делаешь 3д камеру то скачай себе ДГУИ... там все просто и со вкусом Что ты имеешь ввиду 3Д камеру? Варик и есть 3Д камера. Мне нужно наоборот ограничинить камеру. Что бы было как в Диабло 2 например.Добавлено (18 Ноябрь 2011, 20:09:56) ---------------------------------------------
Что это?
|
|
|
|
SirNikolas | Дата: Суббота, 19 Ноября 2011, 08:58:03 | Сообщение # 4 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Не "ДГУИ", а DGUI - Dynamic graphical user interface. Эта система настолько сложна, насколько полезна.
|
|
|
|
FatalBlade | Дата: Суббота, 19 Ноября 2011, 19:06:10 | Сообщение # 5 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (SirNikolas) Эта система настолько сложна, насколько полезна. Да уж сложна. У меня мозг лопается как я смотрю на эти функции. Мне нужно лишь 2 вещи (которых там нету):
1) - Что бы ось Z камеры не опускалась согласно местности. То есть если игрок смотрит в обрыв, то камера не будет опускаться ко дну обрыва. Так же если игрок наоборот смотрит на возвышенность, то естественно своего юнита или там разный декор ему будет казаться ближе. Иным словом - хочу что бы Z была константной, согласно вектору высоты, а не линии земли.
2) - "Запретить" поворот камеры и вид от 3-го лица (колесо мыши). У меня оно уже сделано, но с событием 0.04 секунд, а я естественно избегаю таких событий.
З.Ы. Не предлагать "прикрепить камеру к юниту", потому что это не то что мне нужно.Добавлено (19 Ноябрь 2011, 16:53:58) --------------------------------------------- И вообще как сделать событие типа "Игрок двигает камеру"? Добавлено (19 Ноябрь 2011, 17:34:06) --------------------------------------------- Можно ли поставить вообще просто границу камеры ? Добавлено (19 Ноябрь 2011, 19:06:10) --------------------------------------------- Какая функция устанавливает вот это --->> GetCameraTargetPositionZ ?
Сообщение отредактировал FatalBlade - Суббота, 19 Ноября 2011, 15:21:02 |
|
|
|
AU | Дата: Суббота, 19 Ноября 2011, 19:51:29 | Сообщение # 6 |
7 уровень
Группа: Проверенные
Сообщений: 471
Награды: 0
Репутация: 70
Блокировки:
| чего ты так боишься событий 0.01 сек? через таймер не пробовал? для константы Z камеры в действии пишеш через custom script строки: Custom script: local player p = Player(0) Custom script: local location L = GetCameraTargetPositionLoc() Custom script: local real z = GetLocationZ(L) Custom script: call SetCameraFieldForPlayer(p, CAMERA_FIELD_ZOFFSET, 1.0-z, 0.10)
или если непонятно скачай мой пример картой тут
Сообщение отредактировал AU - Суббота, 19 Ноября 2011, 19:52:57 |
|
|
|
SirNikolas | Дата: Суббота, 19 Ноября 2011, 19:56:34 | Сообщение # 7 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (FatalBlade) Какая функция устанавливает вот это --->> GetCameraTargetPositionZ? Здравый смысл подсказывает, что SetCameraTargetPositionZ.
|
|
|
|
AU | Дата: Суббота, 19 Ноября 2011, 19:59:02 | Сообщение # 8 |
7 уровень
Группа: Проверенные
Сообщений: 471
Награды: 0
Репутация: 70
Блокировки:
| я думаю, проблема решена моим примером, не так ли?
|
|
|
|
FatalBlade | Дата: Суббота, 19 Ноября 2011, 20:03:07 | Сообщение # 9 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (AU) я думаю, проблема решена моим примером, не так ли? Да!! Спс огромное!! А оно работает на всех игроков?
Quote (SirNikolas) SetCameraTargetPositionZ Я пробовал но не работает..
|
|
|
|
AU | Дата: Суббота, 19 Ноября 2011, 20:05:28 | Сообщение # 10 |
7 уровень
Группа: Проверенные
Сообщений: 471
Награды: 0
Репутация: 70
Блокировки:
| Quote (AU) Custom script: local player p = Player(0) 0 - это игрок 1 (красный), для вех игроков вряд ли получится, так как у функции Quote (AU) GetCameraTargetPositionLoc() нет аргумента игрока
|
|
|
|
FatalBlade | Дата: Суббота, 19 Ноября 2011, 20:13:09 | Сообщение # 11 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Ну если например играют 10 игроков, то у всех будет желаемый результат? Ведь GetCameraTargetPositionLoc() работает не на каждого игрока.
|
|
|
|
AU | Дата: Суббота, 19 Ноября 2011, 20:27:08 | Сообщение # 12 |
7 уровень
Группа: Проверенные
Сообщений: 471
Награды: 0
Репутация: 70
Блокировки:
| я даже не представляю, что будет, если это для каждого игрока сделать Добавлено (19 Ноябрь 2011, 20:27:08) --------------------------------------------- таки вот такие проблы с камерой для игроков, если их несколько
|
|
|
|
FatalBlade | Дата: Суббота, 19 Ноября 2011, 20:56:09 | Сообщение # 13 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Всё же мне нужна наработка того что выложил AU, только на несколько игроков
|
|
|
|
Hexing | Дата: Воскресенье, 20 Ноября 2011, 09:23:56 | Сообщение # 14 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| попробуй чтото типа: Code SetCameraField(CAMERA_FIELD_ZOFFSET, 1., 0.);
|
|
|
|
FatalBlade | Дата: Воскресенье, 20 Ноября 2011, 12:39:02 | Сообщение # 15 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Оказывается CAMERA_FIELD_ZOFFSET - это высота цели камеры по оси Z относительно ЗЕМЛИ. Я проверил этот алгоритм с максимально высокими горами а за ним максимально низкий обрыв, и камера проваливается. Я нашёл формулу, и смог настроить всё так что бы камера примерно была на одной высоте, но опять же, это нельзя применить для каждого игрока, потому что у GetCameraTargetPositionLoc() нету аргумента игрока
|
|
|
|
Hexing | Дата: Воскресенье, 20 Ноября 2011, 15:43:38 | Сообщение # 16 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| посмотри другия параметры подраздела CAMERA_FIELD_ ...
|
|
|
|
FatalBlade | Дата: Воскресенье, 20 Ноября 2011, 15:55:26 | Сообщение # 17 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (Hexing) посмотри другия параметры подраздела CAMERA_FIELD_ ... Есть ещё CAMERA_FIELD_TARGET_DISTANCE - это длинна вектора от цели камеры до самого "глаза" камеры. Но он не является осью Z, потому что тут проводится вектор от точки до точки, а угол между точками может быть разный. Это линия вообще может быть паралельна земле, если угол равен 180 или 0.
|
|
|
|
Hexing | Дата: Воскресенье, 20 Ноября 2011, 16:00:16 | Сообщение # 18 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| всё что приходит в голову - по таймеру задавать позицию... попробуй поэксперементировать с camerasetup, кажется других вариантов нет
|
|
|
|