sábado, 16 de octubre de 2021

Animaciones con unity, ;

Animaciones con unity,

Boy a comentar como e echo las animaciones de los personajes del videojuego THE OLYMPIC SNIPER;

https://videojuegosenlineaasaco4.blogspot.com/2021/10/the-olympic-sniper.html 

Hice una combinación de animación descargada de unity, de las gratuitas, de cuerpo completo del personaje , sobre todo movimientos de caminar y correr, estas vienen ya echas y solo las aplique a los personajes en diferentes niveles, son muy laboriosas de hacer a mano, así que las descargue y las aplique,.


Las que si hice manualmente y son fáciles de hacer son cuando el personaje esta de pie o sentado o tumbado en el suelo, estas son muy fáciles de trabajar, solo tenia que animar facciones del rostro o las articulaciones de los brazos la cabeza hombros columna vertebral desde la cadera hacia arriba, algún movimiento de piernas mientras el personaje esta tumbado en el suelo.


También las animaciones de la cámara hacen un efecto interesante que enriquece la visualización del videojuego.


Los personajes los hice a partir del programa gratuito makehuman-community, tiene una característica que te permite hacer de forma aleatoria las proporciones de los personajes haciéndolos con los hombros mas anchos o mas estrechos o mas largos o mas cortos, y así con todas las partes del cuerpo humano, brazos, piernas, manos, pies ,cabeza ,caderas ,pecho, cuello, etc...etc… y tiene la opción de asignarle diversos esqueletos para exportarlo en formato fbx a unity, por ejemplo, es el que utilizo yo ahora mismo.

Yo uso un esqueleto que permite la manipulación del rostro, ademas de todo el resto de articulaciones, boca, nariz, ojos, etc.…

Lo paso a fbx y lo paso a unity, cuando esta en unity lo animo desde hay directamente sin manipular absolutamente nada del gameobject fbx.

En este video podéis ver un ejemplo...


 

 



Una captura de pantalla del Animation desde unity donde voy haciendo poco a poco las animaciones del rostro haciendo muecas y movimientos del tronco y brazos….

 

Como e dicho antes las animaciones echas para este caso que el personaje esta de pie o sentado o tumbado en el suelo son fáciles de hacer y dan bastante buen resultado, pero las de caminar y correr ya es diferente es mejor, al menos para mi, utilizar las de ejemplos y descargas gratuitas del tema, desde unity….

En la captura de pantalla desde Asset Store podéis elegir para empezar las Free, gratuitas , hos bais a hartar de mirar y probar animaciones de todo tipo


 

 

Para poner estas animaciones si tenéis que preparar el gameobject humanoide fbx para que las pueda utilizar…..en el video lo muestro....


viernes, 15 de octubre de 2021

C# scripts del videojuego THE OLYMPIC SNIPER;

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class baadepositoexplota21 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "depositoexplota") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (21);




            }
        }
    }
 

 

------------------------------------------------------------------------------------------------------------------------

 

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class badepositoexplota22 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "depositoexplota2") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (22);




            }
        }
    }

 

--------------------------------------------------------------------------------------------------------------------------

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;/// <summary>
public class cabiodeescenanivel0en25segundos : MonoBehaviour {


        public Text contador1;
        public Text fin1;
        private float tiempo = 25f;
        // Use this for initialization
        void Start () {
            contador1.text = " " + tiempo;
            fin1.enabled = false;




        }

        // Update is called once per frame
        void Update ()
        {
            tiempo -= Time.deltaTime;
            contador1.text = " " + tiempo.ToString ("f0");
            if (tiempo <= 0) {
                contador1.text = "0";
                fin1.enabled = true;



                {




                    Destroy (gameObject, 0.0f);

                    {

                        //Application.LoadLevel (1); ESTE ES EL ORIGINALLLLLLL

                        Application.LoadLevel (0);


                    }
                }
            }
        }

    }

--------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambia28portaga28 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "a28") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (28);




            }
        }
    }


---------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambiaa24 : MonoBehaviour {




        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "maloren") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (24);




            }
        }
    }

 ------------------------------------------------------------------------------------------------------------------------

 using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambiaa25 : MonoBehaviour {




        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "anieve") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (25);




            }
        }
    }



--------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambiaa26 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "muerte26") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (26);




            }
        }
    }

--------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambiaa30impactoexclamacioncubo : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "torreplayer") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (30);




            }
        }
    }

---------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;/// <summary>
public class cambiaa30portiempo : MonoBehaviour {


        public Text contador1;
        public Text fin1;
        private float tiempo = 25f;
        // Use this for initialization
        void Start () {
            contador1.text = " " + tiempo;
            fin1.enabled = false;




        }

        // Update is called once per frame
        void Update ()
        {
            tiempo -= Time.deltaTime;
            contador1.text = " " + tiempo.ToString ("f0");
            if (tiempo <= 0) {
                contador1.text = "0";
                fin1.enabled = true;



                {




                    //Destroy (gameObject, 0.0f); //////original activado

                    {

                        //Application.LoadLevel (1); ESTE ES EL ORIGINALLLLLLL

                        //    Application.LoadLevel (1);
                        Application.LoadLevel (30);

                    }
                }
            }
        }

    }

-----------------------------------------------------------------------------------------------------------------------


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambiaa31portacimpacto : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "a31") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (31);




            }
        }
    }

----------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambiaa33 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "a33") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (33);




            }
        }
    }

--------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambialaescenaa9alapretarespacio : MonoBehaviour {


        void Update ()
        {


            if (Input.GetKey(KeyCode.Space))////funciona contantemente al apretar W mayusculas a de ser
                //if (Input.GetKeyDown(KeyCode.W))// funciona pasito a pasito
       

        Application.LoadLevel (9);



        }
    }


--------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;/// <summary>
public class CAMBIAPORTIEMPOAL28 : MonoBehaviour {


        public Text contador1;
        public Text fin1;
        private float tiempo = 15f;
        // Use this for initialization
        void Start () {
            contador1.text = " " + tiempo;
            fin1.enabled = false;




        }

        // Update is called once per frame
        void Update ()
        {
            tiempo -= Time.deltaTime;
            contador1.text = " " + tiempo.ToString ("f0");
            if (tiempo <= 0) {
                contador1.text = "0";
                fin1.enabled = true;



                {




                    //Destroy (gameObject, 0.0f); //////original activado

                    {

                        //Application.LoadLevel (1); ESTE ES EL ORIGINALLLLLLL

                        //    Application.LoadLevel (1);
                        Application.LoadLevel (28);

                    }
                }
            }
        }

    }

-------------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;/// <summary>
public class cambiaportirmpoal35 : MonoBehaviour {



        public Text contador1;
        public Text fin1;
        private float tiempo = 70f;
        // Use this for initialization
        void Start () {
            contador1.text = " " + tiempo;
            fin1.enabled = false;




        }

        // Update is called once per frame
        void Update ()
        {
            tiempo -= Time.deltaTime;
            contador1.text = " " + tiempo.ToString ("f0");
            if (tiempo <= 0) {
                contador1.text = "0";
                fin1.enabled = true;



                {




                    //Destroy (gameObject, 0.0f); //////original activado

                    {

                        //Application.LoadLevel (1); ESTE ES EL ORIGINALLLLLLL

                        //    Application.LoadLevel (1);
                        Application.LoadLevel (35);

                    }
                }
            }
        }

    }

--------------------------------------------------------------------------------------------------------------------

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CAMBIO28 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "OTROMALO") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (28);




            }
        }
    }

----------------------------------------------------------------------------------------------------------------------


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CAMBIOA27 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f);


            if (collision.gameObject.tag == "CAPSULAMALO") {
                //Destroy (gameObject, 2.0f);

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (27);




            }
        }
    }
-------------------------------------------------------------------------------------------------------------------


Estos scripts de c# son ejemplos para cambios de escenas por tiempo y cambios de escenas por colisiones con gameobjets con un nombre de tag especifico para crear los cambios......no los e puesto todos es solo para que el que los vea se aga una idea del funcionamiento del videojuego al jugar con los cambios de escenas con el tema ,,,,tiempo y colision,,,,

 En la imagen se ven las treinta y pico escenas que uso en el videojuego.........

En la imagen se ven las treinta y pico escenas que uso en el videojuego.........

El videojuego funciona a la perfeccion en su version de descarga desde itch.io pero en la version de jugar desde la web tiene bugs, ignoro el motivo pero se repite continuamente una escena del videojuego del impacto a un personaje....solo ocurre en la version web, en la de descacarga ningun problema.


De todas formas la version web tambien es jugable pero has de ser muy rapido al acertar los disparos...rapidisimo bamos¡¡¡¡¡¡


El player dispara desde 3 lugares diferentes, tiene 3 objetivos en conjunto .

1-personajes aislados.

2-un ascensor para destrozar.

3- un personaje cargado encima de explosivos que si le das destruyes todo y todo y todo y a todossssss.

En resumen es un videojuego que solo tiene el objetivo de ir explorando lo que se puede disparar y ver que pasa, lo mejor del videojuego es que es completamente fluido,

 el cambio de escenas me salio genial en el sentido que el juego no se relantiza no funciona lento para nada en ningun instante....

y lo podia haber seguido trabajando asta alcanzar alrededor de 1Gb de capacidad, es lo maximo que me dejan para subir un videojuego a internet sin pedir permisos o consultas adicionales desde itch,io  ,,,

 o desde gamejolt......ademas boy a empezar un vidojuego nuevo sobre un minero y una mina...

.quiero jugar con las luces en este nuevo proyecto, y acerlo muy corto, muy concreto, y que sea completo, con principio y fin....no cuento nada que me lo copian.....pero saldra en itch.io ...

.a la venta....un proyecto pensado para las navidades que ya se caen encima nuestro...hare una demo y el proyecto completo lo vendo por 1 dolar...

.si no vende lo pondre gratis con el tiempo...¡¡ja ja ja ja ja ja!!!  es un jovi una aficion la mia..pero que narices lo economico motiva un monton cuando te ponen la miel en los lavios.




Seguire con detalles del videojuego C# scripts del videojuego THE OLYMPIC SNIPER,

este script de devajo cambia de escena al apretar la tecla "espacio" "espace" la mas alargada del teclado...


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cambialaescenaa9alapretarespacio : MonoBehaviour {


        void Update ()
        {


            if (Input.GetKey(KeyCode.Space))////funciona contantemente al apretar W mayusculas a de ser
                //if (Input.GetKeyDown(KeyCode.W))// funciona pasito a pasito
        

        Application.LoadLevel (9);



        }
    }

-------------------------------------------------------------------------------

---------------------------------------------------------------------------


Las de cambio de escena por tiempo, explicare su funcionamiento lo mejor que pueda ....pongo un ejemplo aqui devajo....e imagenes captura de imagenes,,,,,




    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;/// <summary>

public class cambioaescenaanueve : MonoBehaviour {


        public Text contador1;
        public Text fin1;
        private float tiempo = 15f;
        // Use this for initialization
        void Start () {
            contador1.text = " " + tiempo;
            fin1.enabled = false;




        }

        // Update is called once per frame
        void Update ()
        {
            tiempo -= Time.deltaTime;
            contador1.text = " " + tiempo.ToString ("f0");
            if (tiempo <= 0) {
                contador1.text = "0";
                fin1.enabled = true;



                {




                    //Destroy (gameObject, 0.0f); //////original activado

                    {

                        //Application.LoadLevel (1); ESTE ES EL ORIGINALLLLLLL

                    //    Application.LoadLevel (1);
                    Application.LoadLevel (9);

                    }
                }
            }
        }

    }




Hay que poner un canvas y unos textos que se tienen que arrastrar con el mouse en las casillas vacias del escript,,,,,los textos tiene que tener el numero 0.

Si no se hace esto no funciona.



Esto es en el tema por tiempo que cambia la escena.

En el tema de colision por tag, al impactar el proyectil sobre un personaje que tiene un tag concreto, hace que se cambie la escena,,,,en esta imagen captura pongo los diversos escripts con la orden de tag concreto en cada uno de ellos para que aga los cambios de escenas en el videojuego...


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CAMBIO28 : MonoBehaviour {



        void Start () {

        }




        //void OnCollisionEnter (){


        void OnCollisionEnter (Collision collision)
        {
            //if (collision.gameObject.tag == "maloazul (4)") {
            //Destroy (gameObject, 0.0f); 


            if (collision.gameObject.tag == "OTROMALO") {
                //Destroy (gameObject, 2.0f); 

                //    transform.position = new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo mio
                //transform.Translate (new Vector3 (198 * Time.deltaTime, 20, 136.2f), Space.Self);/////////////IMBENTADO

                //Application.LoadLevel (1);////ORIGINALLLLLLLLLLLL
                Application.LoadLevel (28);




            }
        }
    }




El personaje se llama "malopasea1" pero le puesto un tag con el nombre "OTROMALO"    el cual es el que esta escrito en el script y hace la funcion del cambio de la escena,,,,es un pelin complicado a lo primero de entender,,,,,hay que hacer muchos juegos y repetirse para ir comprendiendolo.....pero cuando se consigue armonizar el tema quedan las ideas geniales , me refiero los cambios que se pueden conseguir durante el juego.https://gamejolt.com/games/farncotrador_olimpico-3/654733

martes, 12 de octubre de 2021

"THE OLYMPIC SNIPER" ;

 

VIDEOJUEGO DE EXPLORACION Y DISPAROS , CONTIENE "DEMO" GRATUITA PARA PROBARLO Y EL JUEGO COMPLETO PARA DESCARGAR SI GUSTA A PRECIO ECONOMICO,

EXPLORATION AND SHOOTING VIDEO GAME, IT CONTAINS FREE "DEMO" TO TRY IT AND THE FULL GAME TO DOWNLOAD IF YOU LIKE AT ECONOMIC PRICE,

"THE OLYMPIC SNIPER"
"EL FRANCOTIRADOR OLIMPICO"

martes, 5 de octubre de 2021

Ejemplo para descargar y estudiar un videojuego echo con Unity, desde “mega” web para alojar archivos;

 

Ejemplo para descargar y estudiar un videojuego echo con Unity, desde “mega” web para alojar archivos, llevo días sin ampliar mi blog porque estoy centrado en estudiar y ampliar este videojuego que precisamente voy a poner un enlace para descarga y estudio de dicho juego en sus inicios, en el van ,los gráficos, los Asets, los scripts en C# , para el que quiera analizarlo y un par de enlaces de la publicación de este videojuego que sigo trabajándolo porque me entusiasma el juego de cambio de escenas y el juego con las cámaras, e conseguido también una fluidez total del videojuego al cargar escenas continuamente, en fin pongo aquí los enlaces de la descarga desde “mega” web para alojar archivos, y pongo lo publicado desde gamejolt….


La gente que conoce Unity si les sirve de algo hay lo tenéis, yo no soy un genio pero siempre abra quien tiene mas conocimientos y quien tiene menos, yo casi todo lo aprendido a sido por gente que a dado a conocer por internet sus conocimientos y, bueno aquí pongo yo mi granito de arena, quizás sea útil alguna persona.

 

https://mega.nz/file/wVBQnZwa#nGl2-ieD5oztjm0MqT9E2zBFAwEUSbJkTQkhKFwAXG0 

