Персонаж для 3Д платформера. Анимация персонажа и управление им.




1. Моделирование персонажа. Делаем персонажа простого, чтобы и анимировать его было просто.

2. Раскрашиваем персонажа материалами

3. Создание скелета

 

 

если симметрия костей происходит не по той оси, то лучше всего просто повернуть вашего персонажа по оси z на 90 градусов

 

4. Анимация. Делаем две анимации, на одном таймлайне. Анимация дыхания (Idle) - оно и движение - и анимация действия (Action).

Idle обязательно должен быть цикличным, то есть первый кадр, равен последнему. То же самое лучше сделать и с Action. МЕНЯЕМ ПОЛОЖЕНИЕ КОСТЕЙ И СТАВИМ КЛЮЧИ ТОЛЬКО ПО ПОВОРОТУ (ROTATION)

a) В режиме Pose Mode сначала ставим в первоначально положение кости. Выделяем все кости скелета (A) и ставим ключевой кадр по повороту (первый). Курсор в 3D-View, нажимаем I->Rotation

б) Меняем текущий кадр, меняем положения для костей, фиксируем новым ключевым кадром. На картинке про одно ушко, надо сделать для второго, только с углом -15 градусов. Или у вас может углы наоборот.

в) копируем первый ключевой кадр в последний.

д) то же самое сделать и для Action дальше по таймлайну. Ключи ставьте на ровные кадры, чтобы их легко было запомнить. Ключи в Dope Sheet можно перемещать с помощью клавиши G или скейлить расстояние между ключами с помощью S.

 

5. Экпорт из blender и импорт в Unity.

Для начала удалите из сцены все лишнее. Камеру и источник света. Теперь экпортируем файл в формат fbx

 

В Unity можно fbx перетащить из папки проводника в Project либо перейти в Assets->Import Assets и там найти своего персонажа

 

5. Натсройки анимаций

Не забываем, что Idle цикличная анимация, ставим галочку Loop Time

Применяем все изменения. Кнопка Apple внизу, либо Unity сам предложить вам это сделать

Вид префаба изменился. Появились наши клипы.

6. Воспроизведение анимации дыхания в игре.

В Project нажимаем ПКМ и создаем Аниматор КОнтроллер

Называем его соответсвенно. Вытаскиваем персонажа в сцену. Выделяем персонажа и назначаем в компонент Аниматор, напротив параметра контроллер созданный нами аниматор. Либо перетаскиваем его напротив этого парметра из Project.

 

Настроить Action добавить связи это дз. Пока их делать не надо.

 

 

7. Настройка персонажа в сцене. Add Component и в поисковике вбиваем компоненты: Box Collider, Box Collider, Rigid Body. Настраиваем Box Collider’ы

.

8. Настройка платформы.

8. Скрипт движения персонажа.

Создаем скрипт PlayerController

Текст:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

 

public class PlayerController: MonoBehaviour {

public Camera cam; //переменная камеры, чтобы камера двигалась за нами но не вертилась вместе с персом

bool ground;//переменная определяет на земле мы или нет

Rigidbody rb;//переменная хранит данные физики, нужна для прыжка, так как прыжок это задание какого-то ускорения вверх

void Start () {

rb=GetComponent<Rigidbody>();//инициализируем необходимые переменные

}

 

// Update is called once per frame

void Update () {

transform.position += Vector3.forward * Input.GetAxis ("Horizontal")* 0.3f;//перемещение вперед назад, 0.3f скорость движения

//хоризонтал хранит события нажатие кнопок A и D и стрелочек влево вправо

if (ground&&Input.GetKeyDown(KeyCode.W)) {//если нажата W

rb.AddForce (transform.up * 5f, ForceMode.Impulse);//прыжок. 5f сила прыжка

}

cam.transform.position = new Vector3(transform.position.x+10, transform.position.y, transform.position.z);//перемещение камеры.

//+10 смещение камеры по X

//можно изменить смещение и добавить смещения и по другим осям

}

 

void OnTriggerEnter (Collider col)//когда касаемся земли

{

if (col.tag == "Ground") {

ground = true;//на земле

}

}

void OnTriggerExit(Collider col)//когда подпрыгиваем

{

if (col.tag == "Ground") {//не на земле.

ground = false;

}

}

}

 

 

Скрипт назначаем на персонажа. Напротив параметра Cam указываем камеру в сцене. (Ее можно перетащить из Hierarchy)

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: