Синхронизация анимации

Сеть в Unity3D

Синхронизация анимации

Сообщение Leorn 13 май 2010, 06:45

День добрый помогите разобратся с этим вопросом.
Возможно есть примеры ?
Leorn
UNец
 
Сообщения: 30
Зарегистрирован: 02 янв 2010, 22:50

Re: Синхронизация анимации

Сообщение MetosFate 13 май 2010, 12:28

А поконкретней :-B
Добавить masterofself в Skype
Стена это таже ступенька, просто надо вырасти, чтобы это увидеть...
Аватара пользователя
MetosFate
UNIт
 
Сообщения: 76
Зарегистрирован: 05 янв 2010, 21:14
Откуда: Нижний Новгород

Re: Синхронизация анимации

Сообщение warr11r 16 май 2010, 22:56

Вопрос стоит о смешивании двух разных анимаций?
Мудрость - это когда начинаешь понимать, что все время занимаешься какой-то х...ней.
Изображение
Аватара пользователя
warr11r
UNITрон
 
Сообщения: 310
Зарегистрирован: 06 июн 2009, 03:21
Откуда: Украина, Ровно
  • ICQ

Re: Синхронизация анимации

Сообщение Garu 16 май 2010, 23:42

мм, точно не уверен, но вроде бы вопрос о синхронности анимации в плане - я допустим заставил персонажа помахать рукой (анимация 1), дальше это на сервер и там идет в его типе проигрыш данной анимации, от чего если кто-то другой стоит рядом, видет моего перса машущего рукой... Проще говоря поток клиент1-сервер-клиент2 в плане анимации и прочих действий, бег там, ходьба, синхронное блевание...
П.с. к слову, если угадал с пояснением - самому малек интересно =)
Аватара пользователя
Garu
UNITрон
 
Сообщения: 199
Зарегистрирован: 13 авг 2009, 18:26

Re: Синхронизация анимации

Сообщение Leorn 18 май 2010, 08:18

Не было возможности отписаться. Именно как происходи синхронизация анимации в сетевых играх, тоесть как и было сказанно клиент запросил скажим бег(аним) сервер обработал для остальных клиентов, или это как то иначе происходит.
Leorn
UNец
 
Сообщения: 30
Зарегистрирован: 02 янв 2010, 22:50

Re: Синхронизация анимации

Сообщение Agenda 19 май 2010, 08:01

Все достаточно просто/сложно :)
К примеру вид от треьтего... click2point...
1. Клиент посылает серверу команду (пакет) двигаюсь от сель и до сель
2. Сервер бродкастит ответ всем плеерам в зоне видимости: такой-то двигается от сель и до сель :)

ах да.. анимация, посмотрите как это сделано в ФПС туториале,
к примеру:
если скорость перемещения ГГ ноль - играем idle-animation,
если [0...WalkingSpeed] - walk animation,
если > WalkingSpeed run-animation

1. Клиент посылает пакет серверу: Attack2Point - атакую точку такую-то
2 Сервер посылает ответ всем в видимом радиусе: Атакует с точки такой-то в такую-то используя эффект с таким-то идентификатором
Клиент просто рисует к примеру трейс от пуль с точки А в точку Б и эффект попадания в точке Б (эффект с таким-то идентификаторм)

1. Клиент посылает серверу запрос на социальное действие с идентификатором "12"
2 Сервер посылает ответ всем в видимом радиусе: Такой-то послал социальное действие с ид 12

Клиент находит анимацию замапленую на id12 и проигрывает ее на гейм обжекте "Такой-то"

Вот как-то так
Agenda
UNец
 
Сообщения: 30
Зарегистрирован: 13 апр 2010, 07:57

Re: Синхронизация анимации

Сообщение MetosFate 19 май 2010, 13:16

С рпг то много проблем в плане синхронизации анимаций и вправду не будет, а вот в случае с action... Ближний бой. Я бью противника мечом и вижу как он стоит, я по нему попадаю :) , а через некоторое время вижу как он уклоняется :-? Мол он не успел срегировать. Противник же видит как я атакую и успешно уклоняется, но у него при этом падает здоровье. ;;) "Парадокс шеста и сарая"... Нашёл в сети книгу, где описываются методы синхронизации, правда она на английском. http://www.itbookz.ru/nodata/nodataprog/4743-.html Там прделагается усреднять времена событий прежде проигрывания анимации и рассчитывать среднюю скорость, шустрого замедлять, тормоза ускорять, на практике только собираюсь попробовать, правда в акшенном мультеплеере я пока нуб...
Кому интересна тема синхронизации по сети давайте пересечёмся, поэкспериментируем потестим, здесь одному решать трудно.
Добавить masterofself в Skype
Стена это таже ступенька, просто надо вырасти, чтобы это увидеть...
Аватара пользователя
MetosFate
UNIт
 
