Контроллер персонажа от третьего лица - Форум Игроделов
Пн, 20 Май 2024, 00:43 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Контроллер персонажа от третьего лица (поиск готового решения)
Контроллер персонажа от третьего лица
NapalmRainДата: Пн, 02 Дек 2013, 13:16 | Сообщение # 1
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Доброго всем времени суток!

Есть необходимость в качественном контроллере персонажа от третьего лица.
Стандартный контроллер юнити не устраивает по многим параметрам. Пробовал написать свой, (тут) получилось, конечно, но всё это наколеночная самоделка.
Если есть у кого подобного рода контроллер, был бы чрезвычайно признателен.

Добавлено (02 Дек 2013, 13:16)
---------------------------------------------
Основной проблемой стандартного контроллера персонажа на мой взгляд является камера.
Собственно нашёл решение этой проблемы, если кому-то интересно: видео на ютуб
Буквально сегодня-завтра постараюсь на основе этого видео набросать собственный контроллер.

Однако, вопрос оставляю открытым. Если есть уже готовые решения, буду благодарен!

 
СообщениеДоброго всем времени суток!

Есть необходимость в качественном контроллере персонажа от третьего лица.
Стандартный контроллер юнити не устраивает по многим параметрам. Пробовал написать свой, (тут) получилось, конечно, но всё это наколеночная самоделка.
Если есть у кого подобного рода контроллер, был бы чрезвычайно признателен.

Добавлено (02 Дек 2013, 13:16)
---------------------------------------------
Основной проблемой стандартного контроллера персонажа на мой взгляд является камера.
Собственно нашёл решение этой проблемы, если кому-то интересно: видео на ютуб
Буквально сегодня-завтра постараюсь на основе этого видео набросать собственный контроллер.

Однако, вопрос оставляю открытым. Если есть уже готовые решения, буду благодарен!


Автор - NapalmRain
Дата добавления - 02 Дек 2013 в 13:16
игнатДата: Пн, 02 Дек 2013, 14:14 | Сообщение # 2
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Да, решений - огромное количество, прямопропорционально кол-ву игр сейчас популярной тупой ветви развития MMO -- RPG, в особенности - про средневековье. Зайдите хотя-бы на assetstor.unity и посмотрите там, а если хотите что-то бесплатное оттуда - то вступайте в наш клуб...


Правила форума · участник GCC
 
СообщениеДа, решений - огромное количество, прямопропорционально кол-ву игр сейчас популярной тупой ветви развития MMO -- RPG, в особенности - про средневековье. Зайдите хотя-бы на assetstor.unity и посмотрите там, а если хотите что-то бесплатное оттуда - то вступайте в наш клуб...

Автор - игнат
Дата добавления - 02 Дек 2013 в 14:14
NapalmRainДата: Пн, 02 Дек 2013, 14:51 | Сообщение # 3
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Цитата игнат ()
Да, решений - огромное количество

Ну я ни капельки не спорю, но вот с поиском бесплатных решений есть маленькая проблемка (ну или у меня руки кривые и я искать не умею(не исключаю))
Цитата игнат ()
то вступайте в наш клуб...

Если можно, по этому поводу немного по подробнее. А то тут вообще не в курсе, что откуда растёт.
 
Сообщение
Цитата игнат ()
Да, решений - огромное количество

Ну я ни капельки не спорю, но вот с поиском бесплатных решений есть маленькая проблемка (ну или у меня руки кривые и я искать не умею(не исключаю))
Цитата игнат ()
то вступайте в наш клуб...

Если можно, по этому поводу немного по подробнее. А то тут вообще не в курсе, что откуда растёт.

Автор - NapalmRain
Дата добавления - 02 Дек 2013 в 14:51
игнатДата: Пн, 02 Дек 2013, 15:00 | Сообщение # 4
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Клуб - основной раздел сайта, ядро, форум - лишь часть.
Поищите - посмотрите, камера вообще достаточно просто делается. Как правило проблем с 3rd контроллерами возникать не должно. А вот с реалистичными fps контроллерами... там и кодинг, и анимация, и гейм-дизанинг нужен.



Правила форума · участник GCC
 
СообщениеКлуб - основной раздел сайта, ядро, форум - лишь часть.
Поищите - посмотрите, камера вообще достаточно просто делается. Как правило проблем с 3rd контроллерами возникать не должно. А вот с реалистичными fps контроллерами... там и кодинг, и анимация, и гейм-дизанинг нужен.

Автор - игнат
Дата добавления - 02 Дек 2013 в 15:00
NapalmRainДата: Сб, 25 Янв 2014, 15:00 | Сообщение # 5
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Цитата игнат ()
Клуб - основной раздел сайта, ядро, форум - лишь часть.

