forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Unity (http://forum.boolean.name/forumdisplay.php?f=144)
-   -   Визуальный редактор логики для Unity (http://forum.boolean.name/showthread.php?t=13273)

pax 03.12.2010 16:47

Ответ: Визуальный редактор логики для Unity
 
Только в открытый бетатест :pardon:. В закрытом будет всего несколько человек.

Zer0n 03.12.2010 16:48

Ответ: Визуальный редактор логики для Unity
 
Разработчики?(

pax 03.12.2010 16:51

Ответ: Визуальный редактор логики для Unity
 
В закрытом бетатесте примут участие пару человек, работающих в юнитехе, + еще пара человек. Но мы подумаем. Возможно привлечем еще некоторое количество желающих ;)

Zer0n 03.12.2010 17:02

Ответ: Визуальный редактор логики для Unity
 
Если чо, зовите! ;) У меня VIZIO отформатирует диск, коли WebPLayer вызвал BSOD :cool:

baton4ik 03.12.2010 17:05

Ответ: Визуальный редактор логики для Unity
 
Цитата:

Сообщение от Zer0n (Сообщение 170718)
У меня VIZIO отформатирует диск, коли WebPLayer вызвал BSOD :cool:

Даже с 5го раза не понял этого предложения.

Zer0n 03.12.2010 17:16

Ответ: Визуальный редактор логики для Unity
 
Цитата:

Сообщение от baton4ik (Сообщение 170719)
Даже с 5го раза не понял этого предложения.

Когда я пытался поиграть в игру на Unity WebPlayer, у меня вылетел BSOD. Следовательно, VIZIO сделает что-то похуже. Это я к тому, что понахожу ошибок своим нубством :rolleyes:

Neodrop 03.12.2010 18:08

Ответ: Визуальный редактор логики для Unity
 
В том то и дело, что в ЗБТ нужны люди, понимающие Unity максимально глубоко. Для массированного случайного поиска глюков есть (точнее - будет) ОБТ

Pan89 04.12.2010 12:30

Ответ: Визуальный редактор логики для Unity
 
Цитата:

Сообщение от viper86 (Сообщение 170436)
Ну ты даёшь ))) Почитай за русский визуальный алгоритмический язык программирования ДРАКОН (Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность) или UML.

Убедил. Спасибо за книжку, посмотрю.
Вообще мне казалось, что это извращенное описание скриптов.

pax 04.12.2010 12:30

Ответ: Визуальный редактор логики для Unity
 
Вложений: 1
Сгенерировали почти весь функционал UnityEngine (кроме операторов). Получилось ~6000 блоков операций. В них входят операции взятия значения (Get-блоки), операции установки значения (Set-блоки), функциональные операции (Do-блоки), сравнение значений энамов и построители переменных флагов через bool-флаги (тоже в виде Do-блоков).

Структура практически такая же как в справке Unity

pax 05.12.2010 22:30

Ответ: Визуальный редактор логики для Unity
 
Нововведения:
  • Наконец доделали блоки - активаторы. Теперь в графе можно получить любое сообщение, посылаемое в MonoBehaviour (Update, OnGUI, OnRenderObject, OnPlayerConnected и т.д., их более 45 штук).
  • Оптимизировали скорость выполнения.
  • Реализовали стек вызовов, чтобы не поймать в будущем исключение StackOverflow из-за рекурсивного выполнения линков. Баг был замечен случайно при выводе в Debug отладочной информации, трассировка стека вызовов включала вложенность 30+. Теперь этого нет.
  • Реализовали ядро для типизируемых блоков (в C# это Generic классы).

Dr.Evil 05.12.2010 22:48

Ответ: Визуальный редактор логики для Unity
 
А приблизительно когда можно будет попробовать данную утилиту?

Nuprahtor 05.12.2010 22:49

Ответ: Визуальный редактор логики для Unity
 
Это не обертка, то есть в скрипты это все нельзя будет конвертировать?

pax 06.12.2010 00:14

Ответ: Визуальный редактор логики для Unity
 
Мы стараемся как можем. Никак не дотянем до запуска бетатеста, даже закрытого. Сейчас необходимо продвинуть другой проект до 15 числа, так что не знаю когда начнется ЗБТ.

В скрипты это нельзя конвертировать. Это готовая программа, работающая так, как это выглядит визуально. Да и какой смысл конвертировать в скрипты и потом на них вешать снова объекты?

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

У нас собственная сериализация, которая поддерживает практически все стандартные ValueType (byte, long, double, ArrayList, List<>, Dictionary<,>, HashTable и т.д.) Их массивы и списки. Можно даже сохранить во входной переменной блока AnimationCurve, которую потом можно использовать для интерполяции при движении объекта. В видео выше это показано.

Система расширяемая. Достаточно написать свой собственный блок в виде класса, унаследованного от LogicBlock и система при открытии окна его найдет (не зависимо где он находится в проекте, или в подключенной dll). Вот пример:
PHP код:

[VisualLogicBlock("SmoothStep""UnityEngine/Mathf"ParentName "Mathf Do")]
  public class 
MathfSmoothStepDo LogicBlock
  
{
  
    [
Parameter(VariableType.Intypeof(float), Name "from")]
    public 
Variable fromIn;

    [
Parameter(VariableType.Intypeof(float), Name "to")]
    public 
Variable toIn;

    [
Parameter(VariableType.Intypeof(float), Name "t")]
    public 
Variable tIn;

    [
Parameter(VariableType.Outtypeof(float), Name "result")]
    public 
Variable result;

    public 
override void OnInitializeDefaultData()
    {
       
RegisterOutputTrigger("Exit");
    }

    [
EntryTrigger]
    public 
void In()
    {
      
result.Value UnityEngine.Mathf.SmoothStep((float)fromIn.Value, (float)toIn.Value, (float)tIn.Value);

      
ActivateTrigger();
    }

    public 
override bool useCustomTriggers get { return true; } }

  } 

Результатом будет такой блок:


Так что нужна вам такая система или нет, решать Вам ;)

UPD: Возможно будет поддержка логических блоков, написанных на JavaScript. Об этом узнаем чуть позже, когда упакуем ядро в dll.

pax 07.12.2010 21:52

Ответ: Визуальный редактор логики для Unity
 
Проект был собран в dll. На пути обфускация. Наверное завтра начнем ЗБТ. Хоть недоделок и много, всего реализовать не успеваем что хочется. Будем догонять на этапе беты.

pax 09.12.2010 17:53

Ответ: Визуальный редактор логики для Unity
 
Появилась возможность создавать блоки на js (пока с небольшими ограничениями). Пример:
PHP код:

import Antares.Vizio.Runtime;

@
VisualLogicBlock("Create My game""Custom Blocks"ParentName "My Game Creator")
class 
CreateMyGame extends LogicBlock
{
    @
Parameter(VariableType.InbooleanName "Create now?"DefaultValue true)
    var 
createVariable;

    @
Parameter(VariableType.OutbooleanName "Done")
    var 
resultVariable;



    
override function OnInitializeDefaultData()
    {
       
RegisterOutputTrigger("True");
       
RegisterOutputTrigger("False");
    }


    @
EntryTrigger
    
function In () 
    {
            switch (
create.Value)
            {
                case 
true :
                   
// YOUR CODE HERE
                    
result.Value true;
                    
ActivateTrigger();
                    break;
                case 
false :
                    
result.Value false;
                    
ActivateTrigger("False");
                    break;
            }
    }



аналог на C#
PHP код:

using Antares.Vizio.Runtime;

namespace 
Antares.Vizio.Blocks
{
    [
VisualLogicBlock("Create My game""Custom Blocks"ParentName "My Game Creator")]
    public class 
CreateMyGame LogicBlock
    
{
        [
Parameter(VariableType.Intypeof(bool), Name "Create now?"DefaultValue true)]
        public 
Variable create;

        [
Parameter(VariableType.Outtypeof(bool), Name "Done")]
        public 
Variable result;

        [
EntryTrigger]
        public 
void In()
        {
            switch ((bool)
create.Value)
            {
                case 
true :
                   
// YOUR CODE HERE
                    
result.Value true;
                    
ActivateTrigger();
                    break;
                case 
false :
                    
result.Value false;
                    
ActivateTrigger("False");
                    break;
            }
        }

        public 
override void OnInitializeDefaultData()
        {
            
RegisterOutputTrigger("True");
            
RegisterOutputTrigger("False");
        }
    }



В теории возможно и на Boo, но некому попробовать...


Часовой пояс GMT +4, время: 13:17.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot