поворот персонажа

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

поворот персонажа

Сообщение Богдан всепытный 10 окт 2018, 20:19

У меня есть анимации на персонаже (управляются через animator controller). Проблем в том, что я скачал эти анимации с mixamo, но анимации повёрнуты по диагонали и получается, что с анимацией бега персонаж идёт не вперёд, а по диагонали влево
Я полагаю нужно повернуть персонажа на 45 градусов. Но как это сделать?! (derp)

Скрипт для передвижения
Синтаксис:
Используется csharp
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Movement : MonoBehaviour {
    public Animator anim;
    public CharacterStatus characterStatus;
    public Transform cameraTransform;
    public float rotationSpeed;

    float vertical;
    float horizontal;
    float moveAmount;

    Vector3 rotationDirection;
    Vector3 moveDirection;

    private void Update()
    {
        vertical = Input.GetAxis("Vertical");
        horizontal = Input.GetAxis("Horizontal");
        moveAmount = Mathf.Clamp01(Mathf.Abs(vertical) + Mathf.Abs(horizontal));

        anim.SetFloat("vertical", moveAmount, 0.15f, Time.deltaTime);

        Vector3 moveDir = cameraTransform.forward * vertical;
        moveDir += cameraTransform.right * horizontal;
        moveDir.Normalize();
        moveDirection = moveDir;
        rotationDirection = cameraTransform.forward;

        RotationNormal();
        characterStatus.isGround = Ground();
    }

    public void RotationNormal()
    {
       
        if(!characterStatus.isAiming)
        {
            rotationDirection = moveDirection;
        }

        Vector3 targetDir = rotationDirection;
        targetDir.y = 0;

        if (targetDir == Vector3.zero)
            targetDir = transform.forward;

        Quaternion lookDir = Quaternion.LookRotation(targetDir);
        Quaternion targetRot = Quaternion.Slerp(transform.rotation, lookDir, rotationSpeed);

        transform.rotation = targetRot;
    }

    public bool Ground()
    {
        Vector3 origin = transform.position;
        origin.y += 0.6f;
        Vector3 direction = -Vector3.up;
        float rayDistance = 0.7f;
        RaycastHit hit;
        if(Physics.Raycast(origin, direction, out hit, rayDistance))
        {
            return true;
        }
        return false;
    }
}
 

На всякий случай, полный проект https://yadi.sk/d/QaG5gBvkSBVGJA
vk.com/bogdanhacker
Аватара пользователя
Богдан всепытный
UNец
 
Сообщения: 7
Зарегистрирован: 10 окт 2018, 19:32
Откуда: Россия, Липецк

Re: поворот персонажа

Сообщение waruiyume 10 окт 2018, 20:43

Поворот можно профиксить в настройках импорта анимации, как точно не скажу, ибо сам методом тыка всегда это делаю.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: поворот персонажа

Сообщение Богдан всепытный 10 окт 2018, 21:06

Что-то тык не помогает (popcorn)
Аватара пользователя
Богдан всепытный
UNец
 
Сообщения: 7
Зарегистрирован: 10 окт 2018, 19:32
Откуда: Россия, Липецк

Re: поворот персонажа

Сообщение waruiyume 10 окт 2018, 21:26

Вы только модель и анимацию расшарьте, 300+ метров качать не вариант.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: поворот персонажа

Сообщение Богдан всепытный 10 окт 2018, 21:34

Вот https://yadi.sk/d/cb5AZQnB-ftq1g 2 анимации. У меня их 45, если что.
vk.com/bogdanhacker
Аватара пользователя
Богдан всепытный
UNец
 
Сообщения: 7
Зарегистрирован: 10 окт 2018, 19:32
Откуда: Россия, Липецк

Re: поворот персонажа

Сообщение waruiyume 10 окт 2018, 22:25

Х.З. как я её не крутил всё одно хрень получается, что-то мне подсказывает, что анимация называется неправильно и в ней как-раз и есть бег по диагонали.
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: поворот персонажа

Сообщение Богдан всепытный 10 окт 2018, 22:28

Опаньки, анимация прямого бега называется run forward right :D
хз как такое произошло.
[V]
vk.com/bogdanhacker
Аватара пользователя
Богдан всепытный
UNец
 
Сообщения: 7
Зарегистрирован: 10 окт 2018, 19:32
Откуда: Россия, Липецк

Re: поворот персонажа

Сообщение Богдан всепытный 10 окт 2018, 22:29

Кстати, cyberforum гораздо удобнее чем этот странный сайт. Но там по unity очень плохо помогают (будешь год ждать ответа) :(
vk.com/bogdanhacker
Аватара пользователя
Богдан всепытный
UNец
 
Сообщения: 7
Зарегистрирован: 10 окт 2018, 19:32
Откуда: Россия, Липецк

Re: поворот персонажа

Сообщение Богдан всепытный 11 окт 2018, 01:17

waruiyume писал(а):Х.З. как я её не крутил всё одно хрень получается, что-то мне подсказывает, что анимация называется неправильно и в ней как-раз и есть бег по диагонали.

Оууууу, всего лишь нужно было скачать анимации не fbx для unity, а обычный fbx. Он стал ходить строго вперёд, идеально 8()
vk.com/bogdanhacker
Аватара пользователя
Богдан всепытный
UNец
 
Сообщения: 7
Зарегистрирован: 10 окт 2018, 19:32
Откуда: Россия, Липецк

Re: поворот персонажа

Сообщение Cr0c 11 окт 2018, 01:57

Богдан всепытный писал(а):Кстати, cyberforum гораздо удобнее чем этот странный сайт. Но там по unity очень плохо помогают (будешь год ждать ответа) :(

Ну так там и средний уровень ниже ))
Аватара пользователя
Cr0c
Адепт
 
Сообщения: 3035
Зарегистрирован: 19 июн 2015, 13:50
Skype: cr0c81

Re: поворот персонажа

Сообщение Богдан всепытный 11 окт 2018, 13:06

Cr0c, привет! Ты ж ведь на киберфоруме постоянно сидишь. Я тебя узнал :)
vk.com/bogdanhacker
Аватара пользователя
Богдан всепытный
UNец
 
Сообщения: 7
Зарегистрирован: 10 окт 2018, 19:32
Откуда: Россия, Липецк


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

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

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