Q/A

Добавлен , опубликован
`
ОЖИДАНИЕ РЕКЛАМЫ...
Этот комментарий удален
3
37
9 лет назад
3
4
28
9 лет назад
Отредактирован nvc123
4
ScorpioT1000, лучше триппер чем вообще без секса
если кто не понял то это тонкий намёк на то что ты ничерта не делаешь
вангую кучу минусов от тех кто ничерта не делает
0
37
9 лет назад
0
Сижу ночами на двачике =) или что там в моде, давно новости не смотрел
0
21
9 лет назад
Отредактирован Raised
0
Что я делаю не так?
       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" по отношению к юниту где бы юнит не находился (имеется ввиду высота юнита), но на деле камера съезжает вниз. Насколько я понял - камера движется по рельефу, а летающие юниты по некой плоскости. Что собой представляет эта плоскость? И как с ней взаимодействовать, если конечно я ничего не придумал.

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

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

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

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

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

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

Может уже чего нашли за 12 лет ковыряний
Нашел ту карту. Пока не разобрался, но главное что это возможно.
0
37
9 лет назад
0
Тебе надо сложить высоту локации с высотой юнита. Но зачем все это, когда есть dgui, или посмотри как в кампании джека я это делал
Я уде не помню, как заставить камеру не оьращать внимание на рельеф
0
21
9 лет назад
Отредактирован Raised
0
ScorpioT1000, мне нужно чтоб камера реагировала не на рельеф (это уже сделано), а на настоящую высоту юнита, которая предположительно зависит от деформирующего фактора некой невидимой/неописанной карты высот/маски, по которой передвигаются летающие юниты.
0
28
9 лет назад
Отредактирован nvc123
0
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);
    }
}
пишу по памяти но вроде работает
0
21
9 лет назад
0
nvc123, размести юнита с фиксированной высотой полёта в эдиторе - его высота будет напрямую зависеть от рельефа, но в игре высота его полёта зависит не только от рельефа. В остальном да - весьма вероятно что я написал бред. Сейчас проверю что вышло.
0
28
9 лет назад
0
RiseD, высота полёта зависит от рельефа и высоты
0
24
9 лет назад
0
nvc123, в зависимости от типа передвижения еще может применяться интерполяция на перепадах высоты, была у меня когда-то проблема с этим, когда я систему снарядов делал.
0
21
9 лет назад
Отредактирован Raised
0
nvc123, твоя штука устанавливает высоту камеры над юнитом на высоту точки рельфа под юнитом. Это не правильно.

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

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