Antares VIZIO (Визуальный Редактор Логики)

Визуальный редактор логики Universe (VIZIO)

Re: Antares VIZIO

Сообщение gnoblin 25 дек 2010, 22:00

+1 вариант SmoothLookAt блока, теперь с одним дополнительным блоком чтобы указать какой трансформ будет смотреть на target.
(у меня граф почему-то не одевается на камеру...)

Вообще, custom block это круто!

Синтаксис:
Используется csharp
using Antares.Vizio.Runtime;
using UnityEngine;

[VisualLogicBlock("Smooth Look At", "Custom Blocks", ParentName = "Camera-Control")]
public class SmoothLookAtBlock : LogicBlock
{
    [Parameter(VariableType.In, typeof(Transform), Name = "Looker Transform")]
    public Variable looker;

    [Parameter(VariableType.In, typeof(Transform), Name = "Target Transform")]
    public Variable target;

    [Parameter(VariableType.In, typeof(bool), Name = "Smooth")]
    public Variable smooth;

    [Parameter(VariableType.In, typeof(float), Name = "Damping", DefaultValue = 6f)]
    public Variable damping;

    [Parameter(VariableType.Out, typeof(string), Name = "Error")]
    public Variable error;

    [EntryTrigger]
    public void In()
    {
        Transform targ = target.Value as Transform;

        if (targ != null)
        {
            Transform thisTransform = looker.Value as Transform;//Component.transform;

            if ((bool)smooth.Value)
            {
                // Look at and dampen the rotation
                var rotation = Quaternion.LookRotation(targ.position - thisTransform.position);
                thisTransform.rotation = Quaternion.Slerp(thisTransform.rotation, rotation, Time.deltaTime * (float)damping.Value);
            }
            else
            {
                // Just lookat
                thisTransform.LookAt(targ);
            }

            ActivateTrigger();
        }
        else
        {
            error.Value = "Target is NULL";
            ActivateTrigger("Error");
        }
    }


    public override void Awake()
    {
       Transform targ = target.Value as Transform;

        if (targ != null)
        {
            Transform thisTransform = looker.Value as Transform;
            // Make the rigid body not change rotation
            if (thisTransform.rigidbody)
                thisTransform.rigidbody.freezeRotation = true;
        }
    }

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

}
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Antares VIZIO

Сообщение gnoblin 25 дек 2010, 22:09

Только вот втыркивать этот блок, мне кажется, нужно в активатор LateUpdate() а не просто Update() (popcorn1)
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Antares VIZIO

Сообщение gnoblin 25 дек 2010, 22:31

Новый кастом блок MouseOrbit

mouse_orbit.png


Синтаксис:
Используется csharp
using Antares.Vizio.Runtime;
using UnityEngine;

[VisualLogicBlock("Mouse Orbit", "Custom Blocks", ParentName = "Camera-Control")]
public class MouseOrbitBlock : LogicBlock
{
    [Parameter(VariableType.In, typeof(Transform), Name = "Looker Transform")]
    public Variable looker;

    [Parameter(VariableType.In, typeof(Transform), Name = "Target Transform")]
    public Variable target;

    [Parameter(VariableType.In, typeof(float), Name = "Distance", DefaultValue = 10f)]
    public Variable distance;
    [Parameter(VariableType.In, typeof(float), Name = "xSpeed", DefaultValue = 250f)]
    public Variable xSpeed;
    [Parameter(VariableType.In, typeof(float), Name = "ySpeed", DefaultValue = 120f)]
    public Variable ySpeed;
    [Parameter(VariableType.In, typeof(float), Name = "yMinLimit", DefaultValue = -20f)]
    public Variable yMinLimit;
    [Parameter(VariableType.In, typeof(float), Name = "yMaxLimit", DefaultValue = 80f)]
    public Variable yMaxLimit;

    [Parameter(VariableType.Out, typeof(string), Name = "Error")]
    public Variable error;

    //[Parameter(VariableType.In, typeof(float), Name = "x")]
    private float x = 0.0f;

    //[Parameter(VariableType.In, typeof(float), Name = "y")]
    private float y = 0.0f;

    [EntryTrigger]
    public void In()
    {
        Transform targ = target.Value as Transform;

        if (targ != null)
        {
            Transform thisTransform = looker.Value as Transform;//Component.transform;

            x += Input.GetAxis("Mouse X") * (float)xSpeed.Value * 0.02f;
            y -= Input.GetAxis("Mouse Y") * (float)ySpeed.Value * 0.02f;

            y = ClampAngle(y, (float)yMinLimit.Value, (float)yMaxLimit.Value);

            Quaternion rotation = Quaternion.Euler(y, x, 0);
            Vector3 position = rotation * (new Vector3(0.0f, 0.0f, -(float)distance.Value)) + targ.position;

            thisTransform.rotation = rotation;
            thisTransform.position = position;

            ActivateTrigger();
        }
        else
        {
            error.Value = "Target is NULL";
            ActivateTrigger("Error");
        }
    }

