Arena project

Проекты в стадии разработки.

Re: Arena project

Сообщение Kann 03 апр 2012, 18:59

ну можете тут почитать ответ
http://answers.unity3d.com/questions/22 ... erver.html
или более развернуто где то было на офф форуме... но ищите уже сами...
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: Arena project

Сообщение Левш@ 03 апр 2012, 22:01

Спасибо!
_X.cor.R (Prologue)
Аватара пользователя
Левш@
Адепт
 
Сообщения: 4073
Зарегистрирован: 14 окт 2009, 16:34
Откуда: IBERIA
Skype: bars_levsha
  • Сайт

Re: Arena project

Сообщение Angel 07 29 апр 2012, 21:32

Следующий перс:

HTML код для вашего блога :
Код: Выделить всё
<script language='javascript' type="text/javascript"> document.write("<iframe marginheight='0' src='http://unity3d.ru/distribution/player.php?url=http://dl.dropbox.com/u/11446262/ArenaElements/ModelsPresent/Kilac01.unity3d&w=800&h=600&t=false&preview=1' height='"+(600+30)+"' width='800' frameborder='0' scrolling='no'></iframe>"); </script>


Ну это типа такой подземный житель, то, во что превратились члены общины магов земли, когда ушли под землю много сотен лет назад. Называется Киль'як.
_ttp://shekn.deviantart.com/
Аватара пользователя
Angel 07
UNIверсал
 
Сообщения: 367
Зарегистрирован: 02 окт 2010, 18:58

Re: Arena project

Сообщение Zaicheg 29 апр 2012, 22:06

Симпатично.

1. Почему, когда для текстуры в Unity указывать Texture Importer, как Texture, то видны швы развертки, а когда указывать как GUI, то все нормально? Причем при GUI якобы и памяти меньше расходуется (по крайней мере это пишется в окне со статистикой).

Texture и GUI — это предустановки импорта. Вы можете посмотреть их детальные настройки (и различия), выбрав соответствующую предустановку, а затем выбрав Advanced.
Что касается швов, то вероятно неправильно генерируются Mip Maps (в предустановке GUI их генерация отключена).
На официальном форуме (да и на нашем) встречались темы об этом. Лечится исправлением самой текстуры или развёртки.

2. Почему приложение такое большое? Шутка ли, 2.3 мегабайта. Хотя, там же куча анимаций, вот и весит столько. Но все равно много, мне кажется. Это получается, что надо в модели меньше костей использовать, и прорежать анимационные ключи, чтобы не в каждом кадре ключ стоял, а, там, где надо. Вроде бы есть такая функция прореживания. Текстуры итак небольшие: 512x512. Больше склоняюсь к тому, чтобы не использовать нормали и спекуляр, ибо слишком много весить будет, опять таки, достаточно одной диффузной карты.

В Editor.log (Window → Console → Open Editor Log) после сборки показывается, какие ассеты сколько заняли места (там, правда, есть нюансы вроде (не)учёта компрессии).
Я полагаю, что у вас вес делаются скорее не анимации, а сама модель.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Arena project

Сообщение Syberex 30 апр 2012, 05:58

Все анимации хорошие, кроме умирания ;)
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Arena project

Сообщение Angel 07 30 апр 2012, 12:34

хы-хы, со смертью беда. Ковырял-ковырял, да и плюнул, все время плохо получается.

Zaicheg, спасибо, посмотрю, что там про текстуры. Тогда анимации делал, запекая положение костей в каждом кадре. Ясно, что получался избыток информации. Сейчас перед экспортом делаю очистку кривых (которые задают анимацию костей), гораздо легче файлы получаются.
_ttp://shekn.deviantart.com/
Аватара пользователя
Angel 07
UNIверсал
 
Сообщения: 367
Зарегистрирован: 02 окт 2010, 18:58

Re: Arena project

Сообщение Angel 07 02 май 2012, 21:22

Небольшая предыстория: честности ради, вся разработка проекта ведется на лицензии Free. Самое большое неудобство при этом, это не какие-то там dll-ки, а отсутствие теней. Вроде бы на AssetStore есть модуль, который рисует тени в любой версии Unity, но он же денег стоит. Поэтому решено было забабахать свои тени. Ну может не полноценные, а достаточные для проекта. Все тени от статичных объектов, естественно, будут запечены в LightMap-ы, поэтому остается две проблемы: как эти статичные тени рисовать на подвижных объектах, и как рисовать тени от подвижных объектов хотя бы на ровной горизонтальной земле. И вот, реализован первый этап (наиболее простой). Сделал скрипт, который записывает информацию об освещенности объекта в вершины модельки, а потом шэйдером вывожу эту информацию в материал.

Да чего рассказывать, вот маленькая демка.

HTML код для вашего блога :
Код: Выделить всё
<script language='javascript' type="text/javascript"> document.write("<iframe marginheight='0' src='http://unity3d.ru/distribution/player.php?url=http://dl.dropbox.com/u/11446262/UnityBuilds/VertexColorShadows.unity3d&w=800&h=600&t=false&preview=1' height='"+(600+30)+"' width='800' frameborder='0' scrolling='no'></iframe>"); </script>


управление простое: правой клавишей - поворот камеры, левой - перемещение кубика.

Можно с удовольствием наблюдать, как хорошо эти ненастоящие тени сочетаются с освещенностью объекта. Справедливости ради стоит заметить, что идея таких теней была подсмотрена в блоге http://unitycoder.com/blog/ Но, так как, поискав немного, не нашел в свободном доступе аналогичные модули, то без всяких экивоков выкладываю все необходимые материалы:

http://dl.dropbox.com/u/11446262/UnityB ... itypackage

Поясню, что там есть. Самое главное - скрипт VertexColorCalculator.cs Он как раз и занимается раскрашиванием вершин объектов. В принципе комментарии там даны, ничего сложного. Этот скрипт надо вешать на объект, вершины которого хотим раскрашивать. Обязательно надо указать, от какого источника света нужно считать тени. Хотел еще сделать функцию сглаживания цветов, чтобы вершины красились не в два цвета, а с градациями. Тогда тени будут помягче. Но что-то сильно тормозить все начинало при этом.

Так же есть пакет шэйдеров. Это стандартные шэйдеры для поверхностей разных типов (с бампом и без, со спекуляром и так далее), но добавлено смешивание с цветами вершин.
_ttp://shekn.deviantart.com/
Аватара пользователя
Angel 07
UNIверсал
 
Сообщения: 367
Зарегистрирован: 02 окт 2010, 18:58

Re: Arena project

Сообщение s177f 03 май 2012, 01:21

Не кормите вы своего дракона совсем, как отощал - рёбра аж торчат B-)
В целом здорово )
s177f
UNITрон
 
Сообщения: 252
Зарегистрирован: 16 сен 2011, 20:20

Re: Arena project

Сообщение Syberex 03 май 2012, 01:31

Демка \m/
(3A4OT) работа не малая с тенями
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Arena project

Сообщение waruiyume 03 май 2012, 03:40

Вертексные тени, выглядит так-же, но работает в 2 раза шустрей.
Синтаксис:
Используется csharp
using UnityEngine;

public class VertexShadow : MonoBehaviour
{
    public Transform sun;
    public Color shadowColor=Color.gray;
    public Color bkShadowColor = Color.gray;
    public Color lightColor=Color.white;
    public float hadowDistance = 100f;

    private bool inFustrum;
    private Transform tr;
    private MeshFilter filter;
    private Mesh mesh;
    private Vector3[] vertexes;
    private Color[] colors;
    private Vector3[] normals;

    void Start()
    {
        tr = transform;
        filter = GetComponent<MeshFilter>();
        mesh = filter.mesh;
        vertexes = mesh.vertices;
        colors = mesh.colors;
        normals = mesh.normals;

        CalcColors();
    }

    void OnBecameVisible()
    {
        inFustrum = true;
    }

    void OnBecameInvisible()
    {
        inFustrum = false;
    }

    void Update()
    {
        CalcColors();
    }

