Q/A

Добавлен , опубликован
`
ОЖИДАНИЕ РЕКЛАМЫ...
Этот комментарий удален
28
ScorpioT1000, лучше триппер чем вообще без секса
если кто не понял то это тонкий намёк на то что ты ничерта не делаешь
вангую кучу минусов от тех кто ничерта не делает
38
Сижу ночами на двачике =) или что там в моде, давно новости не смотрел
21
Что я делаю не так?
       set oUnitX = GetUnitX(udg_cameraController)
       set oUnitY = GetUnitY(udg_cameraController)
       call MoveLocation(CheckCordOffsetZ,oUnitX,oUnitY)
       set oUnitZ = GetLocationZ(CheckCordOffsetZ)

    call CameraSetupSetField(gameCam,CAMERA_FIELD_ZOFFSET,GetUnitFlyHeight(udg_cameraController)+Zoffset,time)
    call DisplayTimedTextToForce( GetPlayersAll(), 0.24,"oUnitZ: "+ R2S(oUnitZ+GetUnitFlyHeight(udg_cameraController)+Zoffset)+"  CameraTargetZ " +R2S(GetCameraTargetPositionZ()))
Это должно бы выставлять высоту камеры на значение "Zoffset" по отношению к юниту где бы юнит не находился (имеется ввиду высота юнита), но на деле камера съезжает вниз. Насколько я понял - камера движется по рельефу, а летающие юниты по некой плоскости. Что собой представляет эта плоскость? И как с ней взаимодействовать, если конечно я ничего не придумал.

с чего такие выводы??
29
Старый распространненый баг с камерой, которая неадекватно себя ведет рядом с водой?
Вообще, почему у юнита высота отрицательная?
21
Эта плоскость представляет собой нечто вроде полотна на рельефе, и служит для того чтобы летающие юниты не пропадали внезапно у обрывов. Наверное, если она есть.

alexprey, нет, с водой я еще не работал. Высота отрицательная потому что его координата Z ниже 0. А какие проблемы могут быть с водой? Уровень воды ведь всегда одинаков. Имхо ЭТО проблема и если с ней разобраться, то пофиксить поведение камеры на воде не составит труда. Даже есть каким-то образом уровень воды будет разным в нескольких участках карты.

Ну высота отрицательная потому что:
oUnitZ+GetUnitFlyHeight(udg_cameraController)+Zoffset < 0
Что такое " oUnitZ" описал выше.

И кстати, функция "GetCameraTargetPositionZ()" возвращает высоту камеры над рельефом или относительно системы координат карты?

Напрягает то, что в некоторых местах всё работает превосходно, а в других случается такое:

кат
Загруженные файлы
21
И кстати, функция "GetCameraTargetPositionZ()" возвращает высоту камеры над рельефом или относительно системы координат карты?
Возвращает положение относительно координат карты
28
RiseD, Z рельефа в воде равна Z рельефа дна
хотя высота юнита считается не от дна а от поверхности воды
у меня из за этого проблемы были с движением снарядов над водой
21
Нашел тут статью, но кое-где автор пишет явный бред.
Мне бы пригодились образцы камер, привинченных к летающим юнитам. Даже видел нечто подобное на ютубе когда-то. Не могу понять как это сделать.

Может уже чего нашли за 12 лет ковыряний
Нашел ту карту. Пока не разобрался, но главное что это возможно.
38
Тебе надо сложить высоту локации с высотой юнита. Но зачем все это, когда есть dgui, или посмотри как в кампании джека я это делал
Я уде не помню, как заставить камеру не оьращать внимание на рельеф
21
ScorpioT1000, мне нужно чтоб камера реагировала не на рельеф (это уже сделано), а на настоящую высоту юнита, которая предположительно зависит от деформирующего фактора некой невидимой/неописанной карты высот/маски, по которой передвигаются летающие юниты.
28
RiseD, столько бреда за раз я давно не слышал
location lguz=Location(0,0);
unit myunit= // юнит к которому крепим камеру

define height=1800 //высота камеры относительно юнита

float GetZ(float x,float y){
    MoveLocation(lguz,x,y);
    return GetLocationZ(lguz);
}

void Update(){ // эту функцию вешаем на таймер с периодом 0,025
    float z=GetZ(GetUnitX(myunit),GetUnitY(myunit));
    if(z<0){
        z=0;
    }
    if(GetOwningPlayer(myunit)==GetLocalPlayer()){
        ResetToGameCamera(0);
        SetCameraField(CAMERA_FIELD_TARGET_DISTANCE,z+GetUnitFlyHeight(myunit)+height,0);
        SetCameraTargetController(myunit,0,z/2,false);
    }
}
пишу по памяти но вроде работает
21
nvc123, размести юнита с фиксированной высотой полёта в эдиторе - его высота будет напрямую зависеть от рельефа, но в игре высота его полёта зависит не только от рельефа. В остальном да - весьма вероятно что я написал бред. Сейчас проверю что вышло.
24
nvc123, в зависимости от типа передвижения еще может применяться интерполяция на перепадах высоты, была у меня когда-то проблема с этим, когда я систему снарядов делал.
21
nvc123, твоя штука устанавливает высоту камеры над юнитом на высоту точки рельфа под юнитом. Это не правильно.

prog, как решил?
24
RiseD, это лет пять назад было, если не больше, не помню уже. Скорее всего экспериментами с типом движения, но это работает для снарядов, но не очень применимо для всего остального.
21
prog, если ты про добавление/удаление морфа ворона, то это не оно. Оно не применимо к камере. А вот об интерполяции я бы почитал. Есть какой-либо материал по этой теме?
28
RiseD, я проверил свой код
он нормально работает над рельефом, водой и преградами(декор/юниты)
хз что тебе ещё надо
prog, сдвиг по y сглаживает последствия интерполяции для камеры
RiseD:
А вот об интерполяции я бы почитал. Есть какой-либо материал по этой теме?
какой материал
при большом перепаде высот летающие юниты используют интерполяцию чтобы не сразу падать вниз как камень а плавно опускаться
длится подобный эффект недолго
и при использовании сдвига по y почти не отражается на камере
21
Мне нужно настроить параметр "CAMERA_FIELD_ZOFFSET", а не "CAMERA_FIELD_TARGET_DISTANCE". Какой сдвиг? от чего зависит величина этого сдвига?
28
RiseD, ты мой код хоть тестировал?
и читал его?
или увидел 1 параметр и сразу кричать код гамно
судя по тому что ты писал до того как начать нести всякую херь тебе надо чтобы летающий юнит всегда был в центре камеры и не выходил за её пределы вне зависимости от того над чем он летит
я прав?
если нет то объясни нормально что должно получится
не прибегая к тому что тебе кажется или ты подумал
просто скажи как должен выглядеть результат
ибо в твоих комментах дофига того как по твоему всё работает но нету нигде того что должно быть на выходе (а ведь начинать надо с конца, тоесть с чёткого осознания того как будет выглядеть результат)
21
nvc123, пожалуйста скинь карту на которой ты это тестил.

судя по тому что ты писал до того как начать нести всякую херь тебе надо чтобы летающий юнит всегда был в центре камеры и не выходил за её пределы вне зависимости от того над чем он летит
Ты прав, нужно чтобы чтобы камера всегда была на какой-то высоте над юнитом. Где бы он не находился. Я уже упоролся с этой камерой -_-
28
RiseD, так на высоте или чтобы юнит был в центре камеры?
камера в вар3 находится под наклоном и поэтому вполне возможно что при правильной высоте юнит будет вне камеры
Загруженные файлы
Чтобы оставить комментарий, пожалуйста, войдите на сайт.