Страница 1 из 1

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

СообщениеДобавлено: 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

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

СообщениеДобавлено: 10 окт 2018, 20:43
waruiyume
Поворот можно профиксить в настройках импорта анимации, как точно не скажу, ибо сам методом тыка всегда это делаю.

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

СообщениеДобавлено: 10 окт 2018, 21:06
Богдан всепытный
Что-то тык не помогает (popcorn)

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

СообщениеДобавлено: 10 окт 2018, 21:26
waruiyume
Вы только модель и анимацию расшарьте, 300+ метров качать не вариант.

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

СообщениеДобавлено: 10 окт 2018, 21:34
Богдан всепытный
Вот https://yadi.sk/d/cb5AZQnB-ftq1g 2 анимации. У меня их 45, если что.

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

СообщениеДобавлено: 10 окт 2018, 22:25
waruiyume
Х.З. как я её не крутил всё одно хрень получается, что-то мне подсказывает, что анимация называется неправильно и в ней как-раз и есть бег по диагонали.

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

СообщениеДобавлено: 10 окт 2018, 22:28
Богдан всепытный
Опаньки, анимация прямого бега называется run forward right :D
хз как такое произошло.
[V]

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

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

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

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

Оууууу, всего лишь нужно было скачать анимации не fbx для unity, а обычный fbx. Он стал ходить строго вперёд, идеально 8()

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

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

Ну так там и средний уровень ниже ))

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

СообщениеДобавлено: 11 окт 2018, 13:06
Богдан всепытный
Cr0c, привет! Ты ж ведь на киберфоруме постоянно сидишь. Я тебя узнал :)