Вопрос о прицеливание в 3d person shooter

Общие вопросы о Unity3D

Вопрос о прицеливание в 3d person shooter

Сообщение sawwas 28 окт 2012, 19:33

Доброго всем времени суток, делаю свой первый third person shooter. Замкнуло вот на чем: Не получается сделать прицеливание, поясняю чтобы гнулась спина вверх/вниз и т.д, так вот, как это можно реализовать, я подумывал о привязке костей спины и таза к камере и, соответственно, копировании угла поворота для костей... Может кто-нибудь сталкивался с этим, помогите разобраться пожалуйста....
sawwas
UNец
 
Сообщения: 5
Зарегистрирован: 10 сен 2011, 16:10

Re: Вопрос о прицеливание в 3d person shooter

Сообщение AndreyMust19 28 окт 2012, 19:41

Да пожалуйста, только делайте это в LateUpdate, чтобы не конфликтовать с анимацией. И ограничить повороты не забудьте, чтобы тело не закручивалось в спираль и не загибалось назад под 90 градусов.
Но на мой взгляд, лучше сделать все-таки анимацией, смешиваемой с основной. Метод более сложный и кропотливый, но зато выглядеть будет более достоверно.
Нужна помощь? Сами, сами, сами, сами, сами... делаем все сами
AndreyMust19
Адепт
 
Сообщения: 1119
Зарегистрирован: 07 июн 2011, 13:19

Re: Вопрос о прицеливание в 3d person shooter

Сообщение sawwas 28 окт 2012, 19:47

Никогда не работал с Animation mixing transform, но никогда не поздно научиться, спасибо
sawwas
UNец
 
Сообщения: 5
Зарегистрирован: 10 сен 2011, 16:10

Re: Вопрос о прицеливание в 3d person shooter

Сообщение CoreRaySpark 30 окт 2012, 11:39

Я делал таким образом:

Синтаксис:
Используется javascript
animation["LookUp"].blendMode = AnimationBlendMode.Additive;
animation["LookDown"].blendMode = AnimationBlendMode.Additive;
animation["LookUp"].weight = 1.0;
animation["LookDown"].weight = 1.0;

animation["LookUp"].wrapMode = WrapMode.ClampForever;
animation["LookDown"].wrapMode = WrapMode.ClampForever;

function Look (angle : float)
        {
                if (aiming.transform.rotation.x < 0)
                {
                animation["LookDown"].normalizedTime = 0;
                animation["LookUp"].normalizedTime = (-angle *2);
                }
                else
                {
                animation["LookDown"].normalizedTime = (angle *1.7);
                animation["LookUp"].normalizedTime = 0;
                }
        };


Где аниация lookUp - это анимация из исходного положения тела до вертикальной (задействованы только кости спины и головы)
LookDown - то же, но наоборот

забыл еще сказать - вам надо отталкипаться от каких то данных поворота, замеряя угол и переведя его в значение от 0 до 1
Аватара пользователя
CoreRaySpark
UNец
 
Сообщения: 23
Зарегистрирован: 17 окт 2012, 21:54

Re: Вопрос о прицеливание в 3d person shooter

Сообщение Ashvar 31 окт 2012, 11:34

Эм... а в чём проблема? есть же уже готовые примеры на юнити. http://unity3d.com/support/resources/un ... omotion-ik
По идее логичнее смотреть как там и делать так же. Всё таки там это уже продумано.
Ashvar
UNIт
 
Сообщения: 62
Зарегистрирован: 20 ноя 2011, 16:22


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


cron