Сообщения: 76
Зарегистрирован: 05 янв 2010, 21:14
Откуда: Нижний Новгород

Re: Синхронизация анимации

Сообщение Agenda 19 май 2010, 20:17

Один из удачных методов предикшена просто сделать то что должно быть с большой вероятностью, тобыш если вы бизнес правила расчета
событий к примеру описали в виде функций которые можно просчитать и на сервере и на клиенте то запустите их на клиенте просчитайте,
если враг не уклонился то играйте анимацию "хита" или "уклонение" с большой сепенью вероятности сервер вас попросит проиграть эту анимацию
но с латентностью (оно вам нада? :) ) и тому подобное.
Во многих ситуациях (если геймплей позволяет) достаточно просто проиграть максимально приближённую к событие анимацию. К примеру
если вы собрались пробежать 2 шага вперед и нету преград (проверка геодаты на клиенте) то просто бежите и отправляйте серверу мол бегу,
если что он вас поправит :) ну откатитесь на 2 шага назад... подумаешь :)
Agenda
UNец
 
Сообщения: 30
Зарегистрирован: 13 апр 2010, 07:57

Re: Синхронизация анимации

Сообщение MetosFate 21 май 2010, 23:22

http://www.xakep.ru/magazine/xs/064/062/1.asp - тут данный вопрос разобран подробно, но всё же нужна практика...
Добавить masterofself в Skype
Стена это таже ступенька, просто надо вырасти, чтобы это увидеть...
Аватара пользователя
MetosFate
UNIт
 
Сообщения: 76
Зарегистрирован: 05 янв 2010, 21:14
Откуда: Нижний Новгород

Re: Синхронизация анимации

Сообщение MetosFate 21 май 2010, 23:43

А конкретно вопрос синхронизации анимации на мой взгляд следуетначать разбирать так:
1) Самое простое: написать функции для перемотки анимаций из текушего кадра в любой другой за данное время.
2) Сделать демосценку. Один персонаж. Два пользователя. Один управляет (сервер) (по нажатию кнопки проигрывается анимация) этим персонажем, второй "смотрит". Передаём изменение состояния - выбор из двух состояний: анимируетсяб неанимируется. Зная пинг, мы можем ускорить или замедлить проигрывание анимации. Цель - чтобы анимация у "наблюдателя" закончилась в то же время, что и у "управляющего".
3) Самое сложное: синхронизировать начало анимаций - т. е. для тех ситуаций, когда нажатие той или иной кнопки неизбежно, например во время cледующего удара комбо, изменить состояние персонажа без получения сигнала от сервера. Если же сигнал не пришёл, комбо резко оборвать, мол неудачно, короче дальше дизайнерское решение....
Добавить masterofself в Skype
Стена это таже ступенька, просто надо вырасти, чтобы это увидеть...
Аватара пользователя
MetosFate
UNIт
 
Сообщения: 76
Зарегистрирован: 05 янв 2010, 21:14
Откуда: Нижний Новгород

Re: Синхронизация анимации

Сообщение goodwin 21 май 2011, 01:11

Не хотел снова создавать тему решил отписать тут так название подходит :)
Реально ли сделать что то вроде SendMessage только по сети, например SendMessage (ApplyDamage,idPlayer,damage,.....)?
Изображение
FenceRoadCreator v2.0 - ограждения для дороги? легко!
Аватара пользователя
goodwin
UNIт
 
Сообщения: 62
Зарегистрирован: 29 апр 2011, 22:22

Re: Синхронизация анимации

Сообщение Neodrop 21 май 2011, 01:41

Это называется RPC
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Синхронизация анимации

Сообщение goodwin 23 май 2011, 14:02

Спасибо Neodrop, с RPC разобрался :)
Кому надо(синтаксис команды):
Синтаксис:
Используется javascript
networkView.RPC("Shot",RPCMode.All,damage);
 

Shot - функция которая будет принимать сообщение
RPCMode - Режим передачи
  1. Server - Отправить только серверу
  2. Others - Отправить всем, кроме сервера
  3. OthersBuffered - Отправить всем, кроме сервера, и добавить в кэш
  4. All - Отправить всем
  5. AllBuffered - Отправить всем, и добавить в кэш
damage - переменная для передачи(хранить в себе нужную информацию)
Изображение
FenceRoadCreator v2.0 - ограждения для дороги? легко!
Аватара пользователя
goodwin
UNIт
 
Сообщения: 62
Зарегистрирован: 29 апр 2011, 22:22


Вернуться в Сеть

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3