Не могу перенести анимацию в Untity

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Не могу перенести анимацию в Untity

Сообщение kostya05 30 июл 2013, 16:16

Сделал 2 анимации с деформацией сферы.
1) В cinema 4D с помощью эффектора случая, экспортировал в FBX всех версий. Ни в 3D max, ни в самой cinema 4D, ни в Unity анимации не видно.
2) В 3d max с помощью noise, экспортировал так же FBX и пробовал в ".max", но и тут анимации нигде не было(кроме ".max" в самом 3D max). Так же заинтересовало, что в 3D max при экспорте FBX в анимации есть вкладка Point cache file(s)
Где в строке выбора(set) пусто, где кажется, должен быть файл на cache анимации.
Может можно через другой способ(или 3D редактор) сделать анимацию в unity с деформирующийся сферой, но получаться должно что-то вроде шара плазмы/энергии меняющею свою форму частично(углубляясь в одних местах и и выпучиваясь в других)
kostya05
UNIт
 
Сообщения: 63
Зарегистрирован: 30 июл 2013, 16:01

Re: Не могу перенести анимацию в Untity

Сообщение seaman 30 июл 2013, 19:00

Юнити поддерживает пока только скелетную анимацию. Хотите такой шарик - или анимируйте костями, или пишите спецшейдер. Такие есть, в Огре, например, видел такой.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Не могу перенести анимацию в Untity

Сообщение kostya05 30 июл 2013, 20:21

Скелетной как я понимаю я смогу только в движении костей делать анимацию? Мутирующий шарик из-за добавления кости не получиться?
kostya05
UNIт
 
Сообщения: 63
Зарегистрирован: 30 июл 2013, 16:01

Re: Не могу перенести анимацию в Untity

Сообщение waruiyume 30 июл 2013, 20:41

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

Синтаксис:
Используется glsl
//Жирный и индусский
Shader "Custom/NewShader" {
        Properties
        {
                _MainColor("Color(RGB), Opacity(A)", Color) = (1,1,1,1)
                _CubeColor("CubeColor(RGB), Opacity(A)", Color) = (1,1,1,1)
                _MainTex ("Base (RGB)", 2D) = "white" {}
                _NoiseTex ("_NoiseTex (A)", 2D) = "white" {}
                _NoiseScale ("NoiseScale", float) = 0.1
                _NoiseSpeed ("NoiseSpeed", float) = 0.05
                _DisplaceScale ("DisplaceScale", float) = 0.5
                _RimPow ("RimPow", float) = -1.0
                _Cube ("Cubemap", Cube) = "_Skybox" { TexGen CubeReflect }
        }
        SubShader
        {
                Cull Front
                Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
                LOD 200
               
                CGPROGRAM
                #pragma only_renderers d3d9 gles
                #pragma target 3.0
                #pragma glsl
                #pragma surface surf Lambert alpha vertex:vert

                fixed4 _MainColor;
                fixed4 _CubeColor;
                sampler2D _MainTex;
                sampler2D _NoiseTex;
                half _NoiseScale;
                half _NoiseSpeed;
                half _DisplaceScale;
                half _RimPow;
                samplerCUBE _Cube;

                struct Input
                {
                        float2 uv_MainTex;
                        float2 NoiseTextPos;
                        float3 viewDir;
                        float3 worldNormal;
                        float3 worldRefl;
                        INTERNAL_DATA
                };


                void vert (inout appdata_full v, out Input o)
                {
                        half2 textPos = (v.vertex.xy + v.vertex.xz)*_NoiseScale + ((_Time+_Time.zxyw)*_NoiseSpeed);
                        o.NoiseTextPos = textPos;
                        half disp = tex2Dlod(_NoiseTex, float4(textPos,0,0)).a;
                        v.vertex.xyz += v.normal * (disp * _DisplaceScale);
                }


                void surf (Input IN, inout SurfaceOutput o)
                {
                        half4 c = tex2D (_MainTex, IN.uv_MainTex);
                        o.Albedo = c.rgb*_MainColor.rgb;
                        o.Normal = UnpackNormal(tex2D(_NoiseTex, IN.NoiseTextPos));

                        float3 worldNormal = WorldNormalVector (IN, o.Normal);
                        fixed rim = pow((dot(worldNormal, IN.viewDir)), _RimPow);

                        float3 worldRefl = WorldReflectionVector (IN, o.Normal);
                        fixed4 reflcol = texCUBE (_Cube, worldRefl);
                        o.Emission = saturate(reflcol.rgb * rim);

                        fixed4 refRcol = texCUBE (_Cube, refract(IN.viewDir, worldNormal, 1.5));
                        o.Emission = saturate(o.Emission+(refRcol.rgb * (1-rim)))*_CubeColor.rgb;

                        o.Alpha = c.a*_MainColor.a*rim;
                        o.Alpha = min(o.Alpha, _MainColor.a*Luminance(o.Emission)*_CubeColor.a);
                }
                ENDCG

                Cull Back

                CGPROGRAM
                #pragma only_renderers d3d9 gles
                #pragma target 3.0
                #pragma glsl
                #pragma surface surf Lambert alpha vertex:vert

                fixed4 _MainColor;
                fixed4 _CubeColor;
                sampler2D _MainTex;
                sampler2D _NoiseTex;
                half _NoiseScale;
                half _NoiseSpeed;
                half _DisplaceScale;
                half _RimPow;
                samplerCUBE _Cube;

                struct Input
                {
                        float2 uv_MainTex;
                        float2 NoiseTextPos;
                        float3 viewDir;
                        float3 worldNormal;
                        float3 worldRefl;
                        INTERNAL_DATA
                };


                void vert (inout appdata_full v, out Input o)
                {
                        half2 textPos = (v.vertex.xy + v.vertex.xz)*_NoiseScale + ((_Time+_Time.zxyw)*_NoiseSpeed);
                        o.NoiseTextPos = textPos;
                        half disp = tex2Dlod(_NoiseTex, float4(textPos,0,0)).a;
                        v.vertex.xyz += v.normal * (disp * _DisplaceScale);
                }


                void surf (Input IN, inout SurfaceOutput o)
                {
                        half4 c = tex2D (_MainTex, IN.uv_MainTex);
                        o.Albedo = c.rgb*_MainColor.rgb;
                        o.Normal = UnpackNormal(tex2D(_NoiseTex, IN.NoiseTextPos));

                        float3 worldNormal = WorldNormalVector (IN, o.Normal);
                        fixed rim = pow((dot(worldNormal, IN.viewDir)), _RimPow);

                        float3 worldRefl = WorldReflectionVector (IN, o.Normal);
                        fixed4 reflcol = texCUBE (_Cube, worldRefl);
                        o.Emission = saturate(reflcol.rgb * rim);

                        fixed4 refRcol = texCUBE (_Cube, refract(IN.viewDir, worldNormal, 1.5));
                        o.Emission = saturate(o.Emission+(refRcol.rgb * (1-rim)))*_CubeColor.rgb;

                        o.Alpha = c.a*_MainColor.a*rim;
                        o.Alpha = min(o.Alpha, _MainColor.a*Luminance(o.Emission)*_CubeColor.a);
                }
                ENDCG
        }
        FallBack "Diffuse"
}

 

https://dl.dropboxusercontent.com/u/232 ... itypackage
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: Не могу перенести анимацию в Untity

Сообщение kostya05 30 июл 2013, 21:58

waruiyume огромное спасибо! То что нужно, даже представить не мог, что так можно сделать!
kostya05
UNIт
 
Сообщения: 63
Зарегистрирован: 30 июл 2013, 16:01

Re: Не могу перенести анимацию в Untity

Сообщение kostya05 30 июл 2013, 22:09

Глупый вопрос, но пока в 3D графике и игровых движках плохо разбираюсь и плохо их понимаю, поэтому вопрос: "NewShader.shader вручную набирался?"
kostya05
UNIт
 
Сообщения: 63
Зарегистрирован: 30 июл 2013, 16:01

Re: Не могу перенести анимацию в Untity

Сообщение waruiyume 30 июл 2013, 22:19

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


Вернуться в Почемучка

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

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