Благодарю!
Но по характеристикам не подхожу...Есть, как говорится, к чему стремиться.

Добавлено (25 Янв 2014, 15:00)
---------------------------------------------
И снова вынужден вернуться к этому вопросу.
Камеру пока отложил, хочу реализовать для начала нормальное управление.

С хождением прямо назад и вбок проблем нет, есть проблемка с прыжком.
Состоит она в следующем:

Что бы прыгнуть нужно плавно подняться на определённую высоту, использую для этого Vector3.Lerp
Но никак не могу придумать, как это реализовать грамотнее.
Решил завести булеву переменную, которая говорит что нужно прыгнуть.
Если она тру, то прыгаем, пока не допрыгнем, как допрыгнули, присваиваем false.
Ну почему-то она никогда не присваивается false.
На персонаже установлен RigitBody, возможно проблема в этом и он просто не даёт ей долететь, роняя раньше.

Прошу подсказки.
Вот скрипт:

Код
using UnityEngine;
using System.Collections;

public class PersonalController : MonoBehaviour {
  private GameObject player;
  public GameObject PersModel;
  private bool needJump = false;
  private bool startJump = false;
  public int speed = 5;
  public Camera camera;
  private float startPosY;
  public int speedRotation = 5;
  public int jumpSpeed = 5;
  // Use this for initialization
  void Start () {
   player = (GameObject)this.gameObject;
  }
   
  // Update is called once per frame
  void Update () {
   if (needJump) {
    if (player.transform.position.y<startPosY) {
     PersModel.animation.Blend("jump");
     PersModel.animation.Blend("fall");
     player.transform.position = Vector3.Lerp(player.transform.position,new Vector3(player.transform.position.x,startPosY,player.transform.position.z), Time.deltaTime);
    } else {
     needJump = false;
    }
   } else {
    if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow)){  
     player.transform.position += player.transform.forward * speed * Time.deltaTime;
     if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)){  
      player.transform.Rotate(Vector3.down * speedRotation);
     }
     if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)){
      player.transform.Rotate(Vector3.up * speedRotation);
     }
      
     if (Input.GetKeyDown(KeyCode.Space)){
      startPosY = player.transform.position.y+jumpSpeed;
      needJump = true;
     } else {
      PersModel.animation.Play("walk");
     }
    } else if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow)){  
     player.transform.position -= player.transform.forward * speed * Time.deltaTime;
     PersModel.animation.Play("walk");
    } else if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)){  
     player.transform.Rotate(Vector3.down * speedRotation);
     PersModel.animation.Play("walk");
    } else if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)){
     player.transform.Rotate(Vector3.up * speedRotation);
     PersModel.animation.Play("walk");
    } else if (Input.GetKeyDown(KeyCode.Space)){
     startPosY = player.transform.position.y+jumpSpeed;
     needJump = true;
    } else {
     PersModel.animation.Play("idle");
    }
   }
  }
}


Заранее благодарю!
 
Сообщение
Цитата игнат ()
Клуб - основной раздел сайта, ядро, форум - лишь часть.

Благодарю!
Но по характеристикам не подхожу...Есть, как говорится, к чему стремиться.

Добавлено (25 Янв 2014, 15:00)
---------------------------------------------
И снова вынужден вернуться к этому вопросу.
Камеру пока отложил, хочу реализовать для начала нормальное управление.

С хождением прямо назад и вбок проблем нет, есть проблемка с прыжком.
Состоит она в следующем:

Что бы прыгнуть нужно плавно подняться на определённую высоту, использую для этого Vector3.Lerp
Но никак не могу придумать, как это реализовать грамотнее.
Решил завести булеву переменную, которая говорит что нужно прыгнуть.
Если она тру, то прыгаем, пока не допрыгнем, как допрыгнули, присваиваем false.
Ну почему-то она никогда не присваивается false.
На персонаже установлен RigitBody, возможно проблема в этом и он просто не даёт ей долететь, роняя раньше.

Прошу подсказки.
Вот скрипт:

Код
using UnityEngine;
using System.Collections;

public class PersonalController : MonoBehaviour {
  private GameObject player;
  public GameObject PersModel;
  private bool needJump = false;
  private bool startJump = false;
  public int speed = 5;
  public Camera camera;
  private float startPosY;
  public int speedRotation = 5;
  public int jumpSpeed = 5;
  // Use this for initialization
  void Start () {
   player = (GameObject)this.gameObject;
  }
   
  // Update is called once per frame
  void Update () {
   if (needJump) {
    if (player.transform.position.y<startPosY) {
     PersModel.animation.Blend("jump");
     PersModel.animation.Blend("fall");
     player.transform.position = Vector3.Lerp(player.transform.position,new Vector3(player.transform.position.x,startPosY,player.transform.position.z), Time.deltaTime);
    } else {
     needJump = false;
    }
   } else {
    if (Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow)){  
     player.transform.position += player.transform.forward * speed * Time.deltaTime;
     if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)){  
      player.transform.Rotate(Vector3.down * speedRotation);
     }
     if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)){
      player.transform.Rotate(Vector3.up * speedRotation);
     }
      
     if (Input.GetKeyDown(KeyCode.Space)){
      startPosY = player.transform.position.y+jumpSpeed;
      needJump = true;
     } else {
      PersModel.animation.Play("walk");
     }
    } else if (Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow)){  
     player.transform.position -= player.transform.forward * speed * Time.deltaTime;
     PersModel.animation.Play("walk");
    } else if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)){  
     player.transform.Rotate(Vector3.down * speedRotation);
     PersModel.animation.Play("walk");
    } else if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)){
     player.transform.Rotate(Vector3.up * speedRotation);
     PersModel.animation.Play("walk");
    } else if (Input.GetKeyDown(KeyCode.Space)){
     startPosY = player.transform.position.y+jumpSpeed;
     needJump = true;
    } else {
     PersModel.animation.Play("idle");
    }
   }
  }
}


Заранее благодарю!

Автор - NapalmRain
Дата добавления - 25 Янв 2014 в 15:00
seamanДата: Сб, 25 Янв 2014, 19:54 | Сообщение # 6
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Хм, не помню давал Вам эту ссылку, иди нет.
Читали ЭТО?
 
СообщениеХм, не помню давал Вам эту ссылку, иди нет.
Читали ЭТО?

Автор - seaman
Дата добавления - 25 Янв 2014 в 19:54
NapalmRainДата: Сб, 25 Янв 2014, 21:58 | Сообщение # 7
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Цитата seaman ()
Хм, не помню давал Вам эту ссылку, иди нет.
Читали ЭТО?

Не помню, Вы давали или нет, может находил сам, но читал. Правда было это давно и уже тогда мне сказали ,что методы используемые в данных уроках устарели, посему я благополучно просто забыл об этом сайте.
Надо будет перечитать на досуге...
 
Сообщение
Цитата seaman ()
Хм, не помню давал Вам эту ссылку, иди нет.
Читали ЭТО?

Не помню, Вы давали или нет, может находил сам, но читал. Правда было это давно и уже тогда мне сказали ,что методы используемые в данных уроках устарели, посему я благополучно просто забыл об этом сайте.
Надо будет перечитать на досуге...

Автор - NapalmRain
Дата добавления - 25 Янв 2014 в 21:58
seamanДата: Вс, 26 Янв 2014, 00:05 | Сообщение # 8
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
методы устарели, но Вы же в своих скриптах их используете.
 
Сообщениеметоды устарели, но Вы же в своих скриптах их используете.

Автор - seaman
Дата добавления - 26 Янв 2014 в 00:05
NapalmRainДата: Вс, 26 Янв 2014, 00:25 | Сообщение # 9
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Цитата seaman ()
методы устарели, но Вы же в своих скриптах их используете.

Ну я использую то, чему успел научиться. Пакет знаний, скажем так, не велик.
Но если есть какие-то более современные варианты, я был бы чрезвычайно признателен на направление!
 
Сообщение
Цитата seaman ()
методы устарели, но Вы же в своих скриптах их используете.

Ну я использую то, чему успел научиться. Пакет знаний, скажем так, не велик.
Но если есть какие-то более современные варианты, я был бы чрезвычайно признателен на направление!

Автор - NapalmRain
Дата добавления - 26 Янв 2014 в 00:25
ЛевшаДата: Вс, 26 Янв 2014, 00:43 | Сообщение # 10
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата seaman ()
методы устарели

Какие именно ?


X.cor.R (Prologue)
 
Сообщение
Цитата seaman ()
методы устарели

Какие именно ?

Автор - Левша
Дата добавления - 26 Янв 2014 в 00:43
AltairДата: Вс, 26 Янв 2014, 02:11 | Сообщение # 11
Unity 3D PRO Developer
 
Сообщений: 758
Награды: 6
Репутация: 195
Статус: Offline
https://www.assetstore.unity3d.com/#/content/14474
 
Сообщениеhttps://www.assetstore.unity3d.com/#/content/14474

Автор - Altair
Дата добавления - 26 Янв 2014 в 02:11
seamanДата: Вс, 26 Янв 2014, 10:49 | Сообщение # 12
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
Какие именно ?

Ну мне, например сложные переходы между анимациями гораздо легче делать в Меканим, чем Легаси. В том цикле было сделано не больше десятой части всего, что должно быть в нормальной РПГ игре, а я уже начал путаться в машине состояний. В Меканим это делается элементарно.
Потому и считаю, что для той цели, что была поставлена стандартны методы управления анимациями - устарели.
 
