Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 04/23/2012 in Posts

  1. 10 points
    Muchos lo sabréis y otros no, pero hay una lista de recursos bastante tocha hecha en zeef.com de recursos para el desarrollador de videojuegos. Espero que os sea de utilidad! https://game-development.zeef.com/daniel.cuadrado.gonzalez
  2. 7 points
    Mi primer vídeo juego en Unity 3D Personal. También hecho con MakeHuman y blender. Mi blog
  3. 7 points
    Hola gente les dejo un link a mi curso de youtube, totalmente gratuito y disponible para la comunidad. Esta totalmente actualizado al 2020 y hecho por mi, soy programador con titulo universitario y 10 años de experiencia en unity! El curso esta dividido en niveles de dificultad, Comenzando para gente que nunca toco unity y terminando con contenido muy avanzado como creacion de framework propios para multiplayer, entre otras cosas. Para que los usuarios mas avanzados puedan saltearse las partes que no les sirve y explorar mas fácilmente el contendio. Son mas de 200 videos, con muchisimas horas de grabacion que complete con la intención de subir a udemy. Al terminarlo cambie de parecer y ahora lo estoy subiendo de forma gratuita a youtube. Se sube 1 video cada dia de forma atomatica, y ya estan todos los videos seteados para subirse a youtube de forma automatica a este ritmo. Link: https://www.youtube.com/channel/UCl3p_fKnx2-GIUWVbiDAcMg Sin mas, espero verlos por mi canal y que les sirva el curso. Un saludo!!
  4. 7 points
    ABRAMELIN GAMES Injection π23 Survival-horror clásico Inspirado en una pequeña localidad de Málaga. Jugabilidad orientada a resolver puzzles, exploración y supervivencia. 4 modos de cámara: 1ª persona, 3ª persona (camara libre y autocam) y camaras fijas (survival-horror clásico). Juego no recomendado para menores de 18. Plataforma: PlayStation 4, Windows (x64) Desarrollado por: J.A.M. (Abramelin Games) Colaboraciones: Abramelin logo, bocetos y cover art por Danilo 'Do Burundanga' Supervisión de código, sistema Autotarget 3ª persona, Autocam y sistema IK por Francisco Javier Tejada. Guía de optimización: LightBug Luces volumétricas open source por Michal Skalsky Actores de voces: Bernardo Casado (grabaciones cintas, doctor1) Jonathan Casquete (ex-militar, policia1) Virginia Montero (niño walkman) Miguel Flames (sacerdote2, policia2) Javi Ruiz (personaje principal) Luis Alberto Martin (doctor2, magnate) Pablo Ibañez (sacerdote1) Ruth pascual (doctora) Diego Orellana (enterrador, enfermero, guardaespaldas) Carlos Cremades (dueño del club) Francisca Rey (mujeres del club, ermitaña) Jose M. Sancho (profesor) http://abramelingames.blogspot.com/ www.abramelingames.com https://twitter.com/AbramelinGames
  5. 6 points
    Hola. estoy terminando uno de mis proyectos. se trata de un juego de naves, un matamarcianos (shoot'em up)... con toques de rouge lite. Falta terminar los modos de juego extras (modo arena, modo survival, y modo bossRush). El modo historia esta acabado, con 25 escenarios y 10 escenas especiales.... no es necesario pasar por todas para llegar al final, puedes elegir multiples caminos. (no es lineal). De momento tiene mas de 30 enemigos diferentes (contando los bosses). 16 skills diferentes (armas secundarias) y multiples mejoras para la nave. Banda sonora original con mas de 40 temas. A ver que os parece... vuestros comentarios seran bien recibidos. trailer gameplay: special scenes trailer: boss trailer:
  6. 6 points
    Estoy leyendo el libro "Unity Game Optimization" que está en Packt y la tercera edición es de noviembre de 2019. He hecho un resumen de los apartados dedicados a scripting que me parecen muy buenos. Algunos los conoceréis, otros no y otros es posible que no supiérais porqué utilizar una manera u otra. En todos los casos el concepto de optimización ve sus frutos cuando es un desarrollo de cierto tamaño. Desde mi punto de vista, si empiezas con buenos hábitos, luego no tendrás los mismos problemas de rendimiento que el resto de desarrolladores. La optimización se debe realizar desde el día 1. Paso a relatar. Optimización 1 Eliminar las callbacks vacías de Start() y Update() al crear un script si no son necesarias. El tenerlas afectará a la inicialización de la scene y al instanciar prefabs. La de OnGUI() es especialmente problemática ya que puede llamarse más de una vez por frame. En la de Update() se realiza un Native-Managed Bridge, o sea, hay que enlazar el modo managed de C# con el del código nativo dependiente de plataforma. En general no dejar nunca una callback vacía. Optimización 2 Cómo obtener los componentes de un GameObject. Hay tres maneras de hacerlo, aunque a la práctica se utilizan dos de ellas. Los datos hablan por si mismos para 30.000 objetos. // 6413 ms test = (TestComponent)GetComponent("TestComponent"); // 89 ms test = GetComponent<TestComponent>(); // 95 ms test = (TestComponent)GetComponent(typeof(TestComponent)); El mejor es del uso del template o tipo genérico. Como en C++ ;) Optimización 3 Cachear los GetComponent, preferiblemente en el Awake. Esto es realmente crítico si se realiza en el Update. Al final obtendremos un mejor rendimiento a cambio de un coste de memoria mínimo (entre 32 ó 64 bytes por item dependiendo de la plataforma). Optimización 4 El uso de funciones dentro de Update. Si las acciones no requieren se llamadas en cada frame es mucho mejor convertirlo a un InvokeRepeating que puede llamarse en el Start y cancelarse en el OnDestroy: private void Start() { InvokeRepeating("ProcessAI", 0f, _aiProcessDelay); } Optimización 5 La comparación de objetos null. La llamada directa de "gameobject == null" genera una conversión Native-Managed Bridge con la consiguiente sobrecarga. Es mucho mejor utilizar el ReferenceEquals que no utiliza la conversión. Por eso se incluyó en Unity: if (!System.Object.ReferenceEquals(gameObject, null)) { // No es null } Optimización 6 La comprobación con Tag directa genera memoria adicional y hará actuar al GC posteriormente. Utilizar el CompareTag no utiliza memoria ya que evita el Native-Managed Bridge completamente y tarda la mitad de tiempo: // Asignación de memoria y GC. Tarda el doble de tiempo if (gameObject.tag == "Player") { // realizar acción } // Evita el Native-Managed Bridge totalmente. No asigna memoria adicional if (gameObject.CompareTag ("Player")) { // realizar acción } Optimización 7 Dictionary vs List. Las List son mejores para iteraciones. Los Dictionary son mejores para búsquedas aleatorias. El Dictionary es peor para las iteraciones debido a que debe realizar una comparación hash para cada uno de los elementos. De todos modos tener los dos tipos en algunas situaciones no es mala idea. Optimización 8 La Transform. Cuando instanciamos un nuevo GameObject con GameObject.Instantiate(), uno de sus argumentos es el componente de la Transform del parent que queremos asignar, que por defecto es null y colocará el GameObject en el root. Todas las Transforms que está a nivel root necesitar crear un buffer de memoria para poder almacenar los children que tienen más aquellos que vendrán después. Esto no ocurre con las Transforms que son child. Pero si una Transform en root le cambiamos el parent una vez creada y la reasignamos, se procederá a descartar el buffer de memoria que iniciamos en el Instantiate. Para evitar esto es mejor proveer del parent en la función. Otro apartado interesante es que, hay una propiedad en la Transform llamada hierarchyCapacity. Si somos capaces de estimar el número de Transform child de este objeto root, podremos reducir el número de asignaciones de memoria. Optimización 9 World Position, World Rotation, World Scale. Cuánto más profundo esté en la jerarquía un objeto mayores cálculos son necesarios para determinar el resultado final de su estado. Esto significa que es mucho más eficiente utilizar los elementos de Local que de World. Optimización 10 Cambios en la Transform. Si es posible, agrupar todos los cambios en una Transform y no realizarlos hasta el final de todos los cálculos y en FixedUpdate. Esto evitará movimientos extraños o teleportaciones de los objetos debido a que Unity lanza eventos internos cada vez que una Transform es modificada. private bool _positionChanged; private Vector3 _newPosition; public void SetPosition(Vector3 position) { _newPosition = position; _positionChanged = true; } private void FixedUpdate() { if (_positionChanged) { transform.position = _newPosition; _positionChanged = false; } } Optimización 11 SendMessage y Find. El método SendMessage() y la familia de métodos GameObject.Find() so especialmente costosos y deben evitarse en su totalidad. El método SendMessage() es como 2,000 veces más lento que una simple llamada a una función, y el coste de Find() se escala pobremente según la complejidad de la scene aumente ya que tiene que iterar por todos los GameObject de la misma. Optimización 12 No solamente Occlusion Culling/Frustum Culling. Para los objetos que solamente tienen renderizado es factible utilizarlas únicamente. Otros objetos que utilicen cálculos internos de manera constante continuarán consumiendo a pesar del Culling. Una buena solución a este problema es utilizar las callbacks OnBecameVisible() y OnBecameInvisible(). Como los nombres dicen, estas callbacks son invocadas cuando un objeto renderizado se ha vuelto visible a una cámara o invisible respecto a todas las cámaras de la scene. Además, cuando hay múltiples cámara en la scene (por ejemplo en un juego multiplayer) las callbacks son solamente invocadas cuando es visible para una cámara o invisible para todas ellas de igual modo. Esto significa que las callback serán llamadas en el momento preciso que se necesitan. Si nadie puede ver el objeto se llamará a OnBecameInvisible(), si como mínimo un player puede verlo se llamará a OnBecameVisible(). Optimización 13 Distance vs sqrMagnitude. El cálculo de raíces cuadradas para las CPU implica bastante proceso comparado con otras instrucciones. Cuando tengamos que utilizar un cálculo de distancia, y si no requerimos de una precisión extrema, es mejor utilizar sqrMagnitude y valor a comparar por su potencia de 2. // Utilizar la raíz cuadrada en Distance() float distance = (transform.position – other.transform.position).Distance(); if (distance < targetDistance) { // dentro de distancia } // No realiza el proceso anterior float distanceSqrd = (transform.position – other.transform.position).sqrMagnitude; if (distanceSqrd < (targetDistance * targetDistance)) { // dentro de distancia } Optimización 14 Datos de Prefab a un Scriptable Object. Si tenemos muchos diferentes tipos de Prefabs que contienen datos que pueden compartirse entre ellos, como fuerza, velocidad, puntos, etc. entonces todos estos datos serán serializados en cada Prefab que luego se instancie. Una mejor solución es serializar estos datos en un ScriptableObject. Esto reduce la cantidad de datos a serializar en el Prefab, el tiempo de deserialización y el tamaño del Prefab en sí mismo reduciendo el tiempo de acciones que serán repetitivas. Optimización 15 Update(). Una mejor solución al problema del Update() es no utilizar nunca, o mejor dicho, una sola vez. Cuando Unity llama al callback Update(), o cualquiera relacionado, cruza la ya comentada frontera del Native-Managed Bridge que es una tarea costosa en términos relativos. En otras palabras, el coste de procesamiento de 1.000 Update() independiente será mucho más costoso que la ejecución de un Update() con 1.000 funciones. Para poder minimizar este problema es mejor agrupar todos los Update() en un solo Update() global que luego llame a las diferentes funciones que requieran la acción.
  7. 6 points
    Hola, He creado unos pocos vídeos de programación básica de NPC's, o programación de NPC's básicos. La intención es ir creando mas de esta tématica, sin obligación, y de tanto en tanto, pero irlos agrupando en la misma lista de visualización de youtube: Aquí os la dejo: Por ahora hay tres vídeos, o 2.5 por que el último es un poco ampliación del primero. -Como crear NPC's en Unity que te siguen. -Creamos un centinela con Waypoints en Unity, -Como hacer un NC persiga y huya en modo pánico. Ya ire informando de nuevas incorporaciones a la lista 🙂
  8. 6 points
    Introducción En esta ocasión vamos a crear una Carta con un efecto 3D similar a la que vemos en el gif anterior. Para ello vamos a partir de un proyecto donde tenemos preparados los assets necesarios. Este proyecto podemos descargarlo desde aquí: URL: https://drive.google.com/open?id=19J6lgCA-DH28lMu9dmntk1K5l3lPE66f Una vez descargado vamos a abrirlo desde el Unity Hub. Este proyecto está creado con la versión 2019.2.9f1 asique podría ser incompatible con versiones anteriores. Una vez abierto vamos a tener una escena llamada “Sample Scene” y una serie de carpetas con los modelos,sprites,prefabs… necesarios. Además contamos con los paquetes TextMeshPro y PostProcessing que usaremos a lo largo del tutorial. Puedes acceder en todo momento a los paquetes usados a través del Package Manager. Preparando el proyecto En primer lugar vamos a abrir la escena “Sample Scene” y vamos a arrastrar en ella el prefab “Hornet” dentro a la ventana de Hierarchy. Verás que aparece en rosa, eso es debido a que no tenemos aún ajustado el Render Pipeline. Vamos a empezar por ahí. Vamos a crear una carpeta Settings donde colocaremos aquellos ajustes globales del proyecto. Siéntete libre de elegir otro nombre, yo siempre soy malisimo poniéndolos. Una vez creada vamos crear una configuración pulsando click derecho y Create/Rendering/LightweightRenderPipeline/PipelineAsets. Elige el nombre que quieras y seleccionalo para verlo en la ventana de Inspector. Aquí tenemos los ajustes del Render Pipeline. La configuración es muy intuitiva y prácticamente todo hace lo que indica. En nuestro caso solamente vamos a activar el HDR y el antialiasing. Lo demás no lo tocaremos, aunque esto va de experimentar, así que “rómpelo” a tu gusto. Una vez creado vamos a añadirlo a nuestro proyecto, para ello vamos a irnos a ProjectSettings/Graphics y lo colocamos en el hueco de Scriptable Render Pipeline Settings. Hecho esto si volvemos a la escena podemos ver que el color rosa ha desaparecido. Aunque ahora se verán blanco. No te preocupes que ese será nuestro siguiente paso. También verás que hay una luz añadida dentro del prefab de Hornet. Está configurada por mi pero llegado el punto puedes quitarla o cambiarla como quieras. Creación de Shaders Vamos a darle color a nuestros objetos ahora. Como has podido ver todos los objetos están en blanco. Eso es porque nuestros shaders y materiales están por defecto. Para nuestro objetivo vamos a necesitar crear un shader con la herramienta Shader Graph. Esta ya viene por defecto en todos los proyectos que usen el Scriptable Render Pipeline nuevo. Para ello vamos a crear una nueva carpeta llamada Shaders y vamos a crear un nuevo Shader PBR (Create/Shader/PBR Graph). Puedes ponerle el nombre que quieras, en mi caso lo he llamado Standard_SG (ya he dicho que soy muy malo poniendo nombres). Vamos a seleccionarlo y abrirlo. No es el objetivo de este taller aprender a usar ShaderGraph, asique no voy a pararme en explicar el contenido, aunque como veréis es muy fácil e intuitivo lo que haremos. Crearemos las siguientes variables: Conectaremos al Albedo un Sampler de una textura y la multiplicaremos por un color. Cómo veis el shader es lo más simple posible. Haremos lo mismo en el canal de Emission para poder ajustar la emisión de algunos objetos posteriormente. Pulsamos en Save arriba a la izquierda y cerramos. Ya tenemos nuestro shader creado pero tenemos un problema que veremos a continuación. Stencil Buffers Para obtener el efecto que buscamos tenemos que conocer el concepto de Stencil Buffer. Con ellos podemos principalmente renderizar unas partes de un objeto y descartar otras. Aquí podemos obtener más información: https://docs.unity3d.com/Manual/SL-Stencil.html https://www.ronja-tutorials.com/2018/08/18/stencil-buffers.html El objetivo es mantener “invisible” un objeto y que cuando este se encuentre en la “visión” de otro objeto, se muestre. Vamos a necesitar por dos shaders: Uno que leerá del stencil buffer y se dibujará solo donde el búfer tenga un valor específico, en cualquier otro lugar se descartará. Por otro, un shader que permanerá siempre invisible y que solamente mostrará aquellos valores específicos que coincidan con el stencil buffer. Para el primer solo necesitamos añadir unas líneas, pero actualmente no es posible hacerlo a través del ShaderGraph. Por lo que vamos a realizar una transcripción del Shader Graph al código. Para esto vamos crear un nuevo Shader Unlit pero esta vez no será de ShaderGraph. Le ponemos de nombre Standard_StencilRead por ejemplo y lo abrimos. Mientras se abre vamos a volver al Shader Graph y vamos a realizar la copia del código del shader. Para ello nos vamos al PBR Master Node y con el botón derecho seleccionamos Copy Shader. Una vez copiado vamos a pegarlo en nuestro reciente nuevo shader unlit creado, sobreescribiendo todo lo que este tuviese. También deberás cambiar la primera línea y ponerle tu la dirección y el nombre que elegimos antes. En mi caso lo he guardado en MyShaders con el nombre Standard_StencilRead. Ahora tenemos el mismo shader de Shader Graph pero en código para poder modificarlo. Vamos a necesitar añadir una nueva propiedad que será el valor específico del stencil. Simplemente dentro de properties al final, debajo del Color añadimos lo siguiente: [IntRange] _Stencil ("Stencil Value", Range(0,255))= 0 Quedando de la siguiente manera: Por último vamos a necesitar añadir los ajustes del Stencil debajo de los Tags antes de los diferentes pases. Esto hará que sólo cuando tengamos el valor de referencia, el objeto se muestre. Podemos obtener más información sobre la sintaxis y el contenido en los enlaces que anteriores. Ya podemos guardar el shader y volver a Unity. Tenemos preparado nuestro primer Shader. Para el segundo simplemente creamos otro shader unlit de nombre StencilWrite por ejemplo. Este estará siempre invisible y servirá para mostrar los objetos que compartan valor de referencia. Abrimos el shader y lo modificamos de la siguiente forma: En properties añadimos el valor de Stencil como con el anterior y eliminamos cualquier otra propiedad (normalmente textura) ya que este shader queremos que se muestre totalmente invisible. Añadimos el Stencil y le decimos que esté siempre comparando y si en algún momento el valor de referencia es el mismo, lo reemplace. Ahora le decimos al buffer de profundidad que no se escriba (por ser un objeto que será invisible) y cambiamos el modo de Blend. Podemos obtener más y mejor información de esto aquí: https://docs.unity3d.com/Manual/SL-Blend.html También eliminamos todos los añadidos de Fogs por defecto de Unity y aquellas referencias a texturas que no nos interesan. Por último hacemos que la función frag devuelva siempre 0, ya que como hemos comentado esto se muestra siempre como invisible. Con esto tenemos todo listo para pasar al montaje de la carta. PD: Asegurate también de que lo tienes en la misma ruta que el anterior. Esto no es necesario, pero te facilitará encontrarlo más adelante. En mi caso al igual que antes, esta en la ruta MyShaders. Montaje de la carta Para empezar vamos a cambiar por fin el blanco de nuestra escena, para ello vamos a irnos a Materials/Hornet y seleccionando todo vamos a elegir nuestro Shader (en este caso el Standard_StencilRead) Ahora tendremos que arrastrar las texturas requeridas (Main Texture y Emission Texture) si procede y establecer el MainColor en blanco (tened cuidado que el alfa no este a 0) y el EmissionColor en negro. En el caso que no tengamos texturas (como en el caso del personaje Hornet) simplemente cambiale el MainColor a tu gusto. Puedes hacerlo similar al original o ponerle tu propia versión. Así quedaría el del grass_material por ejemplo: O el dress_material, que no tendría textura: Sigue estas pautas en los demás materiales. El stencil value lo cambiaremos más adelante, de momento necesitamos ver en pantalla todo y no solo cuando este a través de nuestro “marco”.. Una vez terminado debería de quedarte algo similar a esto: Ahora vamos a crear un nuevo objeto en la escena llamado Card y lo ponemos en la posición 0,0,0. Ahora buscamos el Sprite “cover” dentro de Sprites y lo arrastramos dentro de Card. Le damos el tamaño a nuestro gusto. Este será el envoltorio de la carta. Ahora vamos a crear un Quad dentro de Card. Le ponemos de nombre StencilMask y lo colocamos en la posición 0,0,0 también. Este será nuestro marco a través del que se verá nuestra Hornet. Para poder ajustarlo vamos a tener que configurar ya el valor de referencia del stencil así como crear un nuevo material StencilWrite para nuestro quad recién creado. Vamos a empezar por esto último, crearemos un nuevo material con el shader StencilWrite. Lo colocamos dentro de Materials para tenerlo ordenado. A este material le vamos a poner en el valor de Stencil el valor 2 por ejemplo. Es simplemente un valor referencia, mientras tanto el receptor como el emisor tengan el mismo, funcionará. Una vez configurado vamos a arrastrarlo al StencilMask (o cambiamos el material dentro de MeshRenderer) para colocarselo. Veréis que se ha vuelto invisible, eso es que funciona como debería. Por último vamos a irnos a los materiales StencilRead que configuramos anteriormente y vamos a ponerles el mismo valor de referencia al Stencil. Seleccionamos todos o uno a uno y en Stencil Value le colocamos 2. Ahora debería de volverse todo invisible en la escena quedando solo la carta en negro. Vamos a desactivar de momento la carta llamada “cover” (o el nombre que tu le hayas puesto) de la ventana de Hierarchy. No se ve nada pero no es un error. Ahora mismo todos los shaders tienen el mismo Render Queue por lo que nuestro efecto no está funcionando. Más información de esto aquí: https://docs.unity3d.com/Manual/SL-SubShaderTags.html Sabiendo esto solamente tendremos que asegurarnos que nuestro StencilWrite se renderice antes. Vamos a nuestro material y le restamos 1 al RenderQueue. Con esto ya deberiamos tener visible nuestro modelo únicamente cuando estemos viendolo a través de nuestro quad. Ahora volvemos a activar el cover para ajustar la carta y el hueco como queramos. Al activarlo verás que tapa la visión a través del quad. No te preocupes, simplemente ve a los ajustes del SpriteRenderer del cover y cambia el MaskInteraction a Visible Outside Mask. Ahora ajustamos el Quad hasta tener el tamaño que deseemos. Una vez confirmado podemos probar a girar en la escena alrededor de la carta para comprobar el efecto. Para organizar mejor la escena vamos a colocar el objeto Hornet dentro de Card y vamos a crear un prefab para tenerlo guardado. Gracias a los Nested Prefab ya podemos hacer prefabs dentro de prefabs, asique nos viene genial. Ahora solo nos falta añadirle algo de texto. Vamos a usar TextMeshPro para esto. Pulsamos botón derecho y creamos un nuevo texto en 3D. Vamos a empezar por el nombre de la carta, por lo que le ponemos de nombre al text “Name” por ejemplo. Vamos a escribir el texto del nombre en el apartado Text y vamos mover y escalar el objeto colocándolo donde más nos guste. En mi caso he decidido ponerlo arriba. Vereis que no se ve cuando lo colocamos en la zona de la carta. Eso es por el orden de renderizado que tienen. Vamos a abrir los ajustes extra del texto (extra settings) y vamos a subirle el orden in layer a 1. Con esto conseguimos verlo, pero existe un problema, que el texto aparece también por detrás. Esto lo solucionaremos más adelante ya que tendremos que añadir un script simple para que active el culling. Llegados a este punto me he dado cuenta de que la carta está colocada del revés y el nombre por la parte trasera se ve invertido. En nuestro caso podemos solucionarlo rápido ya por delante la carta no se ve afectada. Simplemente nos vamos al objeto “cover” y marcamos Flip X. De esta forma la parte de atrás estará perfecta. En el caso de que tuvieras una imagen diferente deberías tener cuidado ya que la carta es la misma tanto en la partal como en la dorsal. Todo se dará la vuelta. Si quieres tener un control más exacto, deberás tener una carta delantera y otra trasera, cada una con su ajustes (y quizás optimizada para no pintar dos cada cara). Vamos a guardar el avance, aplicamos el prefab y guardamos escena. Deberíamos tener algo similar en estos momentos: Vamos a crear ahora otro texto para colocarlo en la parte de debajo. Duplicamos el objeto Name con Control+D y cambiamos el nombre a Description. Movemos el objeto a nuestro gusto, en mi caso lo coloque en la parte de abajo, centrado. Puedes tocar los ajustes del TextMesh que son maravillosos, sobre todo si has trabajado con el deprecado Text. Si queremos podemos cambiar la fuente. Para ello simplemente tendrás que descargarla de internet (o obtenerla de otra forma) y meterla dentro de Unity. Una vez dentro no es simplemente arrastrarla. Para poder usarla en TextMesh necesitarás crear un atlas de la fuente. Pero es fácil de hacer, simplemente abre la ventana Font Asset Creator desde WIndows/TextMeshPro. Selecciona la fuente y pulsa Generate Font Atlas (si quieres cambiar algún otro ajuste puedes hacerlo, pero ten cuidado. Más información sobre esto aquí: http://digitalnativestudios.com/textmeshpro/docs/font/ ) Una vez generada simplemente guárdala donde quieras y luego colócala en el texto dentro de Main Settings: Una vez tengamos la descripción vamos a guardar el prefab y a colocar los Post Procesos. Para ello Vamos a ir a la cámara y vamos a asegurarnos que tiene añadido un Post Process Layer. Esto es imprescindible para poder continuar. También vamos a activar a antialiasing FXAA y vamos a crear un nuevo layer PostProcessing para posteriormente usarlo en el Volume. Ahora vamos a crear un nuevo objeto en la escena. Le vamos a añadir el componente Post Process Volume. Vamos a marcar IsGlobal porque solo tendremos este para toda la escena y vamos a seleccionar un profile. En nuestro caso no tenemos ninguno creado, asique le daremos a New. Ahora simplemente asegurate de que este objeto está en el Layer PostProcessing De otra forma no funcionará y no podremos ver ningún cambio. Una vez configurado podremos ir añadiendo efectos ya creados por Unity o crear los nuestros propios. En este caso vamos a usar dos creados, el Bloom y el Color Grading. Pulsamos en Add Effect y seleccionamos uno y después el otro. Aquí puedes sacar tu lado artístico y elegir la configuración que más te guste. En mi caso después de una serie de pruebas quedó así: En este punto deberías tener algo similar a esto. Si no es así asegúrate de que el material del lazo tiene un emission color bien configurado. Por último nos queda solucionar el error del texto por ambas caras. Para eso simplemente vamos a crear un script con el nombre CullingTextMeshPro o el que querais y vamos a dejar solo la función Awake con el siguiente código: De esta forma al darle al Play el texto automáticamente hará culling y no se renderiza por detrás. Estuve informándome sobre otras formas de hacer esto, pero las respuesta de Unity fueron que esta era la forma. Pero si conocéis otra forma contactad conmigo y lo actualizo. Espero que os haya gustado y hayáis aprendido cosas nuevas que al final es el objetivo esto. Cualquier duda contacta conmigo via twitter: https://twitter.com/_davidlopez29 o por aquí Hasta pronto!
  9. 6 points
    Hola soy James Roman, tengo ya varios años trabajando con Unity, y actualmente trabajo en una compañía como desarrollador de experiencias en Realidad Virtual. Y tengo ya bastante tiempo trabajando en VRLAB. Puedes verlo desde aqui. ¿Que es VRLAB? Es básicamente una colección de componentes para interacciones en VR usando Oculus, me he enfocado bastante en las armas ya que creo que es una de las cosas mas divertidas de probar en la Realidad Virtual, he incluido diferentes tipos de armas, escopetas, armas automáticas, revolver, arco y flecha, espadas. También diferentes tipos de recarga para estas armas, puedes cambiar manualmente el cargador a cada arma cuando este se agote, recargar usando diferentes tipos de gestos como en dead and buried, puedes recargar el revolver haciendo un giro rápido con la mano. - Armas - Como ya he mencionado he trabajado bastante el tema de las armas con un completo sistema de armas, varias armas ya incluidas (Escopetas, revolver, Automáticas), puedes tomar las armas existentes como base para crear las tuyas, o crear nuevas armas desde 0. - Completo Sistema de Interacción - También posee un completo sistema de interacción, muy extensible, puedes tomar objetos, interactuar con objetos, mover palancas, botones etc, crear animaciones de interacción diferentes para cada objeto, y diferentes comportamientos incluso para cada mano. - Arco y Flecha - Posee un arco realista con el cual puedes lanzar flechas, puedes tomar una flecha de tu espalda o simplemente tomar una que ya hayas lanzado, estas se pegan a los demás objetos de una manera bastante realista. - Diferentes Modos de Recarga - Posee diferentes formas para poder recargar las armas, puedes cambiar el cargador una vez que este se haya acabado, o simplemente realizar gestos con la mano como en dead and buried para recargar tus armas o simplemente tener munición infinita. - Sistema de Combate Cuerpo - En VRLAB puedes tomar un par de espadas y luchar contra los enemigos, los cuales responderán correctamente a las físicas, ademas de eso puedes golpear a los enemigos con tus armas, como con el arco o una escopeta si no tienes munición. - Botones y Palancas - Botones y palancas que responden correctamente a las físicas, desde las distancia puedes activar una palanca con un disparo o simplemente lanzando un objeto. - AI - Aunque el fuerte de este asset no esta en la AI, he añadido unos ejemplos bastantes interesantes y extensibles para trabajar con estos mismos. - Character Controller y Teleport - Tienes diferentes formas de moverte en VRLAB, la mas común quizás moviéndote alrededor con el joystick o usando un sistema de teleport muy parecido al de roborecall. Todo esto en prefabs bien organizados listos para tomar y soltar en la escena, con montones de posibilidades de modificación mediante el inspector, de igual manera me he esforzado para crear un código legible y placentero a la vista, así que si quieres simplemente entrar y mirar como esta hecho todo, y aplicar tus propias modificaciones mediante código, no debería ser muy difícil para alguien que tenga ya su experiencia con Unity. - Futuras Actualizaciones - - Añadir nuevas armas, entre ellas un lanzacohetes. - Sistema de inventario, para que puedas cargar varios objetos a la vez. - También cabe destacar que me gusta roborecall, y quizás añada algunas de sus funciones, entre ellas la posibilidad de tomar balas en el aire y devolverlas a los enemigos. - Luego simplemente escucharlos a ustedes y seguir mejorando. Dejo nuevamente el link al assetstore aqui, si lo pruebas no dudes en dejar un review para seguir mejorando, y si quieres contactar conmigo directamente puedes escribirme a james@unity3dninja.com finalmente los dejo con algunos vídeos cortos mostrando distintas funcionalidades.
  10. 6 points
    Lamentum Se cuenta que un conde vive en una mansión oscura. De él se dice que puede conceder cualquier deseo y que es tal su poder que incluso la muerte no se atreve a cruzar sus dominios. Pero todo tiene un precio... ¿Te atreverías a pagarlo? Sobre el juego: Lamentum es un juego survival-horror en estilo pixel art que tiene lugar en Nueva Inglaterra a mediados del siglo XIX. Tomarás el papel de Victor, un joven aristócrata que busca desesperadamente la cura para una rara enfermedad. El juego se basa en la exploración y resolución de enigmas, pero sin olvidar la acción y el combate. Acerca de nosotros: Somos un pequeño equipo de dos personas con base en Madrid y Sevilla. Aunque tenemos experiencia en el sector de los videojuegos, este es nuestro primer proyecto en equipo. También contamos con la colaboración de Black Light Sound, encargado de la música y los efectos sonoros. Soundcloud: https://soundcloud.com/blacklightsnd Gracias por pasaros y agradeceríamos vuestros comentarios. Podéis seguirnos en: Twitter: https://twitter.com/ObscureTales Facebook: https://www.facebook.com/ObscureTalesGames
  11. 6 points
    Hola de nuevo a tod@s. Después de algún tiempo sin postear nada por aquí, y tras la satisfactoria experiencia con mi anterior proyecto SpinBlock Puzzle del que ya os hable en otro hilo, os traigo lo último en lo que estoy trabajando. Un juego de estrategia táctica multijugador por turnos, con ambientación medieval fantástica. Donde la acción se reparte entre la construcción y evolución del poblado o ciudad, mediante la obtención de recursos. Y el combate contra otros jugadores en diferentes mapas disponibles, empleando las tropas y máquinas de asedio creadas con antelación o reclutando otras nuevas. Y levantando defensas para impedir el avance del contrincante. Aquel que consiga cruzar las defensas del oponente obtendrá el estandarte del adversario y ganará la partida. Pero para ello tendrá que desarrollar su estrategia en función de los recursos disponibles, la distribución del mapa, la raza de los personajes, las actualizaciones conseguidas y las habilidades desarrolladas. Próximamente os ampliaré detalles. Por ahora os dejo con algunas capturas para abrir boca. Espero que os gusten y quedo a la espera de vuestras críticas y sugerencias. Saludos. Despliegue de defensas de nivel básico Despliege de defensas de nivel intermedio Detalle de una trampa de estacas y un ariete Encendiendo la barbacoa!!!!
  12. 6 points
    EDITO: La pagina de steam ya esta activa, Delta Squad en Steam con su correspondiente trailer y demas 🙂 Ya puedes comprarlo!! Hola!!!, Llego el momento de presentar el proyecto en el que llevo varios meses currando. Se llama Delta Squad, y al igual que mi anterior trabajo FullBlast esta pensado para old gamers y gente que gusta de arcades clasicos con gameplay clasico 100%. Aqui no hay ayudas a los jugadores, ni "complicado" lore, al mas puro estilo john carmack, donde decia aquello de que la historia en un juego tal y cual... xDDelta Squad es un arcade donde tenemos que liberar a la humanidad de un maligno virus y para ello iremos cumpliendo misiones en cada nivel hasta conseguir nuestro objetivo. Se puede jugar hasta 4 personas local coop, y trae un modo para activar el "friendly fire" que es siempre tan agradecido en estos juegos (porque matar a tus compañeros siempre se agradece xD) Aqui os dejo la primera captura del proyecto 🙂 Delta Squad es un juego muy particular y que solo gustara a un porcentaje MUY pequeño de la gente. El juego va enfocado a la gente que busca un juego retro como los arcades de los 90', si no te encuentras en ese target, entonces el juego NO tiene nada que ofrecerte y no te recomiendo comprarlo porque te aburrira mucho. Si por el contrario te gusta comprar juegos asi "raros" como me pasa a mi, entonces seguramente este Delta pueda estar entre tus retro-favoritos. Para gustos colores... Edit: Aqui tenemos el primer video en movimiento del juego 🙂 Gameplay video
  13. 6 points
    Buenas Os presento el proyecto que estoy llevando a cabo yo solo desde hace 1 año. Vendí mi antiguo negocio hace unos meses y estoy trabajando en esto a tiempo completo desde entonces. Mi idea es ponerlo a votación en Greenlight en una o dos semanas como máximo. El argumento es bastante sencillo: eres el capitán de una nave militar. Los mundos exteriores han declarado la guerra a la Federación Galáctica y todas las naves militares, incluida la tuya, reciben la orden de dirigirse a la capital y defenderla del inminente ataque. El juego en sí, es muy parecido al planteamiento de FTL. Hay un mapa estelar generado aleatoriamente con diferentes puntos a los que podemos saltar, cada vez que saltamos a un nuevo punto aparecerá un evento en el que podremos tomar decisiones. Dependiendo de la suerte y nuestras elecciones podremos ganar o perder créditos, moral, tripulantes, ganar nuevos sistemas o armas para la nave o hacer que el evento termine en una batalla. Algunos eventos son sencillos y tienen solo dos finales posibles o incluso solo uno (por ejemplo, los eventos que siempre finalizán en una batalla), pero otros serán bastante más complejos, el más variado hasta ahora tiene 9 finales distintos y 35 strings de texto. El sistema de batalla no se parece en nada al de FTL y es más parecido a Starpoint Gemini o al de Battlevoid Harbinger (pero en 3D). Las naves tienen puntos en los que se pueden acoplar sistemas y armas, las armas disparan y apuntan automáticamente y nosotros controlamos el movimiento de la nave, el control de energía y las habilidades que ofrecen algunos sistemas y armas y que tienen un tiempo de recarga una vez se utilizan (por ejemplo: camuflaje óptico, reparación, sabotaje de sistemas enemigos, lanzamiento de misil nuclear etc.). He grabado un gameplay de 15 minutos para que podáis ver un poco el juego. Ahora mismo el juego está en pre-alpha, tiene la mayoría de sistemas acabados, aunque algunas cosas pueden variar pero principalmente le falta contenido (eventos, naves, armas y sistemas), que es a lo que me dedicaré a partir de ahora. En el estado actual se puede jugar el primer nivel de los 5 que tendrá una partida completa. Pongo también algunas capturas más: Decidme como lo veis y que os parece!
  14. 5 points
    Hola chicos, comparto con vosotros una implementación de ruido perlin noise con fBm para todos aquellos que esteis interesados. Si necesitais generación procedural de contenido, con esto solamente necesitais llamar a una función. Además las plantillas de ruido se guardan como Scriptable Object. Os dejo imagenes de las demos que incluye con ejemplos de uso, dependiendo del caso: link: https://github.com/davilopez10/PerlinNoise_Unity3D Perlin Noise 1D Perlin Noise 2D Perlin Noise 3D
  15. 5 points
    GUÍA TUTORIAL PARA JUEGOS CON ENTORNO 3d PARA MÓVIL Buenas gente mi nombre es Javier García, el desarrollador del juego de Bramson Case, (esperemos que próximamente en las plataformas , que ya me queda pokito^^’). Debido un comentario que me hizo Pioj en uno de los hilos, me he animado a preparar un post para explicar algunas cosillas desde mi experiencia y punto de vista que he aprendido estos años con el proyecto que llevo entre manos. Lo primero vamos a comentar son algunas cosas a tener en cuenta antes de empezar nuestro proyecto, ya sea tanto para móvil, como para pc, aunque en este post luego lo enfocaremos a la preparación de juegos en 3d para las plataformas de móvil ya sea en primero o en tercera persona. CREACIÓN DE UN GRUPO TRABAJO. Tenéis que tener en cuenta que aunque parezca fácil, la típica frase de..“VOY A HACER UN VIDEOJUEGO Y ME VOY A FORRAR” eso lleva una carga de trabajo impresionante que nunca se suele tener en cuenta al empezar el proyecto. (lo digo por propia experiencia y ya veremos lo de me voy a forrar xD) -Ilustraciones -Texturizado -Modelado 3d -Guionistas -Programación -Betatesters -Música -Marquetin -Etc.etc.. (A mi manera de ver, a no ser que sea un proyecto pequeño que puedas cumplir en un par de meses como mucho, intenta montar un grupo de trabajo, ya que en un par de meses suele comenzar la cuesta arriba y empiezan a aparecer todos los problemas que no tuviste en cuenta cuando dijiste esa mítica frase, tanto personales como a nivel del juego). Ya se que puede parecer algo pesado esta intro de post, pero lo considero bastante importante. Y con esta pequeña presentación, vamos a ponernos con el tema.:D --------------------------------------------------------------------------------------------------------------- Para una explicación mas sencilla vamos a separarlo en dos bloques, como he comentado anteriormente esto esta enfocado para las plataformas de móviles (concreta-mente en entornos 3d, aunque algunos conceptos también se pueden aplicar en otras plataformas). -BLOQUE 1 (Modelado, Texturas, Iluminación, Consejos) -BLOQUE 2 (Menús Básicos) BLOQUE 1 (modelado, texturas, iluminación, consejos) COSAS A TENER EN CUENTA ANTES DE COMENZAR EL MODELADO. -No existe ninguna formula mágica para una optimización perfecta. Como indicamos no existe ninguna forma concreta de optimizar el juego para sacar el 100 del rendimiento, en plan... si pongo las texturas en modo móvil, y pocos polígonos en el modelado, me va a ir todo fluido.(desgraciadamente eso no funciona así ). Unity tiene múltiples maneras que puedan ayudar a una buena optimización en el compilado, pero esas opciones de menú (que explicaremos mas abajo) son ayudas muy generalizadas, una buena optimización implica un bueno modelado desde un principio, tanto de personajes, como escenarios, acorde a lo necesitemos en cada momento. Buen modelado + buen ajuste en los menús = todo va de puta madre :D Por poner un ejemplo la imagen puesto a continuación es el exterior de la mansión Bramson donde se desarrollara el juego que llevo entre manos. (No solo la mansión esta completamente amueblada, si no que dentro de esta misma escena hay otra mansión de 2 plantas, también totalmente amueblada y algunos eventos especiales que también están cargadas en la misma escena, por lo que si se plantean bien las cosas desde un principio se pueden conseguir los resultados deseados.) Olvidaos de detalles hiper realistas en los gráficos. Tenemos que tener en cuenta que vamos a realiza un juego para móvil y el procesamiento y los recursos de un móvil son muy limitados comparado con un pc de sobremesa, en este caso tendremos que tener en cuenta algunos conceptos básicos al modelar. 1-MODELADO Intentar siempre modelar en medida de lo posible en low-poly, dándole algún detalle mas a los objetos que puedan estar mas próximos a la cámara, por ejemplo. (Si en un decorado tenemos una montaña al fondo del escenario que nunca vamos a llegar en el juego, es una tontería detallarla con muchos polígonos y darle una textura a mucha resolución, ya que en un móvil no se va a apreciar ese tipo de cosas, pero si se apreciar en los objetos del escenario que estén mas próximo a la cámara) 2-DETALLE DE ESCENA Una de los trucos mas comunes es usar algo mas de detalles donde el jugador vaya a fijarse en el proceso del juego, este ejemplo es muy básico, si tenemos un folio con un punto negro en medio, el ojo humano por norma general suele enfocar la vista en el. (En la imagen puesta a continuación se aplica la misma teoría, el personaje tiene una textura muy básica y algo menos detallada que la cara, que literalmente la cara es una fotografía, por lo que al haber algo mas detallado en ese momento, te sueles fijar mas, otra cosa es que alguien se fije en algo mas concreto como algún detalle en la ropa.. pero eso no suele ser común, a no ser que estés también en el mundillo para percatarte de esas cosas, o que lleves 2 meses buscando la típica puta llave que te tiene atascado y ya miras hasta en debajo de las piedras). 3-COLLIDER Un tema delicado, esta sección para mi bastante importante y a tener muy en cuenta a la hora de preparar la escena en el Unity, como sabréis para los polígonos de los modelos en unity existen varias maneras de meterle los collider a los objetos, ya sea para crear alguna activación de un evento o para bloquear el paso del personaje y evitar de esta manera el clipeo. Intentar usar exclusivamente los collider mas básicos, a ser posible todo cubos o planos, olvidaros de los mesh collider (ya se que es automático y mola mucho), eso al principio parece que no consume mucho recurso pero conforme vaya creciendo el proyecto, la cosa se desmadra muy rápidamente, a continuación os pongo un pequeño ejemplo de una de las salas de la mansión. 4- EXPORTAR MODELOS A UNITY (OBJETOS PRE-FABRICADOS) Un de los errores mas comunes que suele haber a la hora de exportar, es exportar todo el conjunto creando un único prefabricado, teniendo en la escena objetos iguales como pueden ser libros, sillas, etc. Para poder explicar esto bien vamos a simplificarlo al máximo en un par de imágenes, ya que es algo mas complejo pero de esta manera se quedara la base mas clara. -En la imagen 1 hemos creado 4 sillas y las hemos exportado a Unity ya sea en FBX, OBJ o el formato que sea. Como podemos ver al pasarlo a Unity nos a creado 1 único prefabricado con las 4 sillas de 400 polígonos, ese calculo se queda guardado en memoria y si repite el prefabricado en algún otro sitio usara el dato en memoria. -En la imagen 2 como la silla que vamos a usar es igual que las otras, la exportamos independientemente y luego copiamos el prefabricado, hemos conseguido el mismo resultado y nos hemos ahorrado el calculo de 300 polígonos. (aunque parezcan pocos polígonos, recordar que es un juego para móvil, todo lo que podáis ahorrar en una parte, podréis meterlo en otra cosa, o pensar que si tenemos 50 sillas en todo un decorado no son 300 polígonos… 50x100 con 5000 polígonos, comparado con 100 la cosa ya cambia bastante mas ) 5-SHADER ,TEXTURIZADOS Bueno aquí si que hay para gustos colores, ya que hay muchísimas variedad para jugar en esta sección, simplemente me centrare en comentar mi opinión personal y ya cada uno que sopese las opciones, yo en mi caso he usado el shader standar, evitando en medida lo posible usar el shader para móvil, ya que si a malas tengo mucha perdida de fps siempre tendré la opción de pasar todas las texturas a los shader de móvil para ganar algo mas de optimización, para la resolución de las texturas he ido jugando 2048 para objetos mas detallados y cercanos, y 1024 para cosas mas de fondo. -Que tenemos que tener mas en cuenta de un shader estándar, para un juego 3d para móvil. De todas las opciones que podemos ver en la imagen vamos a centrarnos en las mas importantes de mi punto de vista ALBEDO (diffuse para algunos programas) -Este es el color base de la textura, ya sea JPG, BMP, Etc.. (Al ser un juego para móvil intentar que sean todas las texturas en jpg no mas grandes de 2048) METALLIC (Specular par algunos programas) -Esta textura es el brillo que puede tener un objeto al recibir un punto de luz. (Aquí tenéis que llevar mucho cuidado si se usa esta textura, tener en cuenta que no existe en la vida real un objeto que tenga brillo perfecto en toda su superficie, debido a la suciedad, el desgaste, o mil imperfecciones que pueda tener, por lo que el objeto necesitaría una textura para que quede bien y un punto de luz en “tiempo real” para que haga un buen efecto, por lo que es un gasto de procesamiento enorme que a veces no merece la pena meter) NORMAL MAP -Esta textura lo que crea es un capa nueva encima de la textura albedo que le da relieve, dándole un detalle al modelo de low-poly haciendo que parezca que tiene muchos mas polígonos teniendo la base de low-poly. (Aquí realmente no he hecho muchas pruebas para el juego ya que me centrado mas en otras cosas, me imagino que si es solo para darle detalles a algunos objetos en concreto no quedara mal, pero sinceramente no se lo que puede llegar coger de los recursos del móvil, pero me imagino que bastante) REFLECTIONS -Como su nombre indica son los reflejos de un objeto como puede ser un espejo, el reflejo del agua, etc… (Para un juego de móvil yo no me centraría en usarla, a no ser como siempre comento que sea algo muy… muy concreto y pequeño, no poneros ha hacer rascacielos de cristal que se reflejen entre si, que vais a poner el móvil para que se puedan freír huevos). 6-ILUMINACIÓN Este para mi es el tema mas importante y el primero que se tiene que tener en cuenta para realizar nuestro proyecto, debido a que es algo complejo ya que hay menús involucrados los voy a dejar para el final, con los menús correspondientes para explicarlo lo mejor que pueda. ALGUNOS CONSEJOS COSAS PROHIBIDAS A TENER EN CUENTA. -Cosas que tenemos que intentar evitar en medida de lo posible, ya que esto para un juego de móvil hace que la cosa se pueda ralentizar de cojones… hablando en plata. 1-Texturas con canal Alpha, como la gente conocerá y si no lo comentamos, hay algunas texturas como puede ser el PSD, TIF , PNG,etc.. que contienen información para crear desde el mismo archivo una transparencia a la textura, se puede encontrar mucho en hierbas, las hojas de los árboles, etc.. Esto ayuda mucho al modelado 3d (para los juegos de pc),porque poniendo un par de planos bien colocados podemos conseguir unos buenos detalles, pero el problema es que el procesamiento en un móvil para estas texturas es muy… muy limitado y aunque para pc sea una ventaja, para móvil suele ser una desventaja y un gasto de recurso brutal. (En mi caso este es uno de los árboles, como se puede ver tiene el tronco y 8 texturas en PNG que tienen el canal alpha, pues si no me equivoco hay 8 árboles enfrente de la mansión y cada vez que se mira hacia los árboles me da una bajada importante, por lo que intento desactivarlos cada vez que puedo). Vamos…que la primera vez que los puse entre 20 y 30 para dejarlo mas bonito, al girarme en el juego se me peto el movil por completo y creo que hasta me soltó un…Pero tu estas flipando chaval . COSAS ACONSEJABLES A TENER EN CUENTA. 1- Acostumbraros a que cuando carguéis un objeto, revisar lo que habéis exportado, ya que al exportar un objeto puede haber cosas activadas que si no me equivoco pueden darle una sobrecarga innecesaria al prefabricado. 1-MODEL En la sección de Model ya cada uno que lo ajuste a lo que necesite. 2-RIG Aquí por el momento lo dejare para otro post si la gente lo ve bien ya que esto hay que explicarlo desde el programa 3d también. 3-ANIMATION Si el modelo no contiene animaciones esto desactivado. 4-MATERIAL Aquí hay algunos formatos que exportan las textura y se la aplican al modelo directamente, a mi me gusta desactivar esto y poner yo la textura en el Unity, pero eso ya son manías mías, me imagino que si esta bien configurado no importa mucho. DESACTIVAR LOS OBJETOS QUE NO SE VEAN EN CÁMARA. -Aquí simplemente comentar un par de detalles, cuando preparéis el inicio del juego intentar desactivar todos los objetos que no se vayan a usar nada mas empezar, ya que todos los objetos desactivados no cargan sus scripts, por lo que nos ahorramos bastante procesamiento de primeras, y ya cuando los vayáis necesitando los vais activando poco a poco. (Yo en la escena solo dejo el charácter controller y seguido un script de precarga que me activa la zona de inicio, todo lo demás esta desactivado de primeras). SCRIPTS (UPDATE & START) Intentar no usar muchos scripts que tengan codigo dentro del void Update y optimizar la sección de void Start todo lo que podáis. (Aunque parezca que no hace nada, todos las secciones de “ void Update y void Start “ que suelen salir de base en los scripts, si van a estar vacíos, los borráis por completo, porque aunque no tengas nada dentro si están en el script, ya se gasta un mínimo de recurso en checkearlo y si no están nos ahorramos ese chekeo, sobretodo el update. Y ya con esto pasamos al bloque 2, este bloque es mucho mas cortito que ya se me esta haciendo muy largo esto y no quiero extenderlo mucho mas ^^’ -BLOQUE 2 (Menus Basicos) Hay varios menús básicos que tenéis que revisar para ir aprendiendo a gestionarlos y mejorar la optimización del juego, por el momento comentare lo mas básico de cada uno, pero estos menús hay que aprendérselos bien para poder jugar con lo comentado anteriormente. Buen modelado + buen ajuste en los menús = todo va de puta madre :D (Tener en cuenta que estas opciones, son opciones generales y afectan a todo el juego cuando se compila, es como si fuera un limite, si tenemos una luz con una sombra super ultra realista, y en este menú ponemos que las sombras son super ultra low, se pasara a los parámetros super ultra low del menú al compilarlo). -MENU DE QUIALITY En este menú se controla y se configura que calidad y que modos dispondrá el juego. Por ejemplo: PC : BAJA, MEDIA, ALTA, UTRA. IOS : BAJA, MEDIA. ANDROID : BAJA, MEDIA, (y en cada opción su configuración claro esta) (para juego de móviles, la opción de “ V Sync Count “ es el demonio en persona, eso es lo primero que tenéis que quitar). -MENU DE GRAPHICS Este es otro menú a echarle un ojo también, poco a poco tendréis que ir aprendiendo a gestionarlo para sacarle punta en las compilaciones para móvil. -MENU OCCLUSION Este menú es para acelerar el procesamiento de la cámara, prácticamente lo que hace es desactivar (las caras de los polígonos, collider,etc..) que están fuera de la visión de la cámara, ayudando al procesamiento del escenario. -LIGHTING y MENU LIGHTING Y por fin llegamos a la ultima parte, que me la he dejado para el final porque la considero de las mas importantes. Este menú controla las luces generales de la escena. -Environment Propiedades de entorno. (En este menú se controla una iluminación global que afecta a toda la escena, dándole el tono que necesitemos a todo el decorado) en mi caso suelo darle un color base y ya voy jugando con los shadowmask. (shadowmask se explicara mas abajo) -Realtime lighting Iluminación que se aplica en general a toda la escena como bien pone en tiempo real. (esto en medida de lo posible intentar no usarlo, se puede conseguir casi los mismos resultados jugando un poco con los puntos de luz) -Mixed Lighting Calculo de las luces en modo bake. (Bueno… esta es la opción mas a tener en cuenta para conseguir una buena optimización y buenos resultados de iluminación para nuestra escena, muy… pero que muy importante, aprender a configurar esta parte del menú) De las tres opciones me enfocare exclusivamente en el shadowmask que es el que mejor resultado nos puede dar. Lo primero que tenemos que conocer a la hora de iluminar nuestro decorado, es que lo que mas recurso puede llegar a consumir en un entorno 3d es la iluminación, por lo que un exceso de puntos de luz sobrecargaría todo el procesamiento, ya sea por el radio de la luz en si, como por las sombras que puede llegar a generar. Debido a esto toda la iluminación en Unity tiene 2 opciones. -Realtime (como bien indica, es una iluminación en tiempo real del punto de luz, con todo lo que eso con lleva). -Bake (El bake es la opción de decirle a Unity que genere una textura que se aplicara a todos los objetos que interactuan con dicha luz, creando en la textura todas las sombras que se supone que tendría general el punto de luz, de esta manera se ahora el procesamiento en tiempo real, acelerando bastante el procesamiento del decorado). Esto es un pequeño ejemplo de la sombra de una farola en modo bake (Shadowmask) También comentar que esto tiene sus pro y sus contra. -Pro: Ayuda en el procesamiento del calculo de iluminación de los punto de luz. -Contra: Lo malo que tiene el bake, es que solo se puede aplicar a objetos estáticos. (Aunque como siempre digo, todo es cuestión de saber jugar con los menús, vamos a poner el ejemplo del típico juego de terror en una casa con una linterna). -Iluminación Environment : luz azulada muy oscura para dejar intuir el escenario (MODO BAKE) -Iluminación decorado : algunos puntos de luz con sus sombras en algunas lámparas, el televisor, etc, etc..(MODO BAKE) -Iluminación de linterna : le damos un punto de luz que no tenga mucho radio y las sombras en calidad media, para ir iluminando por donde vaya mirando el personaje (MODO REALTIME) Lightmapping Setting Esto son las propiedades textura que crea el modo bake. (Importante saber gestionar este menú para darle la calidad que queremos a los shadowmask). -Other Setting Como bien indica el menú, niebla y los halos. -------------------------------------------------------------------------------------------------------------------------------------------------- -Bueno señores, por el momento con esto ya se despide un servidor, espero que no se haya echo muy pesado el post, porque creo que me he emocionado un poco de mas y no soy de escribir mucho xD. Si lo veis bien, lo iremos puliendo con el tiempo, agregando y organizando poco a poco las secciones que falten por explicar, para que podamos tener un buen post de ayuda para la comunidad sobre este tipo dudas.
  16. 5 points
    Buenas, si alguien lo recuerda, este juego lo empece hace mucho, lo deje abandonado y no pude resucitarlo al tratarse de versiones tan antiguas de Unity. Actualmente estoy haciendo un reboot, de momento y a modo de demo técnica, os muestro este pequeño video de ejemplo:
  17. 4 points
    Hola, he creado un pequeño curso de introducción a los MLAgents. En total son nueve vídeos, donde se crean dos proyectos y un minijuego. El primer proyecto es muy sencillo, para no perder tiempo en nada que no sea el funcionamiento / configuración de MLAgents. Como seguir estas cosas por las listas de reproducción de youtube se me hacen complicadas me he liado la manta a la cabeza y he creado una pequeña WEB donde se puede seguir el curso, como si de una academia online se tratara, y acceder a los scripts y ficheros necesarios. La URL del curso es: https://cursos.uadla.com/curso/introduccion-al-machine-learning-con-ml-agents-para-unity/ Si alguien lo sigue por aquí, por favor, que me comente si el sistema funciona correctamente y es como de de usar. Os dejo también el vídeo de presentación: Espero que os guste, la verdad es que es un tema que me ha gustado de siempre, espero tener tiempo para ir haciendo cursos para tratarlo en más detalle y con entornos más complejos. También hay que tener en cuenta que ahora los MLAgents empiezan a estar mas o menos maduros, y sí que veo que empiezan a ser una forma de entrenar NPC's que podemos usar en nuestros juegos.
  18. 4 points
    hola he visto este video en un post de Vandal y no he podido resistirme a compartirlo era de una jam que se ha celebrado entre el 10 y el 12 de julio... ...o de unos locos que se han escapado de un psiquiatrico... no me ha quedado muy claro...
  19. 4 points
    Desarrollo en Unity 2019.3. Una primera aproximación a un FPS sin prácticamente optimización más allá de los lightmaps del entorno. Es posible utilizar diferentes FX dependiendo del material de contacto. He utilizado algunos assets de pago y otros gratuitos en los apartados de diseño solamente. El código y la integración es mío desde cero. El canal de youtube para seguir las actualizaciones es: https://www.youtube.com/user/LosSopranoNet/videos
  20. 4 points
    Buenas! soy Augusto de Chime Ayer comencé un canal dedicado a Unity y C# y largue con una serie de introducción a la programación en Unity. En el primer episodio simplemente vemos como instalar UnityHub y Visual Studio para dejar todo listo para el siguiente episodio: En el segundo creamos nuestro primer Hola Mundo en Unity, y vemos el concepto de variables con varios ejemplos. Ademas hice otro video suplementario que cubre varios temas básicos como para tener una buena base en Unity antes de empezar la serie Espero que les guste el contenido, voy a estar subiendo los siguientes capitulos a lo largo del mes!
  21. 4 points
    ¡Buenas! Mi experimento de carreras en TuCiudadTM. La idea es poder generar una escena aproximada de cualquier parte del mundo. La gracia es poder correr por tu ciudad o hacer misiones que te envían a sitios conocidos. Apóyanos siguiéndonos en Twitter: https://twitter.com/yourcityracing (venga que es 1 click!)
  22. 4 points
    Finalmente, liberamos la herramienta! pueden acceder a ella totalmente gratis! http://www.modelatorsystem.com
  23. 4 points
    Es un pequeño juego 2D creado para la JAM de UnitySpain. Tienes que guiar al personaje por el bosque hasta que llegue a casa. El juego es tranquilo, se trata de ir encontrando los diferentes caminos y esquivar los peligros que se encuentra como los lobos o las lanzas. Creo que le dedique mas o menos unas 16 horas, y estoy contento con el resultado, tanto que me quedo con el proyecto para irlo evolucionando poco a poco, ya ire compartiendo los cambios y los "improvements". Cualquier idea, o crítica, que querais aportar sera muy bienvenida. Por ahora esta disponible en itch.io: https://uadla.itch.io/way-home
  24. 4 points
    Hola @nomoregames, primero que nada decirte que esto no es con ánimo de ofender ni de crear controversia. Este tipo de dudas son básicos de la programación, no es algo de unity sino de el lenguaje. Yo te aconsejo leerte un libro de c# o hacerte un curso donde aprendas al menos lo básico y no andes dando palos de ciego hasta encontrar la respuesta. No me molesta para nada que hagas estas preguntas, pero me parece que se crea contenido innecesario, soy consciente de que nadie nace sabiendo pero si no nos intentamos educar seguiremos en ese bucle de por vida. Digo esto por tu bien y por el entusiasmo que veo que tienes con la creación de videojuegos, puedes explotar ese potencial. Hay muchos cursos de programación en Youtube, también puedes utilizar webs como codeAcademy o KhanAcademy que son gratuitas y super buenas. Es un mundo muy bonito y que si le echas ganas puede sorprenderte más de lo que imaginas.
  25. 4 points
    Me alegro de que os guste!! Si tenéis cualquier duda, estoy por aquí (pero en el Telegram suelo contestar antes 😉).
  26. 4 points
    Buenas! Soy Rodrigo, como ya dije en el post de presentación tengo un canal de YouTube y subo videos de forma gratuita y sin publicidad. Hoy subí un nuevo vídeo, el último de la serie sobre el sistema de eventos en Unity. El mismo tiene la capacidad de enviar eventos a cualquier GameObject (incluso si se instancia en modo dinámico), pasar múltiples parámetros y castearlos con la ayuda de Generics y ahora finalmente enviar eventos a objetos específicos. Si les interesa les dejo el enlace: Saludos!
  27. 4 points
    Acá les dejo el twitter de este señor: https://twitter.com/tuxedolabs?lang=es Sus videos y artículos son muy buenos, 100% recomendado. Tiene proyectos que integran: Geometría compleja basada en mini voxels (más tirando a átomos que al cubo de minecraft). Físicas rígidas, blandas, flexibles y de flotabilidad. Partículas, Iluminación completamente dinámica. Destrucción. Audio (para manejar todo el tema de las físicas + destrucción). Shaders. Efectos volumétricos. y más :) ... Realmente impresionante, se me hace que este tipo va a quebrar la internet en unos años. Les dejo algunos tweets: El juego que está creando (muy linda idea): Esas partículas :P
  28. 4 points
    Buenas gente¡¡ Abrí hace ya tiempo un post sobre este proyecto pero no me deja continuarlo, imagino porque es antiguo asi que he abierto otro. Hace ya tiempo empece un juego de terror en primera persona, lo empece como primera toma de contacto de Unity y para ir aprendiendo, entre el trabajo y otras cosas me ha llevado mas de un año terminarlo entre otras cosas porque lo he realizado todo yo (diseño, programación, sonido etc.... Todavía le quedan algunas cosillas pero ya poco más quiero hacerle porque tengo ganas de pasar a otro proyecto. El juego comienza en una casa abandonada en la que has estado de fiesta, despiertas solo y empiezan a pasar cosas extrañas y tienes que conseguir salir resolviendo algunos puzzles. A lo largo de esta semana subiré la BETA para que lo probéis y me digáis que os parece. He aprendido un montón de cosas y la verdad que me ha gustado mucho realizarlo y estoy bastante orgulloso para ser el primer juego que hago. Lo más complicado ha sido ser objetivo, al realizar yo los puzzles y saber donde estan los sustos se ve el juego desde una manera poco "divertida". Me has servido de mucha ayuda que mis amigos y novia me hayan hecho de testers porque su visión es totalmente distinta a la mia. Os dejo algunos pantallazos y a ver si esta semana subo la BETA y os la paso que seguro que me podéis dar vuestros consejos. saludos a todos ENLACE PARA DESCARGAR BETA: https://zellegames.itch.io/bloodshot-eyes Aquí os dejo parte de lo que pasa si descubris el huevo de pascua.... Aquí algunos cambios de texturas en la escena final, no he puesto más por no hacer spoiler... El nuevo diseño de la UI, más sencillo para mi gusto queda mejor Imagen de la cocina con la luz en modo linear, la verdad que ha ganado bastante He añadido efectos en la escena del baño para potenciarla
  29. 4 points
    Mira que fue una chorrada que se me ocurrio y es lo que mas exito tiene y mas gracia le hace a la gente. Gracias Pere por tus animos, quizas cuando crezca un poco el bicho pueda dedicarle algo de tiempo hacwr videojuegos, pero ahora lo veo complicado. Mas que por el niño por el trabajo, en el anterior si no habia incidencias el fin de semana podia llevarme el portatil y dedicarle tiempo a los videojuegos. Espero que a lo termines y verlo por aqui para probarlo. Os dejo otro gameplay muy gracioso de um chino, esta to loco!! Saludos!!
  30. 4 points
    Primero un cuento corto: Me he decidido por al fin subir algunos assets al asset store (de los tantos que tenía, actualmente 3, Kinematic2D, GrabIt y LaserMachine) , pense "bueno esto es fácil, me registro, doy subir al asset store y probablemente dos días después me llegue un mail diciendome gracias por su tiempo Sr. Lightbug" bueno, no fué del todo así, pero después de medio mes de malabares, curso autodidacta intensivo de html+css (duración 1 día) y algunas luchas con Unity Connect acá estoy . ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ASSET STORE ----> Kinematic 2D DEMO ---> DemoWebGL DESCRIPCIÓN Kinematic2D es un controlador de personaje 2D Totalmente Kinematico (no basado en físicas) que te permite realizar el movimiento de tu personaje 2D mientras se encarga de manejar las colisiones correctamente. Basicamente ofrece las funcionalidades del Character Controller (Componente) que viene por defecto con Unity (y más), pero con tres grandes diferencias: Está preparado para movimiento bidimensional (de aquí el 2D) La forma del cuerpo del personaje es una caja (en vez de una capsula, esto es genial para platformers) Funciona con colliders 2D y 3D (Ej: colliders de sprites y 3D mesh) El principal objetivo de este asset es darte la posibilidad de que tú construyas encima un controllador de movimiento del personaje (Ej maquina de estados, habilidades, etc), sin preocuparte por la parte aburrida de las colisiones, así te puedes enfocar en el diseño y mecánicas de tus personajes ... lo divertido! .. para más info --> ir al link del AssetStore -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- PD: Después de haber creado (creo que por primera vez) un hilo en el foro oficial de Unity debo decir, que UnitySpain está años luz adelantado, en todo aspecto, volver aquí es como dejar de usar el intel pentium 2 para subirte a i7 realmente, (y ni hablemos del código) ... felicitaciones @pioj
  31. 4 points
    Creo que todos los niños de mi época han visto la película Twister al menos una vez. Claro que no era perfecta pero dió a conocer por el mundo a los cazadores de tormentas. A mi me encantó... Me llamo Manuel, vivo en Madrid y desde ese momento me empecé a interesar por los tornados. Hace unos tres años, iba por Castilla La Mancha con el coche en pleno verano y vi unos cuantos remolinos de polvo (dust devil en inglés) debido a la tierra caliente y pensé.... "con lo que molan los tornados, qué raro que no haya ningún videojuego sobre ellos". Acababa de publicar mi primer juego en Steam (City Z) y decidí empezar a probar tornados en Unity 3D para ver si había algún potencial. Tan sólo encontré una demo visual que me gustó y empecé a modificarla añadiendo física y mejores efectos. En ese momento me pareció bastante impresionante y decidí crear el primer videojuego (que yo sepa) sobre cazadores de tormentas. Desde entonces, el juego ha evolucionado muchísimo cómo habéis podido ver en el vídeo y creo que ya ha llegado a la calidad suficiente para poder ser lanzado en acceso anticipado en Steam. Queda mucho por mejorar o añadir pero el núcleo del juego ya parece bastante divertido. Características del juego: Modos de juego - Misiones en solitario para aprender las bases del juego - Multijugador online 1 vs 1, 2 vs 2 or 4 vs 4 para jugar contra otros cazadores de tormentas - Tipos de juego variados: Fotografía, Brote de tornados, Controla el tornado... etc. Entorno - Física realista de los tornados con fuertes vientos y destrucción de objetos cercanos - Mapa grande y detallado inspirado en los paisajes de la Tornado Alley - Condiciones climáticas cambiantes y distintas horas del día Gameplay - Algoritmo complejo para evaluar la calidad de las fotos: distancia, focus, escombros visibles... etc. - Distintos coches equipados con radares meteorológicos para medir la actividad de las tormentas - Pods de monitorización para medir la velocidad del viento y su dirección en el suelo Otros - Galería de imagen para gestionar tus fotos y compartirlas en Steam - Emisoras de radio FM modificables para que escuches tu radio favorita en el coche - Posibilidades de ver vacas volando Poco más, éste es el enlace del juego en Steam: Ficha del juego en Steam El lanzamiento en acceso anticipado está previsto para principios de junio y ando retocando cosillas y arreglando errores. Pues nada, aquí me despido, muchas gracias por vuestro interés y no dudéis en comentar dudas o sugerencias. Os dejo con una captura de pantalla que he tomado ayer para que veáis los últimos avances en cuanto a representación de las superceldas:
  32. 4 points
    Saludos a todos. El período de mantenimiento de verano 2018 ha concluido, por lo que a continuación procedo a indicar los cambios realizados: Dominio Renovado el registro del dominio http://www.unityspain.com por un período de 6 meses. Servidor Servidor VPS dedicado de la Comunidad, formateado y migrado a Ubuntu 18.04 Server 64bit. Añadido motor de cache Varnish (versión más reciente), para acelerar y mejora el rendimiento de la web. Añadido motor de cache Memcache, para acelerar el rendimiento de la web y los foros. Actualización a la versión más reciente del Servidor HTTP Apache2. Actualización a la versión más reciente de PHP para la web y foros. Actualización a la versión más reciente de MYSQL para la web, foros, y las bases de datos. Web y Foros Software de los foros actualizado a la versión más reciente (POR FIN!!!) Eliminado el idioma Español en las secciones, y puesto el Inglés por defecto, a la espera de parche... Tema (Skin) de la web sustituido, al que viene por defecto. Más claro, ordenado y legible. Activado el uso de Memcache en los foros. Activada la API RESTful en la web, para proporcionar servicios externos de consulta. Ahora el icono del voto positivo (flecha verde) pasa a ser el del corazón con fondo azul. Hace lo mismo, da puntos. Desactivados ciertos módulos de la web (comercio, descargas,entre otros...) que provocan errores. En espera de parche... Añadida nueva página Roadmap, en la barra superior de navegación. Muestra el planning previsto de mejoras para UnitySpain. Añadido nuevo módulo para crear evaluaciones o preguntas de tipo Quiz/Trivial. Desactivado por defecto, para testeo... Barra superior de Navegación actualizada, con los nuevos contenidos y herramientas. Desactivado el soporte de Login con otros métodos (Twitter, Facebook, etc), dejando un único sistema de Usuario y Contraseña. Configuradas más herramientas y secciones que hasta ahora estaban inactivas. Conexión con Redes Sociales, Analíticas,etc... Añadido nuevo RSS con las novedades de Proyectos y Scripting. Disponible en la esquina inferior derecha de la página, abajo de todo. Actualizados algunos bloques del SidePanel (sección lateral derecha de la web), para adecuarla a la web. Normas de la Comunidad y Términos de Registro para nuevos usuarios, actualizados. Redes Sociales Se han creado 2 bots en el servidor de Discord, para automatizar labores de Mantenimiento y Consultas. Soporte en construcción... Se ha actualizado y activado de nuevo el bot del grupo de Telegram, para mostrar las novedades en Proyectos. Mantenimiento Se agrupan, a partir de ahora, todos los usuarios inactivos(última visita) por más de 6 meses en un nuevo colectivo llamado Fósiles. Todos aquellos Fósiles con 2 o menos contenidos (por tanto, visitantes fugaces) han sido eliminados, junto con su contenido. Los contenidos(Topics, posts,etc) de los Fósiles con 3 o más mensajes, son movidos a la sección Post Antiguos y preservados. Se han limpiado 1089 usuarios, y la Comunidad pasa a contar actualmente con 1341 miembros activos. Otros Estudio, testeo y pruebas de estabilidad. Más adelante realizaré un pequeño Hilo, comentando las novedades que trae consigo esta versión de la Web. Gracias a todos por la paciencia, y .. Hale! A disfrutar!!! Pioj
  33. 3 points
    Hola! @Megadok para hacer ese uso es muy simple. Lo enums son tratados no solo con los nombre que les des(espada, arco,etc) sino que por defecto tiene un index asociado comenzando desde 0. Por lo que si queres que tu variable _arma sea igual a lanza por ejmplo solo tendrías que castear el tipo armas delante del index correspondiente a lanza(que sería 2). Te dejo un ejemplo. public enum armas { espada, //0 arco, //1 lanza, //2 hacha //3 } public armas _armas; private void Start() { //el casteo se hace poniendo entre parentesis el tipo que te interesa obtener _armas = (armas)1; //esto hara que _armas sea "arco" } //Con tu codigo seria asi string[] r = System.Enum.GetNames(typeof(armas)); for(int i=0;i<r.Lenght;i++){ _armas = (armas)i; }
  34. 3 points
    Mmm no lo se Rick, parece falso ... Tampoco lo entenderías (sin ser peyorativo), primero porque esto no se explica así. Además de que la pregunta suena a "atajo", que ya es algo incómodo para la persona que pretende ayudarte. No estaría tan seguro de eso, me explico... En mi tiempo en la facultad tuve la suerte de cruzarme con profesores bien hijos de puta, que si les preguntabas algo que estaba en el libro (cosas muy obvias claro) te humillaban (un poco en joda) en frente del grupo. En realidad estaban incentivando a tres cosas muy importantes: Que el alumno siente el culo en la silla, que sepa usar el material disponible (es decir, leerlo al menos). Que el alumno no suelte la lengua por cualquier cosa en clase. Es decir, hay que estar algo preparado (o al menos entender el tema previo) antes de hablar por hablar (sí, había algunos que paraban la clase como 15 veces por día). Que en una consulta, el tiempo empleado realmente valga la pena (para ambos, alumno y profesor). Todo esto desemboca en el respeto al otro (falta de respeto no es necesariamente insultar al otro, aunque podría pasar). Así que, imaginate lo que un "master" siente cuando lee "Si tubierais la amabilidad de hacer un pequeño script... algo fácil de entender" de un tema super básico (que es la base de), y super bien explicado y ejemplificado en casi cualquier medio (blogs, tutoriales, documentación, libros, videos, Unity, etc) como lo son las 👉 clases 👈. Esto a mi me dice que de tu lado estás haciendo cero esfuerzo, y que yo tengo que laburar por vos. Es una relación unidireccional. Si esto pasa seguido, lo más seguro es que empiecen los comentarios un poco desagradables, se empieza a notar ese roce poco a poco. Lo más loco es que seguramente que no surja de malas intenciones tuyas, pero sin darte cuenta estás provocando exactamente esto (y más acá que nos conocemos todos). Mi consejo (en general): Limitar las preguntas (vos mismo dijiste que hacías una tras otra --> "... por aquí mas de un año y sigo haciendo las mismas preguntas idiotas. ") Apuntarlas a algo en concreto, que no sean "Haganme un script que explique el origen del cosmos" ... Por ej: "¿En qué contexto debería utilizar una clase en Unity? Por qué no utilizar una struct para esto?" Preguntar por recursos de ser necesario, si no sabes donde buscar está perfecto. El hecho de preguntar por recursos le dice a quien te ayuda que por lo menos te esforzas en investigar antes. Que no se mal interprete, es no es una evaluación ni nada por el estilo (aunque pueda sonar a una cuando digo "desmuestra a quienes te ayudan tal o tal cosa"). Por ej, yo no sé nada de VR o XR (ni siquiera sé la diferencia entre estos 😆), pero sé que @iRobb la tiene clara (podría decir lo mismo de Networking y @francoe1 ). Sería super irrespetuoso de mi parte inundarlos de preguntas a la primera (ya sea directamente o creando un hilo), por lo menos me dedicaría una semana a investigar por mi cuenta (de ser posible). En caso de no llegar a nada, o verme realmente perdido, bueno ahí sí acudiría a ellos, mencionando mis logros en lo que respecta al tema, mis avances, dónde investigué, qué documentación visité, etc. En fin, mi opinión.
  35. 3 points
    ¿Has probado a juguetear con los distintos parámetros que tiene el NavMeshAgent? https://docs.unity3d.com/ScriptReference/AI.NavMeshAgent.html En el siguiente vídeo de Brackeys muestra un poco alguno de estos parametros
  36. 3 points
    Buenas tardes a tod@s, Quería plantearos una nueva forma de organizar y mostrar contenidos de la web proporcionándole mayores interacciones y facilidad de visualización de contenidos. Actualmente el sistema foro, desde mi punto de vista, ha quedado limitado y no se adapta a las "nuevas exigencias" y hábitos de los nuevos usuarios que están llegando y que llegarán en el futuro. Los foros tienen una forma de distribución de contenidos basado en subcontenidos en el que el usuario debe ir navegando a través de diferentes topics/contenidos hasta llegar al apartado que le interese y donde se le indica que existe nuevo contenido a través del simple cambio de icono. Como todos sabréis estos últimos años han ido cayendo en desuso y es una realidad de que la mayoría de sistemas de foro integrados en páginas web se parecen más a lo que vemos en redes sociales que al estilo clásico que de hecho todavía se sigue utilizando en UnitySpain (aunque bastantes novedades como sistema de notificaciones). No nos engañemos, antes de que los foros se pusieran de moda como una forma de comunicación existían las listas de correos, las cuales hoy en día son una ventana al pasado y de lo que creo que los foros, tal y como los conocemos, les espera el mismo destino. Los nuevos usuarios, y los que vendrán los próximos años, están habituados a utilizar otros sistemas de comunicación muchos más versátiles, cargados y destacando contenidos multimedia por delante del simple texto y mostrando de forma ordenada "el contenido más nuevo" en detrimento de lo más antiguo para facilitar de un vistazo lo último publicado, comentado, etc. Es mejor mostrar un vídeo o una imagen de lo que acaban de publicar que el simple texto "este es mi proyecto rts", porque atrae mayor interés, o no, según el caso de lo mostrado. No es solamente una nueva forma de mostrar contenidos, sino que abre un nuevo abanico de posibilidades de interacciones entre los usuarios. Ciertamente el foro actualmente tiene algunas funcionalidades que podríamos calificar de sociales, pero la forma de distribución de contenidos no se asemeja a lo que está demostrado que funciona, que incentiva a la comunicación entre usuarios y que mantienen una conexión constante a la web. Podría detallar cada una de las nuevas funcionalidades o estilos de contenidos a los que hago referencia, pero creo que todos conocemos y reconocemos la utilidad de redes sociales como Twitter o Facebook. Cada usuario tendría su propio espacio (estilo muro o blog), podría subir archivos e imágenes y disponer de su propio portafolios y unirse y crear grupos, los cuales podrían sustituir a lo que actualmente conocemos como cada foro. La página principal mostraría directamente los últimos contenidos publicados, comentarios y actividades, no teniendo el usuario que navegar entre subcontenidos para encontrar lo último publicado (siendo algo más llamativo que el recent topics). No digo que este sistema de comunicación y muestra de contenidos sea mejor, sino que es diferente y se adapta a lo que hoy es el resto de la WWW. Por todo ello, creo que podríamos plantearnos cambiar el foro por un sistema como el que os comento utilizando software como Buddypess, elgg u otro que cumpla la misma función. A continuación os dejo algunas imágenes y enlaces para que podáis ver algunos ejemplos de lo que os he relatado. Espero vuestros comentarios sobre esta idea y el debate que aquí se abra. Esto no quiere decir que sea un debate para cambiar lo existente sí o no, sino de abrir esta posibilidad y comentar los pros y los contras del posible cambio. https://olympus.crumina.net/members/dan_cortese/friends/ https://buddy.ghostpool.com/ http://themekitten.com/demo/atlass2/activity/ https://seventhqueen.com/themes/kleo/members/kleoadmin/groups/
  37. 3 points
    Utilizad el sharedmaterial, no el material.
  38. 3 points
    La última actualización que ya puse vía Telegram. Así se ve la evolución:
  39. 3 points
    El componente button contiene un booleano que se llama Interactable justamente para esta situación.
  40. 3 points
    Hola a todos,me alegra volver por aquí. Quería enseñaros el proyecto que tengo entre manos, esta en desarrollo y las texturas ni siquiera están bien tileadas, pero ya tengo el escenario mas o menos montado a falta de muebles, plantas y bastantes detalles. Los sonidos de momento tampoco están, me esta costando bastante encontrar. No tengo prisa en acabarlo así que seguramente va para largo, pero cuando lo acabe quiero que tenga bastantes detalles. Si alguien se le ocurre algo que pueda ir bien en el estilo del juego o alguna sugerencia, se agradecería. Si se os ocurriera también algunos assets de la store que me pudierais recomendar seria estupendo. como ya habréis visto algunos modelos los he descargado y otros los he hecho yo. En principio quiero que el juego se base en encontrar llaves y abrir puertas, rodando el mismo mapa. tambien me falta un adaptador de kineckt para el ordenador para dar vida a las animaciones. Un saludo a todos.
  41. 3 points
    si quieres hacer que la cabeza mire a un sitio en concreto debes hacerlo en "LateUpdate", ya que el orden seria: -Update -Animacion -LateUpdate entonces si mueves un "hueso" en Update, luego la animacion te lo "pisa", recoloca los huesos como manda la animacion... pero si lo haces en "void LateUpdate()" entonces tu "pisas" la animacion y recolocas el hueso como quieras
  42. 3 points
    Unity está dejando de ser, por los keynotes que voy viendo, en un motor de videojuegos para ser un motor para todo tipo de aplicaciones. Plantean en el último keynote que los módulos de AR y MARS sean accesibles de manera independiente desde apps nativas. Justo lo contrario que planteas. Además han creado módulos específicos para arquitectura, para automoción, para industria, para ingeniería, etc. Y no es algo que escondan, está en la página principal de Unity. Si hablamos de rendimiento, entonces por esa misma regla de tres, dado que un videojuego es mucho más intensivo en recursos que comparado con una app con soporte de Google Maps, los videojuegos deberían crearse todos en código nativo y no en Unity. Al final es un equilibrio entre rendimiento y capacidades, y en el caso de Unity el apartado multiplataforma así como la cantidad de assets en la store, lo reequilibra a su favor. Y la filosofía de "caja negra" va a dejar de existir a medida que se implante DOTS, ya que podrás debugar directamente sobre el código nativo de Unity. Hasta modificarlo si lo deseas. Creo que Unity está evolucionando y abriendo otros caminos en el desarrollo multiplataforma. El desarrollo de videojuegos exclusivamente y con alto rendimiento habrá que dejarlo para engines como Unreal, pero desde luego no Unity. Y eso no es malo, todo lo contrario. Es un mundo fabuloso el que se abre. Saludos
  43. 3 points
    Requiem for Erich Sann Actualizamos post con información de todo lo nuevo de Requiem for Erich Sann. Enlace Play Store: Enlace Apple Store: Juego en primera persona, realizado con Unity 3D. El objetivo del juego consiste en salir vivo de la casa con el preciado instrumento que obsesiona al protagonista. Os dejo un video introductorio y se agradece cualquier tipo de review, crítica, opinión... https://www.microsoft.com/en-us/p/requiem-for-erich-sann/9p8lwl0lwcdf El juego es totalmente gratuito y está disponible de momento en la Microsoft Store para X64, X86 y ARM Espero que os guste.
  44. 3 points
    Os presento mi 2º (segundo) juego: "area51invasion" Link al juego: https://play.google.com/store/apps/developer?id=Raven+Games+Spain Consiste en aplastar a los invasores para que no roben a los aliens del área 51. Partidas de 15 segundos. La gente no saca más de 30-40 puntos. ¿Cuál es vuestro récord? Extras Hecho desde cero en 9 horas. 8 horas fueron en el apartado gráfico.
  45. 3 points
    Buenas tardes, os presento mi ultimo videojuego online creado con Unity3d. Se trata de un juego de carreras de coches de Scalextric, el juego puede parecer bastante sencillo pero tiene algunos detalles que lo hacen un poco más complejo. En el juego puedes elegir 10 coches y 10 compuestos diferentes de neumaticos, cada uno con sus características , ventajas y desventajas. Esto hace que haya más variedad en el juego y no sea tan lineal. Por otra parte el juego funciona online con un servidor capaz de albergar partidas de hasta 32 jugadores. Trata de hacer los mejores tiempos con tu coche y ten cuidado de no salirte de la carretera ya que perderás el tiempo de la vuelta actual, el juego cuenta con una clasificación mundial TOP 20, se actualiza instantaneamente segun van participando los jugadores. Los controles del juego son: Flecha arriba del teclado: Acelerar o decelerar Barra espaciadora: Cambio de carril TAB: Ver clasificación mundial Sin más preambulos os dejo unas imagenes y el link de descarga, intentaré tener abierto estos días el servidor 24 horas, por si quereis pasaros a probar. Nueva versión: Descarga Android: https://play.google.com/store/apps/details?id=com.Raulandia.KLetrixMotorsport Descarga PC: https://www.dropbox.com/s/epc8yzv41oczfq1/ScalextricPros2k19.rar?dl=0
  46. 3 points
    Buenas, como ya se ha hablado por las redes de UnitySpain se re-abre este hilo para que podáis ir subiendo los WIPs, y tener todo de una forma un poco más organizada. ;D Para los despistados. Desde hace unos días ha habido bastantes usuarios interesados en introducirse en el mundo del modelado 3D, para ello se ha planteado un ejercicio; modelar un ajedrez.. Actualmente hemos entrado en la dinámica de que enseñan pieza a pieza y dentro de lo que cabe, se trata de darle las correcciones pertinentes. Y como digo ahí arriba , a favor de tener una forma más organizada donde llevar el tema, sin estar colapsando las redes, a partir de ahora se utilizará este post. -- Si cualquier usuario quisiese sumarse a la causa y no sepa ni por donde empezar, que no se preocupe y que avise por aquí, y tratamos de darle un poco de orientación básica para empezar con el ejercicio ;D Algunas de las correcciones u observaciones del post anterior: Un aspecto importante que os está costando distinguir es diferenciar tener dos objetos "combinados" o "unidos". Vamos a intentar diferenciarlo y ver dos ejemplos: Combinar: Permite gestionar dos mallas como un objeto unitario. A pesar de ello, los objetos conservan cierta independencia, permitiendo por ejemplo aislar uno de el otro mediante una selección de todas las caras de uno de los objetos combinados. Unir: Es la "fusión" de dos objetos. No solo se gestiona como un objeto unitario, si no que lo es. Los dos objetos sestán "soldados". En la imagen podéis ver la diferencia. Estando el objeto de la izquieda unido, y el derecho combinado. Combinar geometría, no es una práctica errónea, pero justamente este ejercicio está enfocado a aprender a solucionar geometría sencilla, evitando que fragmentéis en partes piezas que pueden ser solventadas como una pieza única :D Tanto así, existen una serie de "normas" que debe cumplir una malla para estar hecha correctamente. Esto no significa que no se puedan hacer excepciones, pero no viene al caso. Así que sobre todo para este ejercicio (en casi en toda malla, vamos) buscamos las siguientes características. Malla homogénea. Solo polígonos de cuatro vértices (ni más ni menos). No tener vértices sin soldar . Intentar evitar estrellas (vértices donde se unen más de 4 aristas) _____________________ Por otro lado parece que estáis teniendo ciertas dudas a la hora de la presentación, es importante que tengáis dos cosas presentes. Si utilizáis fondo aseguráos de que es un color diferente a vuestras piezas, si no es practicamente imposible nada. A la hora de presentarlo es imporante que adjuntéis ina imagen "shaded " y otra con el "wireframe" Si me dejo algo en el tintero ya haré un edit, dicho esto ... A modelar !!
  47. 3 points
    Muchas gracias pos seguirme! Actualizo con nuevo contenido: Una introducción a UIElements (un nuevo framework en Unity 2019.1 que permite crear interfaces gráficas de forma similar a la programación web). Por el momento solo se pueden crear interfaces en el editor (como herramientas) pero esto en el futuro va a cambiar. Saludos!
  48. 3 points
    Hola muy buenas gente les quería mostrar mi primer juego de unity para android no es nada del otro mundo pero para mi fue un gran avance y me costo mucho durante el desarrollo fue todo una experiencia nueva para mi aprendí un montón de cosas sobre la marcha y la verdad que me gusto el resulta obviamente aun no esta terminado eso solo es un 50% de lo que me gustaría el juego pero ya vi que es jugable, espero que le guste y me den un apoyo positivo dándome opiniones de que mejorar si es mala idea un juego así. Si queréis descargarlo : https://play.google.com/store/apps/details?id=com.TG.VideoTube Gracias por leer =D
  49. 3 points
    Gracias, tampoco es que haya tenido mucha complejidad pero bueno, te dejo un poco el proceso y unas imágenes xD -Primero hicimos una pequeña prueba de concepto, para ver como iría. -Una vez hecho pasamos directamente al modelado. Al ser pre-render no le di mucha importancia a la topología o la resolución más allá de conseguir la formas que quería. Una vez modelado pasamos a texturas y un cuadro básico de iluminación con un area light y un SkyDome para conseguir la reflexión correcta. Las letras de Matrix era para asegurarme la correcta visualización de lo que iría en los monitores, ya que los iconos y la animación están montadas desde Unity. Antes de sacarlo hice la configuración de pases y capas y lo renderizé con Arnold. Para el montaje de los iconos y que se pudiesen aplicar los efectos adecuadamante saqué varias máscaras para poder utilizarlas como canal alfa en la fase de posproducción y poder sacar con transparencia los elementos que necesitábamos. Después de montarlo, usar las máscaras, hacer la correción de color, añadir efectos.... Este fué el resultado final. La luz detrás de las pantallas está sacada en blanco para que Franc pudiese tintarla desde Unity, y asi mismo los cristales se descartaron al final. Y no tiene mucho más xD
  50. 3 points
    Actualizo un poco esto. En los últimas semanas he mejorado temas de interfaz, he creado el sistema de contratos (misiones que se pueden conseguir en las estaciones) y he añadido mejoras gráficas y solucionado bastantes bugs. Os enseño los avances más destacados a nivel visual para no aburriros... xD He añadido una nueva interfaz para el control de la nave, gracias a la inestimable ayuda de @Shovah, que ha diseñado y creado el nuevo panel. Hemos intentado simular una especie de panel de control de una nave, con varías pantallas, detalles metálicos, tubos... Ha quedado bastante bien. Los mensajes de voz y mensajes de texto se reproducen en la propias pantallas del panel: He añadido el pequeño detalle de que el panel cambia de iluminación dependiendo del color del ambiente y se oscurece cuando el sol se oculta detrás de un planeta. Las estaciones ahora tienen paneles de publicidad que anuncian los tipos de servicios que ofrecen: Hace una semana actualicé el proyecto a la última versión de Unity para intentar solucionar algunos bugs. Al actualizar, los shaders que había creado con Shader Forge dejarón de funcionar bien y tuve que rehacerlos con Amplify Shader (muy recomendado), ya que Shader Forge ya no tiene soporte. Ahora los shaders tienen mucha mejor pinta. Los shaders de los planetas también han sido actualizados. En general ahora todo se ve aún mejor. Pongo algunas capturas de la última versión.
×
×
  • Create New...