Разработка и создание сайтов

Продвижение сайтов в Краснодаре

Реклама и продвижение в Интернете

(861) 247-66-19
Отправить заявку

Unity. #1 Создание песонажа

Предварительная настройка Unity

  1. Устанавливаем Unity 2019.3.10f1
  2. Загружаем в Asset Store -> Standart Assets и Terrain Tools.
  3. Загружаем Window->Package Manager->Terrain Tools.

Создание персонажа.

  1. Создадим модель персонажа в Steam -> Fuse.
  2. Выгрузим персонажа в формате OBJ со следующими настройками.
  3. Зажмем файл Obj и текстуры в zip архив.
  4. Загрузим данный архив на сайт mixamo.com щелкнув на кнопку upload character.
  5. После окончания обработки разместим точки на модели для содания скелета.
  6. Перейдем в анимацию и выбирем нужные анимации: Idle (поза покоя), Run (бег), Walk (прогулка), Jump (прыжок) и другие необходимые, установите галочку In Place (на месте) и выгрузите данную анимацию в формате FBX для Unity.
  7. Для выгрузки модели: выгрузите модель в формате Collada With Skin далее выгружаем в формате FBX for Unity With Skin.
  8. Текстуры из Collata и файл fbx скидываем в одну папку, лишнее удаляем.
  9. В Unity создаем папку _players и выгружаем туда папку с нашим персонажем путем перетаскивания.
  10. Перетаскиваем персонажа на сцену.
  11. Создаем Animator Controller и перетягиваем на персонажа, его будем использовать позже.
  12. Создаем камеру для персонажа, выравниваем ее, ставим за спиной перонажа, помещаем камеру в песонажа.
  13. Добавляем на персонажа Character Controller, меняем параметры Center (X, Y, Z), Radius, Height чтобы персонаж (не учитывая вытянутые руки) был вписан в сферу.
  14. Добавляем элемент RigidBody (физика) на персонажа, устанавливаем массу персонажа, ставим галочки Freeze Rotation на X и Z. Если запустить игру без добавления скрипта персонаж провалится сквозь терейн, чтобы этого не происходило можно добавить Capsule Collider
  15. Добавляем скрипт:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class PlayerController : MonoBehaviour
{
    public float speed = 2f;
    float gravity = 20f;
    Vector3 direction;
    CharacterController controller;
    // Start is called before the first frame update
    void Start()
    {
        controller = GetComponent<CharacterController>();
    }
 
    // Update is called once per frame
    void Update()
    {
        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");
        if (controller.isGrounded){//если на земле
            direction = new Vector3(x,0f,z); //создаем верктор нажатых кнопок
            direction = transform.TransformDirection(direction) * speed;//напраляем вектор по указанным осям
        }
        direction.y -= gravity * Time.deltaTime// применяяем к оси y гравитацию
        controller.Move(direction*Time.deltaTime);//двигаем контроллер по нашему направлению
    }
}

Добавляем скрипт к персонажу и тестируем. Дальше добавим анимацию к персонажу.