Сообщение
Цитата
Какие именно ?

Ну мне, например сложные переходы между анимациями гораздо легче делать в Меканим, чем Легаси. В том цикле было сделано не больше десятой части всего, что должно быть в нормальной РПГ игре, а я уже начал путаться в машине состояний. В Меканим это делается элементарно.
Потому и считаю, что для той цели, что была поставлена стандартны методы управления анимациями - устарели.

Автор - seaman
Дата добавления - 26 Янв 2014 в 10:49
NapalmRainДата: Пн, 27 Янв 2014, 07:44 | Сообщение # 13
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Благодарю всех за ответы.
Устаревшими методами или нет, но цели я своей добился.
Остался на данным момент один вопрос: Как "отпустить" модель, что бы она просто упала под собственной тяжестью, пусть даже не реалистично. Модель с привязанным скелетом. Какие для этого нужно выполнить манипуляции?
С удовольствием бы попробовал найти ответ самостоятельно, но, увы, я даже не знаю, что вписывать в запрос...
Заранее благодарю!
 
СообщениеБлагодарю всех за ответы.
Устаревшими методами или нет, но цели я своей добился.
Остался на данным момент один вопрос: Как "отпустить" модель, что бы она просто упала под собственной тяжестью, пусть даже не реалистично. Модель с привязанным скелетом. Какие для этого нужно выполнить манипуляции?
С удовольствием бы попробовал найти ответ самостоятельно, но, увы, я даже не знаю, что вписывать в запрос...
Заранее благодарю!

Автор - NapalmRain
Дата добавления - 27 Янв 2014 в 07:44
ЛевшаДата: Пн, 27 Янв 2014, 14:49 | Сообщение # 14
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата NapalmRain ()
Как "отпустить" модель, что бы она просто упала под собственной тяжестью, пусть даже не реалистично.

Ну или сделать еще анимаци(ю\и) падения, или применить эффект тряпичной куклы.


X.cor.R (Prologue)
 
Сообщение
Цитата NapalmRain ()
Как "отпустить" модель, что бы она просто упала под собственной тяжестью, пусть даже не реалистично.

Ну или сделать еще анимаци(ю\и) падения, или применить эффект тряпичной куклы.

Автор - Левша
Дата добавления - 27 Янв 2014 в 14:49
NapalmRainДата: Пн, 27 Янв 2014, 16:26 | Сообщение # 15
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Цитата Левша ()
или применить эффект тряпичной куклы.

Наверное вот это мне и нужно. Если я правильно понял.
Это не столько для персонажа ,сколько, скорее в дальнейшем для мобов. Часто в играх можно выстрелить, ударить некое животное, монстра так, что оно при этом отлетает, а конечности дёргаются, словно у брошенной марионетки с отрезанными нитями. Вот хотелось бы понять, как добиться данного эффекта.
 
Сообщение
Цитата Левша ()
или применить эффект тряпичной куклы.

Наверное вот это мне и нужно. Если я правильно понял.
Это не столько для персонажа ,сколько, скорее в дальнейшем для мобов. Часто в играх можно выстрелить, ударить некое животное, монстра так, что оно при этом отлетает, а конечности дёргаются, словно у брошенной марионетки с отрезанными нитями. Вот хотелось бы понять, как добиться данного эффекта.

Автор - NapalmRain
Дата добавления - 27 Янв 2014 в 16:26
ЛевшаДата: Пн, 27 Янв 2014, 17:19 | Сообщение # 16
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
Цитата NapalmRain ()
как добиться данного эффекта

Подменить модель - моделью с регдолом.


X.cor.R (Prologue)
 
Сообщение
Цитата NapalmRain ()
как добиться данного эффекта

Подменить модель - моделью с регдолом.

Автор - Левша
Дата добавления - 27 Янв 2014 в 17:19
NapalmRainДата: Пн, 27 Янв 2014, 17:56 | Сообщение # 17
 
Сообщений: 473
Награды: 0
Репутация: 31
Статус: Offline
Цитата Левша ()
Подменить модель - моделью с регдолом.

Благодарю за ответ.
Я так понимаю, что подмена модели обязательна? Если да, то
думаю, на этом тему можно закрывать. Дальше разберусь уже самостоятельно.
 
Сообщение
Цитата Левша ()
Подменить модель - моделью с регдолом.

Благодарю за ответ.
Я так понимаю, что подмена модели обязательна? Если да, то
думаю, на этом тему можно закрывать. Дальше разберусь уже самостоятельно.

Автор - NapalmRain
Дата добавления - 27 Янв 2014 в 17:56
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Контроллер персонажа от третьего лица (поиск готового решения)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024