    public override void Awake()
    {
        Transform targ = target.Value as Transform;

        if (targ != null)
        {
            Transform thisTransform = looker.Value as Transform;

            Vector3 angles = thisTransform.eulerAngles;
            x = angles.y;
            y = angles.x;

            // Make the rigid body not change rotation
            if (thisTransform.rigidbody)
                thisTransform.rigidbody.freezeRotation = true;
        }
    }

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

    static float ClampAngle (float angle, float min, float max)
    {
            if (angle < -360)
                    angle += 360;
            if (angle > 360)
                    angle -= 360;
            return Mathf.Clamp (angle, min, max);
    }
}
У вас нет доступа для просмотра вложений в этом сообщении.
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Antares VIZIO

Сообщение gnoblin 25 дек 2010, 22:59

SmoothFollowBlock

smooth_follow.png


Синтаксис:
Используется csharp
using Antares.Vizio.Runtime;
using UnityEngine;
/*
This camera smoothes out rotation around the y-axis and height.
Horizontal Distance to the target is always fixed.

There are many different ways to smooth the rotation but doing it this way gives you a lot of control over how the camera behaves.

For every of those smoothed values we calculate the wanted value and the current value.
Then we smooth it using the Lerp function.
Then we apply the smoothed values to the transform's position.
*/

[VisualLogicBlock("Smooth Follow", "Custom Blocks", ParentName = "Camera-Control")]
public class SmoothFollowBlock : LogicBlock
{
    [Parameter(VariableType.In, typeof(Transform), Name = "Looker Transform")]
    public Variable looker;

    // The target we are following
    [Parameter(VariableType.In, typeof(Transform), Name = "Target Transform")]
    public Variable target;

    // The distance in the x-z plane to the target
    [Parameter(VariableType.In, typeof(float), Name = "Distance", DefaultValue = 10f)]
    public Variable distance;

    // the height we want the camera to be above the target
    [Parameter(VariableType.In, typeof(float), Name = "Height", DefaultValue = 5f)]
    public Variable height;

    [Parameter(VariableType.In, typeof(float), Name = "Height Damping", DefaultValue = 2f)]
    public Variable heightDamping;

    [Parameter(VariableType.In, typeof(float), Name = "Rotation Damping", DefaultValue = 3f)]
    public Variable rotationDamping;

    [Parameter(VariableType.Out, typeof(string), Name = "Error")]
    public Variable error;

    [EntryTrigger]
    public void In()
    {
        Transform targ = target.Value as Transform;

        // Early out if we don't have a target
        if (targ != null)
        {
            Transform thisTransform = looker.Value as Transform;//Component.transform;
       
            // Calculate the current rotation angles
                float wantedRotationAngle = targ.eulerAngles.y;
                float wantedHeight = targ.position.y + (float)height.Value;
                       
                float currentRotationAngle = thisTransform.eulerAngles.y;
                float currentHeight = thisTransform.position.y;
               
                // Damp the rotation around the y-axis
                currentRotationAngle = Mathf.LerpAngle (currentRotationAngle, wantedRotationAngle, (float)rotationDamping.Value * Time.deltaTime);

                // Damp the height
                currentHeight = Mathf.Lerp (currentHeight, wantedHeight, (float)heightDamping.Value * Time.deltaTime);

                // Convert the angle into a rotation
                Quaternion currentRotation = Quaternion.Euler (0, currentRotationAngle, 0);
               
                // Set the position of the camera on the x-z plane to:
                // distance meters behind the target
                thisTransform.position = targ.position;
                thisTransform.position -= currentRotation * Vector3.forward * (float)distance.Value;

                // Set the height of the camera
            Vector3 pos = thisTransform.position;
                pos.y = currentHeight;
            thisTransform.position = pos;
               
                // Always look at the target
                thisTransform.LookAt (targ);

            ActivateTrigger();
        }
        else
        {
            error.Value = "Target is NULL";
            ActivateTrigger("Error");
        }
    }

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

}
У вас нет доступа для просмотра вложений в этом сообщении.
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Antares VIZIO

Сообщение gnoblin 26 дек 2010, 01:22

Хочется сделать на кастомблоках что-то такое:

lerpz3.png
У вас нет доступа для просмотра вложений в этом сообщении.
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Antares VIZIO