ignoro si esta descarga tiene algun tipo de caducidad, mirare de enterarme bien, aqui teneis el videojuego para poder cargarlo desde Unity y estudiarlo o transformarlo.... es algo pesado 1,32 GB pero de cosas utiles.

Si alguien no puede descargarselo por favor mandarme un email a...

asaco415@gmail.com 

mirare de solucionarlo....pero a fecha de hoy 5-10 -21 creo no abra ningun problema en varios meses.

Yo ahora mismo e realizado una  descarga y me funciona sin ningun problema.

La carpeta "FRANCOTIRADOR" es la que teneis que abrir desde Unity, el resto de carpetas son diversas compilaciones del videojuego y fotos de documentacion y diversas anotaciones....cuando abrais la carpeta "FRANCOTIRADOR" encontrareis muchos scripts en c# sobre cambios de escenas por colisiones y por tiempos, archivos de sonido, graficos del videojuego, efectos de agua manipulables, una carpeta sobre tema disparos exclusivamente que podreis analizar y probar con sus scripts y graficos, personajes echos desde makehuman-community, manipulados con blender animados desde Unity....



https://gamejolt.com/games/FRANCOTIRADOR_OLIMPICO/645186

aqui teneis el videojuego para jugar desde web sin instalacion alguna desde gamejolt. 



Un adelanto del videojuego que publicare en itch.io de aqui unas semanas y que podreis descargar por 1dolar + o - , la demo sera gratuita, y el juego completo sera a 1 dolar y pico, ya vendi una descarga de otro juego diferente hace unas semanas porque no otra vez??? ¡¡¡mas y mejor!!!.

domingo, 26 de septiembre de 2021

DAZ Studio 4.15 (64-bit) ;

 

DAZ Studio 4.15 (64-bit) Nueva herramienta de trabajo para desarrollar complementar la creación de videojuegos.

Hace tres días la descubrí.

Es gratuita para trabajarte con ella animaciones manualmente.

Incluso facciones del rostro te anima para dar expresiones.

Contiene también animaciones gratuitas para aprovechar.

Y existen muchos tutoriales de YouTube de los que aprender con un poco de paciencia lo que e aprendido ya casi con este software.

Animar.

Texturizar, aplicarlos ejemplos gratuitos que contiene para exportar a Unity.

Pasarlo a Unity con formato fbx.

Los ejemplos gratuitos se pueden manipular, deformar el cuerpo de los ejemplos, para crear deformidades, mutaciones, monstruos grotescos etc.

Utilizar la herramienta es gratis…..si se quiere ampliar con animaciones personajes, ropas complementos entonces solo en ese aspecto es de pago.

Creo es un complemento estupendo junto a herramientas como blender, makehuman-community

y el propio Unity desde el cual también se animan manualmente los personajes, creo que en tema animar de todos ellos el mejor para animar manualmente es DAZ. Pongo el enlace para quien quiera probarlo, cuesta un poco desenvolverse con el al principio pero como e comentado hay muchos videos en youtuve que explican muy bien estos temas en concreto, animar texturizar y pasar los gameobjects a Unity.



https://www.daz3d.com/

 

 

Pongo un breve video de resumen de lo comentado, para hacer animación nueva, botón derecho del ratón y se habré la opción para trabajar este tema.

 El programa es gratuito y comprando la licencia funciona con las caracteristicas de animar como te apetezca; sino la compras funciona a medio gas, dependiendo que utilidad querais darle hay esta el tema sobre este programa. De todas formas solo lo he estudiado y probado una semana.

Quizas este yo equibocado.....

En fin que nadie regala duros a cuatro pesetas....supongo habra que animar y  modelar con blender , y animar tambien con unity y aprobechar lo que se pueda con makehuman-community.

Al menos en mi caso que no puedo comprar programas profesionales de pago.


 

 

domingo, 12 de septiembre de 2021

miércoles, 8 de septiembre de 2021