    void CalcColors()
    {
        if(!inFustrum)return;

        Vector3 dir = -sun.forward;
        Matrix4x4 matr = tr.localToWorldMatrix;
        Vector3 worldPos;

        for (int i = 0; i < colors.Length; i++)
        {
            if (Vector3.Dot(dir, matr.MultiplyVector(normals[i])) > 0f)
            {
                worldPos = matr.MultiplyPoint3x4(vertexes[i]);
                colors[i] = Physics.Raycast(worldPos, dir, hadowDistance) ? shadowColor : lightColor;
            }
            else
                colors[i] = bkShadowColor;
        }

        mesh.colors = colors;
    }
}

 
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Arena project

Сообщение Angel 07 03 май 2012, 08:45

Ну да, то же самое, но действительно будет чуть быстрее.
_ttp://shekn.deviantart.com/
Аватара пользователя
Angel 07
UNIверсал
 
Сообщения: 367
Зарегистрирован: 02 окт 2010, 18:58

Re: Arena project

Сообщение Fratyr 31 май 2012, 18:29

За столь длинный и пройденный этап, к чему пришел -
Делать вычисления боевки на сервере и оповещать игроков или на клиенте этим заниматься? И если второе, как защищать от накрутки счетчиков?
Fratyr
UNец
 
Сообщения: 28
Зарегистрирован: 13 сен 2011, 22:35

Re: Arena project

Сообщение Angel 07 31 май 2012, 20:14

Процесс идет. Сейчас как раз дошли руки переделать боевую систему. Каждый шаг боя вычисляет на сервере (ну там просто случайные числа бросаются и по ним говорится результат), а на клиент передается информация об этом, и там только анимации соответствующие играются.
_ttp://shekn.deviantart.com/
Аватара пользователя
Angel 07
UNIверсал
 
Сообщения: 367
Зарегистрирован: 02 окт 2010, 18:58

Re: Arena project

Сообщение Angel 07 02 июл 2012, 19:28

Итак, следующий этап проекта. Так-то принципиально нового ничего не сделал, но вот с другой стороны довольно много пришлось переделать. Самое главное - боевая система. Ну там и заготовки для скилов под нее. Теперь бои выглядят подинамичнее, нежели раньше. Может быть кому-нибудь будет интересно побегать по арене да монстров поколотить. Для этого выкладываю web-билд серверного приложения и собственного самого клиента. Базы данных еще нет, поэтому только их достаточно для работы. Причем запускать оба приложения можно прямо в браузере, и бегать в одиночку у себя на компьютере. Возможности сделать централизованный сервер, чтобы он работал круглосуточно, у меня пока нету.

Итак, сервер:

Скрытый текст:
HTML код для вашего блога :
Код: Выделить всё
<script language='javascript' type="text/javascript"> document.write("<iframe marginheight='0' src='http://unity3d.ru/distribution/player.php?url=https://dl.dropbox.com/u/11446262/ArenaElements/Builds/Server%2002-07-12.unity3d&w=800&h=600&t=false&preview=1' height='"+(600+30)+"' width='800' frameborder='0' scrolling='no'></iframe>"); </script>


Клиент:

Скрытый текст:
HTML код для вашего блога :
Код: Выделить всё
<script language='javascript' type="text/javascript"> document.write("<iframe marginheight='0' src='http://unity3d.ru/distribution/player.php?url=https://dl.dropbox.com/u/11446262/ArenaElements/Builds/Client%2002-07-12.unity3d&w=1024&h=768&t=false&preview=1' height='"+(768+30)+"' width='1024' frameborder='0' scrolling='no'></iframe>"); </script>


Специально убрал под спойлеры, чтобы не растягивать окном форму. Клиентское приложение рассчитано на размер 1024x768, не у каждого на мониторе в формате форума такое поместится.

У серверного приложения выводится кое-какая техническая информации. Но она скорее нужна для проверки, то ли вообще на нам происходит, можно не обращать на это внимания.

Найденные ошибки, пожелания и рекомендации приветствуются.
_ttp://shekn.deviantart.com/
Аватара пользователя
Angel 07
UNIверсал
 
Сообщения: 367
Зарегистрирован: 02 окт 2010, 18:58

Re: Arena project

Сообщение Angel 07 13 авг 2012, 19:40

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

Изображение
_ttp://shekn.deviantart.com/
Аватара пользователя
Angel 07
UNIверсал
 
Сообщения: 367
Зарегистрирован: 02 окт 2010, 18:58

Пред.След.

Вернуться в Кузня

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

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