Сейчас 17:07:07 Пятница, 22 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Константа 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)
---------------------------------------------

Quote (Mep3aB4uK)
ДГУИ

Что это?


 

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
Блокировки:
я даже не представляю, что будет, если это для каждого игрока сделать dunno

Добавлено (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, кажется других вариантов нет


 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz