✅Kit creadores: principiantes
IA LAS MEJORAS DE UNITY 2023
Unity Muse te ayuda a explorar, idear e iterar con poderosas capacidades de IA. Dos de estas capacidades son Textura y Sprite, que transforman el lenguaje natural y los insumos visuales en activos utilizables.
Introducir IA en el Editor de Unidad con Muse te ofrece la opción de realizar su visión más fácilmente al ser capaz de transformar rápidamente las ideas en algo tangible. También puedes ajustar e erizar con indicaciones de texto, patrones, color y bocetos que pueden transformarse en salidas reales y listas para proyectos.
Con el fin de proporcionar productos útiles que son seguros, responsables y respetuosos de otros derechos de autor de los creadores, Unity se reto a innovar en sus técnicas de entrenamiento para los modelos de IA que potencien la generación de sprite y textura de Muse.
CREATOR KIT BEGGINER
Creator Kit
¿No tienes mucha experiencia en codificación C#? En este proyecto para principiantes comenzarás a conocer los conceptos básicos de C# en Unity. Tendrás que descargarte el material gratuito que da Unity y configurarlo, prueba el juego. Comienza a explorar la programación. Prepara tu propio script de generación de objetos. En este tutorial podrás aprender a trabajar con las variables, a identificarlas y crear valores para esas variables, sigue las instrucciones para poder desarrollar los scripts. Se comenzara en la introducción de las clases. Se introducirá la herencia para con un script podamos aplicarlo por ejemplo a diferentes enemigos. Escribe comentarios en tus script para saber el porque de esa instrucción. Se utilizan dos o tres escenarios diferentes al hacer el juego Creator Kit: Beginner Code, una la que debes usar para jugar y personalizar el juego en estos tutoriales es la Escena de ejemplo.
Cuando acabes los tutoriales podrás subir el desarrollo del juego a web de Unity y ponerlo en su galería con las otras personas que van siguiendo el curso.
LEGO MICROGAME
Comienza tu viaje de Unity en el mundo de LEGO. Completa los tutoriales de Microgame para aprender los fundamentos de Unity, y luego prueba los Creative Mods de LEGO para personalizar tu juego.
Personaliza la atmósfera de tu Microjuego con cambios visuales y de audio.
Dale voz a tus modelos de LEGO con el Speak Action Behaviour Brick.
Aprende a contar las puntuaciones, los jefes desencadenantes y mucho más con el ladrillo Counter Action Behavior. Esta guía te ayudará a empezar a crear tu propia experiencia de Microjuego personalizada usando las herramientas de LEGO y más cosas que iras aprendiendo con estos tutoriales de Unity Learn.
Crea tus propios Legos con Studio 2.0 para Unity con esta herramienta.
LA AI EN LOS VIDEOJUEGOS
LA AI EN UNITY
A
lo largo de los tutoriales, seguirás unos talleres prácticos
diseñados para enseñarte las técnicas fundamentales de IA
utilizadas en los juegos de hoy. Aprenderás en ellos mientras los NPC
serán programados para perseguir, esconderse, huir, patrullar,
disparar, correr, ir en multitud, planear acciones y mucho más.
Aprender
sobre las matemáticas relevantes usadas en el movimiento de personajes
en un entorno de juego. Al hacer esto usted descubrirá las matemáticas
detrás de algunos de los métodos de manipulación de vectores y ángulos
más utilizados de la Unidad.
Usarás
geometría y la trigonometría y como se emplea para desarrollar métodos
que se mueven y den vueltas los personajes del juego. Con estas técnicas
armarás un carácter de auto-navegación que representa la base de la
simple inteligencia artificial utilizada en el desarrollo de personajes
no jugadores.
Se
te presentarán algunos de los principios fundamentales en el campo de
la física que se utilizan para mover objetos en el entorno del juego.Todos los
recursos utilizados son gratuitos.
INTRODUCCIÓN A LA NAVEGATION
Navegation en Unity
En estos 6 videos, se comenzara a usar la navegación(AI) de Unity, primero se ve como usar la navegación para que los personajes y enemigos puedan moverse en el entorno de tu juego y puedan detectar paredes o los demas elementos del escenario.
A continuación conoceras NavMesh para poder configurar los diferentes agentes que configuran el juego. Continuaras aprendiendo como escribir scripts para poder usar el NavMeshAgent.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class DirectedAgent : MonoBehaviour {
private NavMeshAgent agent;
// Use this for initialization
void Awake ()
{
agent = GetComponent<NavMeshAgent> ();
}
public void MoveToLocation(Vector3 targetPoint)
{
agent.destination = targetPoint;
agent.isStopped = false;
}
}
using UnityEngine;
using System.Collections;
public class RaycastDestinationSetter : MonoBehaviour {
public float fireRate = 0.25f; // Number in seconds which controls how often the player can fire
public float weaponRange = 500f; // Distance in Unity units over which the player can fire
public Transform gunEnd; // Holds a reference to the gun end object, marking the muzzle location of the gun
public DirectedAgent directedAgent;
private Camera fpsCam; // Holds a reference to the first person camera
private WaitForSeconds shotDuration = new WaitForSeconds(0.07f); // WaitForSeconds object used by our ShotEffect coroutine, determines time laser line will remain visible
private AudioSource gunAudio; // Reference to the audio source which will play our shooting sound effect
private LineRenderer laserLine; // Reference to the LineRenderer component which will display our laserline
private float nextFire; // Float to store the time the player will be allowed to fire again, after firing
void Start ()
{
// Get and store a reference to our LineRenderer component
laserLine = GetComponent<LineRenderer>();
// Get and store a reference to our AudioSource component
gunAudio = GetComponent<AudioSource>();
// Get and store a reference to our Camera by searching this GameObject and its parents
fpsCam = GetComponentInParent<Camera>();
}
void Update ()
{
// Check if the player has pressed the fire button and if enough time has elapsed since they last fired
if (Input.GetButtonDown("Fire1") && Time.time > nextFire)
{
// Update the time when our player can fire next
nextFire = Time.time + fireRate;
// Start our ShotEffect coroutine to turn our laser line on and off
StartCoroutine (ShotEffect());
// Create a vector at the center of our camera's viewport
Vector3 rayOrigin = fpsCam.ViewportToWorldPoint (new Vector3(0.5f, 0.5f, 0.0f));
// Declare a raycast hit to store information about what our raycast has hit
RaycastHit hit;
// Set the start position for our visual effect for our laser to the position of gunEnd
laserLine.SetPosition (0, gunEnd.position);
// Check if our raycast has hit anything
if (Physics.Raycast (rayOrigin, fpsCam.transform.forward, out hit, weaponRange))
{
// Set the end position for our laser line
laserLine.SetPosition (1, hit.point);
directedAgent.MoveToLocation (hit.point);
}
else
{
// If we did not hit anything, set the end of the line to a position directly //in front of the camera at the distance of weaponRange
laserLine.SetPosition (1, rayOrigin + (fpsCam.transform.forward * weaponRange));
}
}
}
private IEnumerator ShotEffect()
{
// Play the shooting sound effect
gunAudio.Play ();
// Turn on our line renderer
laserLine.enabled = true;
//Wait for .07 seconds
yield return shotDuration;
// Deactivate our line renderer after waiting
laserLine.enabled = false;
}
}using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class NavigationBaker : MonoBehaviour {
public NavMeshSurface[] surfaces;
public Transform[] objectsToRotate;
// Use this for initialization
void Start ()
{
for (int j = 0; j < objectsToRotate.Length; j++)
{
objectsToRotate [j].localRotation = Quaternion.Euler (new Vector3 (0, Random.Range (0, 360), 0));
}
for (int i = 0; i < surfaces.Length; i++)
{
surfaces [i].BuildNavMesh ();
}
}
}using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class DirectedAgent : MonoBehaviour {
private NavMeshAgent agent;
// Use this for initialization
void Awake ()
{
agent = GetComponent<NavMeshAgent> ();
}
public void MoveToLocation(Vector3 targetPoint)
{
agent.destination = targetPoint;
agent.isStopped = false;
}
}
Deja un comentario