Сообщение gnoblin 26 дек 2010, 06:55

скрипт -> граф

graph1.png


Синтаксис:
Используется csharp
var mySound : AudioSource;
var go : GameObject;

function Update() {
if (Input.GetKeyDown("f")) {
   mySound.Play();
   go.SetActiveRecursive(!go.active);
 
   }
}
У вас нет доступа для просмотра вложений в этом сообщении.
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Antares VIZIO (Визуальный Редактор Логики)

Сообщение Neodrop 29 дек 2010, 05:43

Вспомогательный визард для кастомных блоков.

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

Re: Antares VIZIO (Визуальный Редактор Логики)

Сообщение Neodrop 29 дек 2010, 13:07

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

Re: Antares VIZIO (Визуальный Редактор Логики)

Сообщение set_smok 31 дек 2010, 00:33

Всех с наступающим!!! А можно узнать приблизительную дату выхода Antares VIZIO, и если не секрет, сколько она будет стоить! :D Всегда было желание научиться програмить, но увы! А с этим делом, самая тема!!! :)
Моя жизнь, как плохой сюжет, но графа, графа-то!!!!
Аватара пользователя
set_smok
UNIт
 
Сообщения: 148
Зарегистрирован: 20 май 2009, 17:13
Откуда: Рязань
  • Сайт

Re: Antares VIZIO (Визуальный Редактор Логики)

Сообщение Neodrop 31 дек 2010, 14:04

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

Re: Antares VIZIO (Визуальный Редактор Логики)

Сообщение FunnyAlien 01 янв 2011, 12:13

Помню такое вроде задевалось в конференции, но спрошу еще раз.
Для блондинок данный компонент будет легок? Сразу говорю, блондинка я только в программировании, остальное все хорошо.
А куплю обязательно, такие вещи не валяются на дороге :)
Изображение
Аватара пользователя
FunnyAlien
UNIт
 
Сообщения: 94
Зарегистрирован: 03 дек 2009, 19:10
Откуда: Тюмень
  • Сайт
  • ICQ

Re: Antares VIZIO (Визуальный Редактор Логики)

Сообщение set_smok 02 янв 2011, 11:22

FunnyAlien писал(а):А куплю обязательно, такие вещи не валяются на дороге :)

Поддерживаю!!!
Моя жизнь, как плохой сюжет, но графа, графа-то!!!!
Аватара пользователя
set_smok
UNIт
 
Сообщения: 148
Зарегистрирован: 20 май 2009, 17:13
Откуда: Рязань
  • Сайт

Re: Antares VIZIO (Визуальный Редактор Логики)

Сообщение Neodrop 02 янв 2011, 23:19

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

Re: Antares VIZIO (Визуальный Редактор Логики)

Сообщение set_smok 03 янв 2011, 11:58

Это реально то что нужно, тем кто не владеет или владеет не в совершенстве языками программирования!!! За такое не жалко денег отдать!!! А к ней будут туторы прилагаться!? Об интерфейсе можно в письменном виде, а остальное в видео и конечно же хотелось бы с закадровыми комментариями разработчика :-bd Главное что бы после этого вас из-за бугра не перекупили!? А то мол, давайте у нас [unity 3D] (на нас) поработайте!
В любом случае вы делаете большую и правильную работу! Буду ждать!!! (3A4OT)
Моя жизнь, как плохой сюжет, но графа, графа-то!!!!
Аватара пользователя
set_smok
UNIт
 
Сообщения: 148
Зарегистрирован: 20 май 2009, 17:13
Откуда: Рязань
  • Сайт

Re: Antares VIZIO (Визуальный Редактор Логики)

Сообщение PAX 07 янв 2011, 21:28

В новой версии будет возможность создавать кастомные инспекторы для смарт-блоков. Некий аналог класса Editor в Unity:
Синтаксис:
Используется csharp
using Antares.Vizio.Editor;
using UnityEngine;

[CustomInspector(typeof(Antares.Vizio.Blocks.GenericBlockTest))]
public class TestInspector : LogicBlockInspector
{
    public override void OnInspectorGUI()
    {
        GUILayout.Label("Hello Universe!");
    }
}  


Результат:
Изображение

Это позволит создавать свой интерфейс для управления блоками.
Blitz3d to Unity Wiki
icq: 208084972
skype: pax62rus
Аватара пользователя
PAX
UNIт
 
Сообщения: 134
Зарегистрирован: 03 ноя 2009, 12:53
Откуда: Россия, Рязань
  • Сайт
  • ICQ

Пред.След.

Вернуться в Antares Universe (VIZIO)

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

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