Анимация изображения как у легендарных портретов Heartstone

Общие вопросы о Unity3D

Анимация изображения как у легендарных портретов Heartstone

Сообщение HelloWorld 14 апр 2019, 15:57

Можете подсказать как создать такой же эффект анимации как у портретов HeartstoneИзображение
По своему вопросу нашел только это: https://gamedev.stackexchange.com/questions/71081/how-can-i-create-animated-card-graphics-like-in-hearthstone?answertab=active#tab-top
И там дали ответ, вместе с кодом, но к сожалению я не разбираюсь в unity(если это конечно юнити, просто знаю что большинство анимаций у золотых карт делается именно в ней и может это тот же случай)
HelloWorld
UNец
 
Сообщения: 1
Зарегистрирован: 14 апр 2019, 15:23

Re: Анимация изображения как у легендарных портретов Heartstone

Сообщение Saltant 15 апр 2019, 00:24

Сейчас в юнити есть Shader Graph, такие эффекты как карта выше и т.д делаются движениями и кликами мыши в редакторе, вот почитай статью:
https://habr.com/ru/post/435328/
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Анимация изображения как у легендарных портретов Heartstone

Сообщение waruiyume 15 апр 2019, 00:48

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

Re: Анимация изображения как у легендарных портретов Heartstone

Сообщение Saltant 15 апр 2019, 01:13

waruiyume писал(а):Не надо так, я фейспалмом чуть очки не сломал!

Я сфейлился?
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Анимация изображения как у легендарных портретов Heartstone

Сообщение waruiyume 15 апр 2019, 01:20

Это в духе: "П-ф-ф-ф. Не умеешь играть на арфе, вон на фортепьяно играют нажимая на клавиши и надавливая на педали."

Синтаксис:
Используется csharp
Shader "Unlit/Card"
{
    Properties
    {
        tex0 ("Texture0", 2D) = "white" {}
        tex1 ("Texture1", 2D) = "white" {}
        tex2 ("Texture2", 2D) = "white" {}
        tex3 ("Texture3", 2D) = "white" {}
        tex4 ("Texture4", 2D) = "white" {}
        tex5 ("Texture5", 2D) = "white" {}
    }
    SubShader
    {
        Tags { "RenderType"="Opaque" }
        LOD 100

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            // make fog work
            #pragma multi_compile_fog

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                UNITY_FOG_COORDS(1)
                float4 vertex : SV_POSITION;
            };

            sampler2D tex0;
            sampler2D tex1;
            sampler2D tex2;
            sampler2D tex3;
            sampler2D tex4;
            sampler2D tex5;
            float4 tex0_ST;

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = TRANSFORM_TEX(v.uv, tex0);
                UNITY_TRANSFER_FOG(o,o.vertex);
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                        /*
                // sample the texture
                fixed4 col = tex2D(_MainTex, i.uv);
                // apply fog
                UNITY_APPLY_FOG(i.fogCoord, col);
                return col;
                                */

                               
                                float t = _Time.x;
                          fixed3 mask = tex2D(tex1,i.uv).rgb;
                          fixed4 img = tex2D(tex0,i.uv);
                          img.rg*=1.1;
                          fixed2 flow = tex2D(tex3,i.uv).gr;
                          flow.y+=t*3.;
                          fixed4 plas = tex2D(tex2,flow*1.2) * mask.r;
                          plas *= 15.5;
                          plas *= fixed4(0.239, 0.224,0.488,1.);
                          fixed2 ct = i.uv;
                          ct.y -=t*0.5;
                          fixed4 clouds = tex2D(tex4,ct*2.);
                          float clouds_a = clouds.a;
                          clouds *= 4.5;
                          clouds *= fixed4(0.275,0.23,0.161,1.);
                          clouds_a *= mask.b;
                          img += clouds * mask.b;
                          img += plas * mask.r ;
                          img += (sin(t*15.)+1.) * mask.g * fixed4(0.239, 0.224,0.488,1.)*2.;
                          ct.x += t * 0.5;
                          fixed4 clouds_overall = tex2D(tex5,ct  * 0.5);
                          clouds_overall *= fixed4(0.275,0.23,0.161,1.);
                          // gl_FragColor = img +clouds_overall;
                          return img +clouds_overall;
            }
            ENDCG
        }
    }
}

 

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

Re: Анимация изображения как у легендарных портретов Heartstone

Сообщение Saltant 15 апр 2019, 07:43

В шейдер графе и новичек разберется, а в коде вряд ли.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2234
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт


Вернуться в Общие вопросы

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

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