Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 17
  1. #1
    Аватар для Skipter
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.10.2016
    Сообщений
    41
    Репутация:
    0 ±

    Полет камеры к актеру.

    Представим ситуацию. Я подошел к актеру, нажал на F(это пример) и камера сдвинулась так, что бы видно было только лицо и руки актера. Натолкните, пожалуйста, на решения проблемы.

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Проверка расстояния до актёра + InterpolateCameraPos/InterpolateCameraLookAt?
    Если актёры всегда на месте стоят и знания тригонометрии не позволяют, можно координаты вручную подобрать легко.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  3. #3
    Аватар для Skipter
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.10.2016
    Сообщений
    41
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Проверка расстояния до актёра + InterpolateCameraPos/InterpolateCameraLookAt?
    Если актёры всегда на месте стоят и знания тригонометрии не позволяют, можно координаты вручную подобрать легко.
    Актер стоит. Знания тригонометрии на нуле(именно в программировании, в жизни вроде нормально). C подбором координат надо будет день убить...

  4. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Skipter Посмотреть сообщение
    Актер стоит. Знания тригонометрии на нуле(именно в программировании, в жизни вроде нормально). C подбором координат надо будет день убить...
    А тригонометрия в программировании как-то отличается от тригонометрии в жизни?
    Ну так узнавай в каком направлении смотрит актёр через GetPlayerCameraFrontVector и выссчитывай положение для камеры
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  5. #5
    Аватар для Skipter
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.10.2016
    Сообщений
    41
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    А тригонометрия в программировании как-то отличается от тригонометрии в жизни?
    Ну так узнавай в каком направлении смотрит актёр через GetPlayerCameraFrontVector и выссчитывай положение для камеры
    Может будет проще через GetActorPos/GetPlayerPos? Камера смотрит в центр актера и чуть вперед актера даже если я поставлю -10, -20, -30.
    Код HTML:
    GetActorPos(Actor[1], a_x, a_y, a_z);
    GetPlayerPos(playerid, p_x, p_y, p_z);
    InterpolateCameraPos(playerid, p_x, p_y, p_z, a_x, a_y, a_z, 1000);
    InterpolateCameraLookAt(playerid, p_x, p_y, p_z, a_x, a_y-50, a_z, 1000);

  6. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Skipter Посмотреть сообщение
    Может будет проще через GetActorPos/GetPlayerPos? Камера смотрит в центр актера и чуть вперед актера даже если я поставлю -10, -20, -30.
    Код HTML:
    GetActorPos(Actor[1], a_x, a_y, a_z);
    GetPlayerPos(playerid, p_x, p_y, p_z);
    InterpolateCameraPos(playerid, p_x, p_y, p_z, a_x, a_y, a_z, 1000);
    InterpolateCameraLookAt(playerid, p_x, p_y, p_z, a_x, a_y-50, a_z, 1000);
    z координату нужно менять.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. #7
    Аватар для Skipter
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.10.2016
    Сообщений
    41
    Репутация:
    0 ±
    http://imgur.com/RFbuGU5
    Поменял..

    - - - Добавлено - - -

    a_y-180, a_z+10
    не поставлю y - смотрит влево.

  8. #8
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Ну так подбери правильные смещения для координат и будет тебе счастье.
    PHP код:
    CMD:cam(playeridparams[])
    {
        new 
            
    Float:cam_pos_x,
            
    Float:cam_pos_y,
            
    Float:cam_pos_z;
        
    sscanf(params"p<,>F(0.0)F(0.0)F(0.0)"cam_pos_xcam_pos_ycam_pos_z);
        
    GetActorPos(Actor[1], a_xa_ya_z);
        
    GetPlayerPos(playeridp_xp_yp_z);
        
    InterpolateCameraPos(playeridp_xp_yp_za_xa_ya_z1000);
        
    InterpolateCameraLookAt(playeridp_xp_yp_za_x+cam_pos_xa_y+cam_pos_ya_z+cam_pos_z1000);

    И прямо в игре играйся с координатами
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  9. #9
    Аватар для Skipter
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.10.2016
    Сообщений
    41
    Репутация:
    0 ±
    Попробуем поиграться.

    UPD:не добился нужного результата
    Последний раз редактировалось Skipter; 09.12.2016 в 15:49.

  10. #10
    Аватар для Skipter
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.10.2016
    Сообщений
    41
    Репутация:
    0 ±
    Есть еще варианты?
    Код HTML:
    stock CameraToActor
    	(playerid, Float:px, Float:py, Float:pz, Float:ax, Float:ay, Float:az, Float:angle,time = 1000)
    {
        new
            Float:fy,
            Float:fz;
            
        fy = ay - floatsin(angle, degrees); 
        fz = az + floatcos(angle, degrees);
        
        InterpolateCameraPos(playerid, px, py, pz, ax, ay, az, time);
        InterpolateCameraLookAt(playerid, px, py, pz, ax, ay-fy, az+fz, time);
        
        return true;
    }
    Что не так сделал? Help...
    Последний раз редактировалось Skipter; 09.12.2016 в 21:46.

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •