Четверг, 06 Мая 2021, 19:44

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Помощь с анимациями
Помощь с анимациями
seamanДата: Среда, 09 Марта 2016, 07:58 | Сообщение # 21
старожил
Сейчас нет на сайте
Зачем два раза подряд параметр то устанавливать?
Вообще - если не можете понять логики попробуйте просто написать словами программу. Ваша "программа".
1. Если нажата кнопка "rotateJoy"
а) Получаем случайное число в нужном диапазоне (0-2).
б) Устанавливаем параметр Меканим в это случайное число. При этом что происходит? Меканим получая это число производит блендинг к анимации соответствующей данному числу threshold.
Разве не этого Вы хотели? Случайным образом выбрать нужную анимацию.
shustr1k76Дата: Среда, 09 Марта 2016, 15:26 | Сообщение # 22
почетный гость
Сейчас нет на сайте
получается я сделал правильно?) за основу взял дефолтную анимацию idel из него сделал дерево - туда добавил две анимации, и на переходах к каждой задал "blend" и определенное число в threshold, тем самым сделал их разными - правильно получается? и всего одна строчка anim.SetInteger("blend", n); оказалась нужной
seamanДата: Среда, 09 Марта 2016, 17:29 | Сообщение # 23
старожил
Сейчас нет на сайте
Ну в итоге правильно
shustr1k76Дата: Пятница, 11 Марта 2016, 18:27 | Сообщение # 24
почетный гость
Сейчас нет на сайте
такой вопрос, как правильно сделать анимацию прыжка? я сделал анимацию прыжка на месте(3д макс), т.е персонаж не подпрыгивает а так скажем делает вид что прыгнит. в юнити я делаю прыжок, но анимация воспроизводится поздно и как то не правильно - в обшем коряво получается)). в одном из уроков от ув. seaman я слышал что можно двигать персонажа анимацией(там было хотьбу), так вот, как же правильно сделать прыжок и его анимацию?
MANMANAДата: Пятница, 11 Марта 2016, 22:32 | Сообщение # 25
почти ветеран
Сейчас нет на сайте
Цитата shustr1k76 ()
я слышал что можно двигать персонажа анимацией(там было хотьбу), так вот, как же правильно сделать прыжок и его анимацию?

записать анимацию движка не на месте, а со смещением, т.е. старт прыжка в точке x1, конец анимации в точке х2. Далее все дело в волшебных флажках bake into pose для Rotation и Positions


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
seamanДата: Суббота, 12 Марта 2016, 00:12 | Сообщение # 26
старожил
Сейчас нет на сайте
Можно и на месте анимировать. В момент прыжка просто толкнуть силой (физикой) вверх.
ShortKedrДата: Суббота, 12 Марта 2016, 00:37 | Сообщение # 27
Renword Studio
Сейчас нет на сайте
Цитата shustr1k76 ()
я слышал что можно двигать персонажа анимацией(там было хотьбу), так вот, как же правильно сделать прыжок и его анимацию?


Есть два варианта:
  • Анимация на месте. То есть передвигать будешь ты, а в анимации нет передвижения
  • Анимация с передвижение объекта. То есть нужно самому перемещать объект в нужную точку после окончания анимации. Конечно это всё есть в Mecanim, но иногда может криво работать(например анимация кривая через-чур). В этом случае лучше самому делать


Сообщение отредактировал ShortKedr - Суббота, 12 Марта 2016, 00:37
shustr1k76Дата: Вторник, 22 Марта 2016, 01:48 | Сообщение # 28
почетный гость
Сейчас нет на сайте
такой вопрос, допустим я игроком подошел к предмету(мяч), как правильно его поднять? Точней где записывать анимацию в юнити? но у меня же есть контроллер настроеный для хотьбы и тд. если я пытаюсь по средством юнити делать анимацию, то мне приходится его отключать и создовать новый, как в обще сделать взаимодействие двух предметов - т.е я подошел своим контроллером, а потом хочу поднять мяч и кинуть. подскажите как сделать по уму в общем!)

Сообщение отредактировал shustr1k76 - Вторник, 22 Марта 2016, 01:55
MANMANAДата: Вторник, 22 Марта 2016, 15:55 | Сообщение # 29
почти ветеран
Сейчас нет на сайте
Inverse Kinematics

http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
shustr1k76Дата: Понедельник, 28 Марта 2016, 15:45 | Сообщение # 30
почетный гость
Сейчас нет на сайте
спасибо

Добавлено (28 марта 2016, 15:45)
---------------------------------------------
такой вопрос, сделал анимацию в 3з максе, чтоб подобрать предмет. проблема в том, что игрок наклоняется к предмету и в это время использую ik http://gcup.ru/publ/gamedev/unity_inversnaja_kinematika_pro_versija/1-1-0-519 руки должны тянутся, к предмету. Но этого не происходит, получается что игрок наклоняется руки не тянутся, а во время анимации нет, пробывал делать маску освобождая руки.

p.s облегчил себе задачу), но теперь другой вопрос. Имеется объект, на нем свой аниматор контроллер(анимации) и скрипт, как из другого скрипта запустить анимацию?
пробывал, передачей bool
скрипт воспроизведения анимации
Код
void Update
  if (goal)  {
   shta.SetBool("proc", true);
  }

передаю так
Код

shtangafor sh;
void start(){
sh = GetComponent<shtangafor> ();}
void Update
{
sh.goal = true;
}

выдает ошибку
NullReferenceException: Object reference not set to an instance of an object
NewBehaviourScript.Update () (at Assets/animations/NewBehaviourScript.cs:62)
типо не существует объект, как так?


Сообщение отредактировал shustr1k76 - Понедельник, 28 Марта 2016, 21:23
MANMANAДата: Вторник, 29 Марта 2016, 02:04 | Сообщение # 31
почти ветеран
Сейчас нет на сайте
мммм...
Overview: Accessing Other Game Objects
?


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
shustr1k76Дата: Вторник, 29 Марта 2016, 09:54 | Сообщение # 32
почетный гость
Сейчас нет на сайте
хм.. теперь так, стал искать по тегу, получать компонент игрока, т.е скрипт, в скрипте указываю на аниматор(shtanga1 = getcomponent<animator) ну и воспроизводить. Ошибка
про нее почитал, предложили решение с тэгом, в общем тоже самое
Cannot implicitly convert type `shtangafor' to `UnityEngine.GameObject'

Код
public GameObject ta;

ta = GameObject.FindGameObjectWithTag ("target").GetComponent<shtangafor> ().shtanga1.SetBool("for", true);
seamanДата: Вторник, 29 Марта 2016, 11:16 | Сообщение # 33
старожил
Сейчас нет на сайте
Цитата
в общем тоже самое

Совет. Прочитайте хотя бы одну книжку "для чайников по программированию".
Уверяю Вас - методом тыка программированию не научитесь. Будете продолжать задавать глупые вопросы.
shustr1k76Дата: Вторник, 29 Марта 2016, 19:25 | Сообщение # 34
почетный гость
Сейчас нет на сайте
я читаю книгу про с#. вроде по логике все правильно - нахожу объект, получаю компонент(скрипт) и далее выполняю что нужно? что не так?
ShortKedrДата: Вторник, 29 Марта 2016, 19:34 | Сообщение # 35
Renword Studio
Сейчас нет на сайте
Конечно не правильно)
Ты в ta, который имеет тип GameObject присваиваешь объект типа shtangafor - Это не логичино!)

Вот так правильней)

Код

GameObject ta = GameObject.FindGameObjectWithTag("target");
shtangafor component = (ta != null) ? ta.GetComponent<shtangafor>() : null;
if (component != null){
    component.SetBool("for", true);
}


Сообщение отредактировал ShortKedr - Вторник, 29 Марта 2016, 22:21
LertmindДата: Вторник, 29 Марта 2016, 19:38 | Сообщение # 36
заслуженный участник
Сейчас нет на сайте
Тебе пишут "Cannot implicitly convert type `shtangafor' to `UnityEngine.GameObject'", что значит "Не могу неявно привести тип "shtangafor" к "UnityEngine.GameObject", то есть ты пытаешься присвоить переменной GameObject объект другого типа.
Этот код
public GameObject ta;
ta = GameObject.FindGameObjectWithTag ("target").GetComponent<shtangafor> ().shtanga1.SetBool("for", true);
кажется не к этой ошибке, но он тоже неверен, потому что SetBool ничего не возвращает.
ShortKedrДата: Вторник, 29 Марта 2016, 22:21 | Сообщение # 37
Renword Studio
Сейчас нет на сайте
Цитата Lertmind ()
кажется не к этой ошибке, но он тоже неверен, потому что SetBool ничего не возвращает.

Я хотел начать с простого объяснения, но так даже правильней happy


Сообщение отредактировал ShortKedr - Вторник, 29 Марта 2016, 22:22
shustr1k76Дата: Пятница, 01 Апреля 2016, 15:45 | Сообщение # 38
почетный гость
Сейчас нет на сайте
и все таки, Уважаемые Гуру, может запишите видео, о том как правильно сделать анимацию прыжка, начиная с 3 д макс и как воспроизвести в юнити? пытаюсь сделать прыжок вверх, в общем коряво выходит(

Сообщение отредактировал shustr1k76 - Вторник, 05 Апреля 2016, 01:18
ShortKedrДата: Четверг, 07 Апреля 2016, 21:25 | Сообщение # 39
Renword Studio
Сейчас нет на сайте
shustr1k76, могу сказать одно:
Если ты работаешь с системой mecanim, где авто-перемещения в конце анимации реализованы, нужно анимацию делать соответственно. Например, ты хочешь, что бы у тебя персонаж двигался только по оси Z, следовательно нужно сделать так, что бы положение основы костей(точка, к которой всё привязано, root) в конце и в начале анимации по другим осям совпадали, а по Z осуществлялось перемещение)

С прыжком аналогично, НО:

Если анимация будет одна, то есть все следующие анимации будут в одной:

  • Передвижение вверх - начало прыжка и сам прыжок персонажа
  • Передвижение вниз - полёт вниз, махание ручками =D
  • Остановка - приземление, или размазывание персонажа об землю и т.п.


То у тебя не получится сделать нормальный прыжок, т.к. всё будет в одной анимации и не будет разделяться никак - прыгнул и сразу приземлился.
Нужно разбить всё на такие 3 анимации и потом уже написать контроллер для этого happy
shustr1k76Дата: Воскресенье, 17 Апреля 2016, 02:49 | Сообщение # 40
почетный гость
Сейчас нет на сайте
и сново я) все таки не работает рандомная анимация
создал слой, сделал ему вес 1, сделал дерево, добавил три анимации, установил трешхолд

установил переход, blend типа int прописал значения

и вызываю так
Код
if (panchJoy.IsPressed ()) {
   
   n = Random.Range (1, 3);

   anim.SetInteger("blend", n);

   
  }

не работает ничего, что не так? помогите!
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Помощь с анимациями
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2021 Рейтинг