Godot, scripts para Godot estudios y aprendizajes, Creacion de videojuegos. Creacion y publicacion de videojuegos en internet. Como hacer videojuegos. C# unity. Animaciones unity blender. Personajes videojuegos graficos dibujos. Diseño grafico. Comic. Animaciones gif. Dibujo de retratos. Realidad virtual. Cine y realidad virtual.
martes, 16 de marzo de 2021
Warlike feats, "the documents", unity, niveles,sumar puntos,perder vidas,
warlike feats, "the documents" Sigo trabajando en el videojuego y voy ha escribir una descripción de lo trabajado asta ahora, de los objetivos del videojuego...e empezado un nuevo nivel y doy por finalizado el primero.
El argumento base es un soldado americano que entra en una fortificación alemana para robar unos documentos, planos , papeles , fotografiás etc sobre armas secretas en evolucion de estos enemigos, el videojuego esta inspirado en la historia sobre la segunda guerra mundial, y sobre el cine bélico otros videojuegos, documentales, etc, etc,.
Bien describo el primer nivel y los objetivos para superarlo, lo fundamental tienes 10 vidas que has de mantener ante todas las cosas si no el juego se reinicia al principio y has de empezar de cero, abatir y destruir a los soldados enemigos, poner bombas en algunas torres de vigilancia, y saltarte las zonas donde hay minas porque si no vas a perder el juego al morir constantemente, aunque también puedes destruirlas disparando o lanzando granadas solo por diversión….
Las torres de vigilancia se destruyen disparando en un pequeño cubo que tienen arriba, luego hay otras que se destruyen acercándose y apretando la tecla “o “ letra o no numero cero, si no las destruyes tienes un soldado que va disparando a tu alrededor y puede quitarte vidas.
Luego has de derribar a los soldados enemigos disparando les a la cabeza , de ellos sale una capsula que al recogerla vas sumando puntos de este primer nivel ( en este primer nivel aun no le puesto utilidad al tema de sumar puntos pero en el segundo nivel pienso ponérsela para poder por ejemplo abrir una puerta o cambiar a otro nivel, etc etc,)
Entrando en una especie de túneles pasillos has derribar a los enemigos antes de que ellos te derriben a ti al quitarte vidas por cada uno de sus impactos, luego hay unas barreras de cemento y piedra que has de destrozar lanzando granadas o disparando, en una de ellas esta una entrada que te indicara que al atravesar seguirás en la etapa del segundo nivel del videojuego.
2 Segundo nivel descripción...jugable pero lo estoy trabajando, pasar al interior del pasillo y salir a una especie de patio donde de atrezo empiezo a poner material militar secreto, también hay enemigos que al entrar yo en el recinto me persiguen por el patio e de derribar los antes que lo agan ellos conmigo...y de momento asta aquí e llegado en la compilación del videojuego la 0,2,5….con tinuara…...
domingo, 14 de marzo de 2021
Modelado con blender de bomba volante de guerra mundial .
Modelado con blender de bomba volante de guerra mundial .
Paso aquí un adelanto de parte del atrezo que voy a poner en mi videojuego, una captura de video rápida de la construcción con blender de una bomba volante, sera parte del argumento del videojuego que aun no pienso desvelar…...¡¡¡¡¡Sorpresa……..para mas adelante!!!!!
Un resumen muy rápido, duplicar el cono construir unos cubos darles forma de ala, unir todos los elementos , texturizar, guardar los archivos de textura y exportar el modelado a formato fbx, y pasárselo a Unity arrastrándolo a la carpeta “gráficos” donde guardo la mayoría de gameobjets.
¿Como estoy haciendo los cambios de niveles en Unity?
Cambiando de nivel…si funciona,el cambio de armas no me da resultado, en versión web no funciona, así que seguramente aprovechare el cambio de escena o nivel al atravesar una puerta o túnel o recinto para hacer ala vez un posible cambio de armas del player y de paso el cambio de nivel me produce, como diría psicológicamente como un descanso en el trabajo del proyecto, porque seria como iniciar un nuevo proyecto, nuevos enemigos nuevas, situaciones nuevos decorados,,,,la monotonía aburre siempre lo mismo siempre lo mismo cansa en el desarrollo y cansa en el posible jugador del videojuego…..¿como estoy haciendo los cambios de niveles?
De paso decir que una inteligente combinación de cambios de escenas o de nivel hacen descansar la memoria de una forma considerable y que el juego fluya sin colgarse a la mitad…..
pongo a continuación el script que produce el cambio de escena, este se le pone al player protagonista del videojuego, cuando hace contacto con un gameobject que esta nombrado con el tag “pasa” hace el cambio de escena o de nivel…..
using
System.Collections;
using
System.Collections.Generic;
using
UnityEngine;
public
class
portagaintrotercera : MonoBehaviour {
void
Start () {
}
//void
OnCollisionEnter (){
void
OnCollisionEnter (Collision collision)
{
//if
(collision.gameObject.tag == "maloazul (4)") {
//Destroy
(gameObject, 0.0f);
if
(collision.gameObject.tag == "pasa")
{
//Destroy
(gameObject, 2.0f);
// transform.position
= new Vector3 (198.301f, 20.316f, 136.023f);/////////nuebo
mio
//transform.Translate
(new Vector3 (198 * Time.deltaTime, 20, 136.2f),
Space.Self);/////////////IMBENTADO
//Application.LoadLevel
(1);////ORIGINALLLLLLLLLLLL
Application.LoadLevel
(2);
}
}
}
jueves, 11 de marzo de 2021
cambio de arma al pasar o tocar diversos objetos del player sobre ellos, como e echo el efecto de las minas,? como e echo el efecto de muescas al impactar las balas sobre los objetos ? suelo paredes muros etc....? ¿como e echo un cambio de arma del player, el protagonista del videojuego?
Pequeño resumen para el blog de lo aprendido por practicas en videojuego "warlike feats, "the documents" "
impacto de balas en los objetos, pequeñas muescas que se forman en las paredes muros o suelo.
efecto de minas al pasar el protagonista del juego el player por ellas y su efecto sobre el player
cambio de arma al pasar o tocar diversos objetos del player sobre ellos, como e echo el efecto de las minas,?
como e echo el efecto de muescas al impactar las balas sobre los objetos ? suelo paredes muros etc....?
¿como e echo un cambio de arma del player, el protagonista del videojuego?
Tema 1 minas.
Primero he echo un cubo con el nombre de tag “pomada” para que el player al pasar sobre el o tocarlo active una explosión y a la vez en su marcador de vidas pierda una vida, luego e duplicado sucesivamente este cubo y los hijos se los e puesto a un padre otro cubo, el primero de la idea, para no tener que ir trasteando de uno en uno que se hace tedioso e innecesario.
Cada mina tiene un script en C# llamado Activate Trigger
using
System;
using
UnityEngine;
using
Object = UnityEngine.Object;
namespace
UnityStandardAssets.Utility
{
public
class
ActivateTrigger : MonoBehaviour
{
//
A multi-purpose script which causes an action to occur when
//
a trigger collider is entered.
public
enum
Mode
{
Trigger = 0,
//
Just broadcast the action on to the target
Replace = 1,
//
replace target with source
Activate = 2,
//
Activate the target GameObject
Enable = 3,
//
Enable a component
Animate = 4,
//
Start animation on target
Deactivate = 5
//
Decativate target GameObject
}
public
Mode action = Mode.Activate; //
The action to accomplish
public
Object target; //
The game object to affect. If none, the trigger work on this game
object
public
GameObject source;
public
int
triggerCount = 1;
public
bool
repeatTrigger = false;
private
void
DoActivateTrigger()
{
triggerCount--;
if
(triggerCount == 0
|| repeatTrigger)
{
Object currentTarget = target ?? gameObject;
Behaviour targetBehaviour = currentTarget as
Behaviour;
GameObject targetGameObject = currentTarget as
GameObject;
if
(targetBehaviour != null)
{
targetGameObject = targetBehaviour.gameObject;
}
switch
(action)
{
case
Mode.Trigger:
if
(targetGameObject != null)
{
targetGameObject.BroadcastMessage("DoActivateTrigger");
}
break;
case
Mode.Replace:
if
(source != null)
{
if
(targetGameObject != null)
{
Instantiate(source,
targetGameObject.transform.position,
targetGameObject.transform.rotation);
DestroyObject(targetGameObject);
}
}
break;
case
Mode.Activate:
if
(targetGameObject != null)
{
targetGameObject.SetActive(true);
}
break;
case
Mode.Enable:
if
(targetBehaviour != null)
{
targetBehaviour.enabled = true;
}
break;
case
Mode.Animate:
if
(targetGameObject != null)
{
targetGameObject.GetComponent<Animation>().Play();
}
break;
case
Mode.Deactivate:
if
(targetGameObject != null)
{
targetGameObject.SetActive(false);
}
break;
}
}
}
private
void
OnTriggerEnter(Collider other)
{
DoActivateTrigger();
}
}
}
que al tocarlas el player provoca el cambio de esta por un efecto de explosión, es muy importante que cada pieza de mina este nombrada con el tag de “pomada” por que el player tiene un script en C# llamado restavida
using
System.Collections;
using
System.Collections.Generic;
using
UnityEngine;
using
UnityEngine.UI;
public
class
restavida : MonoBehaviour {
//
Create public variables for player speed, and for the Text UI game
objects
public
float
speed;
public
Text countText;
public
Text winText;
//
Create private references to the rigidbody component on the player,
and the count of pick up objects picked up so far
private
Rigidbody rb;
private
int
count;///
<summary>
//
At the start of the game..
void
Start ()
{
rb
= GetComponent<Rigidbody>();
//
Set the count to zero
//count
= 0;////original
count
= 10;
//
Run the SetCountText function to update the UI (see
below)
SetCountText
();
//
Set the text property of our Win Text UI to an empty string, making
the 'You Win' (game over message) blank
winText.text
= "";
}
void
OnTriggerEnter(Collider other)
{
if
(other.gameObject.CompareTag
("pomada")){
other.gameObject.SetActive
(false);///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
Add one to the score variable 'count'
//count
= count + 1;//////original
count
= count - 1;
SetCountText
();
}
}
//
Create a standalone function that can update the 'countText' UI and
check if the required amount to win has been achieved
void
SetCountText()
{
//
countText.text = "VIDAS: " + count.ToString
();///original
countText.text
= "VIDAS:
"
+ count.ToString ();
//
Check if our 'count' is equal to or exceeded 12
//if
(count >= 10) ////original
if
(count <= 1)
//if
(count >= 99)
{
//
Set the text value of our 'winText'
winText.text
= "TE
HAN MATADO";
//Destroy
(gameObject, 1.2f);
Application.LoadLevel
(1);
}
}
}
que tiene el tag nombra el tag de “pomada” para ir restando vidas al player asta hacer el cambio de gameobject del player el protagonista del videojuego desvaneciéndose en el suelo.
Mismo tag “pomada” que produce el sonido de muerte o desvanecimiento del player, en este script en C#
using
System.Collections;
using
System.Collections.Generic;
using
UnityEngine;
public
class
SUENAALPERDERUNAVIDA : MonoBehaviour {
public
AudioSource tickSource;
void
Start () {
tickSource
= GetComponent<AudioSource> ();
}
void
Update () {
}
void
OnTriggerEnter(Collider other) {
if
(other.gameObject.CompareTag ("pomada")){
tickSource.Play
();
}}
}
Tema 2 muescas de balas en muros.
Aquí el proyectil
que lanza el player esta nombrado con el tag "balaamericano"
y el proyectil tiene este script en c#
using
System.Collections;
using
System.Collections.Generic;
using
UnityEngine;
public
class
SANGRABALAAMERICANOELENEMIGO : MonoBehaviour {
public
Rigidbody Sphere;
public
float
velocidad = 10f;
void
disparador () {
Rigidbody
SphereClon = (Rigidbody) Instantiate (Sphere, transform.position,
transform.rotation);
SphereClon.velocity
= transform.up * velocidad;
}
//
Update is called once per frame
void
Update () {
}
void
OnTriggerEnter(Collider other) {
if
(other.gameObject.CompareTag ("balaamericano")){
disparador
();///////////////////////////imbento
yo
}}
}
A
este script hay que arrastrarle en una casilla vaciá el gameobject
que queremos se produzca cuando la bala toque otro objeto, yo
e puesto unos cubos pequeñitos de los que sale humo….
Tema
3 cambio de armas…...continuara este me lo tengo que trabajar y
estudiar mas porque en la versión web no me funciona al ser
compilado aunque si funciona en la descargable para jugar desde
este….continuara , paso el enlace de esta versión la 0,2,2 para
que veáis lo aprendido practicado….
sábado, 6 de marzo de 2021
Warlike feats de fondo musical Cabalgata_de_las_valquirias de Wagner.
Pequeño detalle de 20 segundos de estudio, para hacerle un cambio de arma al player, también comentare dentro de poco un campo de minas que e echo para el videojuego, como lo e construido y que efecto hace en el videojuego, como afecta al player…….
0,1,9 Versión de mi videojuego, no me gustaba la música que tenia de fondo y recordando que a Hitler le gustaba la música clásica y Wagner en concreto, se me ocurrió que engancharía en la temática de mi videojuego y le pusto de fondo musical , Cabalgata_de_las_valquirias de Wagner.
http://joseluistrujillorodriguez.blogspot.com/2013/05/el-compositor-r-wagner-y-su-relacion.html
https://es.wikipedia.org/wiki/Cabalgata_de_las_valquirias
He mejorado el sangrado de las heridas, y he puesto una bandera de la época ondeando en la base enemiga alemana, también e retocado los fogonazos de los disparos y pienso hacer el mismo efecto ondeante de tela en ropa de los personajes haber como me sale, he de hacer también efecto sangrado heridas en los enemigos a los que yo ataco, y rellenar el argumento del videojuego de forma mas concreta….voy sobre la marcha, desde luego un buen fondo musical aumenta mucho la gracia del videojuego….creo que este mismo tema musical sale en la película Apocalypse Now.
https://es.wikipedia.org/wiki/Apocalypse_Now
(fragmento del enlace ((Destacable es también la escena en la que los helicópteros del noveno batallón de la Primera División de Caballería Aerotransportada bombardean un poblado vietnamita, todo ello ambientado con la música de Richard Wagner de la Cabalgata de las Valquirias, tal y como hacían los audiovisuales de la Luftwaffe en la instrucción de los cadetes. ))
jueves, 4 de marzo de 2021
¿como se hace un efecto de impacto de un personaje y su sangrado, perder vida, emitir un sonido de dolor?
0.1.8 pierdo vida, grito dolor y sangro, mas, mejor jugabilidad.
Siguiendo con mi ultimo videojuego ayer conseguí hacerle un efecto de sangrado al player que hace algo mas interesante o ameno el videojuego, y esto sumándolo a que pierde un punto de vida (tiene 10 vidas que iré manipulando según baya viendo) y que da un grito de dolor cuando recibe un disparo pues le da un aire mas correcto para ser un juego de disparos.
¿como se hace un efecto de impacto de un personaje y su sangrado, perder vida, emitir un sonido de dolor?
En este caso concreto explico lo del sangrado y muestro mis apuntes de mi libreta …..
Mi memoria es muy limitada y creo que en la libreta hice una especie de ecuación muy simple y muy personal una operación matemática de comparaciones con varios elementos del juego para conseguir que el player el protagonista del juego emita una sangrado cuando es impactado.
Utilizo los mismos elementos del disparador automático un cubo giratorio toca otro cubo y provoca mediante scripts que lance otro game object constantemente las balas.
Pues pensé e de hacer algo similar pero que en este caso el player es como si hiciera de pistola y de su cuerpo en lugar de disparar balas dispara salpicaduras sangrientas y que lo aga cuando sea impactado por una bala del enemigo, y lo e conseguido me da resultado.
Lo podéis ver en esta versión del juego que publico aquí la 0,1,8 y muestro también mi apunte en la libreta también pongo los escripts en c# utilizados y e de poner algunos detalles sobre los scripts para que funcionen si los queréis probar porque algunos por si solos no funcionan si no se arrastran por pantalla con el mouse algunos elementos del juego como gráficos y animaciones que hay que situarlos en diversas casillas al lado de los scripts C#
De una de las articulaciones del player e puesto una esfera de hay sale un cubo cada vez que tiene un impacto, un cubo transparente con gráficos de efecto de agua que le cambie el color azul por uno rojizo….
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SANGRADOPLUMADA : MonoBehaviour {
public Rigidbody Sphere;
public float velocidad = 10f;
void disparador () {
Rigidbody SphereClon = (Rigidbody) Instantiate (Sphere, transform.position, transform.rotation);
SphereClon.velocity = transform.up * velocidad;
}
// Update is called once per frame
void Update () {
}
void OnTriggerEnter(Collider other) {
if (other.gameObject.CompareTag ("pomada")){
disparador ();///////////////////////////imbento yo
}}
}