TUTORIAL RAPIDO I.A?
2 posters
Page 1 of 1
TUTORIAL RAPIDO I.A?
estoy buscando algo rápido que muestre como mejorar la i.a de los chars.sinceramente yo me aclaro mejor con la practica:por ejemplo en este archivo poned esto o esto y lanzara mas ataques a magias(cosas asi).nada de 20 horas leyendo.si alguien sabe de alguno asi por favor pasadlo,hay muchos chars muy buenos que no tienen buena i.a y me gustaría mejorar algunos.por ejemplo sobre todo busco que ataquen mas lanzando mas magias y se defiendan bien,esos punto sobre todo)
oscartsg1- 5 ESTRELLAS
- Country :
Mensajes/ Messages : 971
Fecha de inscripción/Registration date : 2015-05-30
Localización : españa
Re: TUTORIAL RAPIDO I.A?
para hacer una AI debes tener en cuenta solo 3 pasos:
1. declarar los comandos de AI en el archivo .CMD del char:
ejemplo que puede ir al inicio del cmd:
[Command]
name = "CPU_1"
command = F, F, F, F, F, F
time = 1
este comando indica a la cpu que ejecute 6 veces adelante, facil verdad? entonces hay que crear mas comando de AI, que utilicen mas movimientos y mas golpes ya que ese solo se mueve, entonces podemos crear otro asi:
[Command]
name = "CPU_6"
command = x, x, x, x, x, x
time = 1
indica que la CPU golpeara 6 veces con x, y asi y colocando combinaciones de movimientos y golpes, arriba, abajo, atras, con x, y, z etc, yo uso generalmente 25 comandos que para mi son suficientes, revisando cualquiera de los chars que he actualizado solo tendrias que copiarlos a la AI del char que quieras hacer.
2. activar los comandos de la AI, en el statedef -1 del archivo .cmd del char:
por tantos comandos de AI hallas creado debes referenciarlos en la activación, como mencione 2, activo esos 2 con la variable 59, puedes usar tambien la 50, una que no use mugen para sus cosas mas necesarias:
[State -1, AI]
type = VarSet
trigger1 = command = "CPU_1"
trigger6 = command = "CPU_6"
v = 59
value = 1
como yo uso 25 comandos debo colocarlos todos osea que harian falta 24 para hacerlo completamente, esa parte también se puede copiar igual de cualquiera de mis versiones.
3. activar cada golpe o movimiento exclusivo del char creado por el autor original:
hay movimientos comunes a todos los chars pero otros son exclusivos depende de la numeracion y forma de atacar que el programador halla hecho para su char, estos comandos son declarados en el archivo cmd pero son implementados o codificados en el archivo cns, hay gente que hace varios archivos cns, uno para golpes basicos, otro para especiales, otro para hypers, pero se puede hacer solo uno que contenga todo, la cosa es que cada uno de esos ataques es un statedef implementeado en common1.cns (golpes comunes a todos los chars) y en los archivos cns (golpes exclusivos de cada char) pero declarados en el archivo cmd para que puedan ser llamados en los cns, entonces con la AI pasa lo mismo debo llamar esos statedef coficados en los cns a traves del archivo cmd utilizando los comandos de AI y la activación de esos comandos con la variable, entonces en el statedef -1 del archivo cmd debajo de la activación de los comandos llamo todos los movimientos y ataques del char o los que solo me interesen, yo casi siempre llamo todos los ataques a menos que dañen la AI porque estan mal codificados.
un ejemplo de esto es el siguiente:
;AI Run
[State -1]
type = ChangeState
triggerall = !Win
trigger1 = RoundState = 2 && Var(59) != 0
trigger1 = P2BodyDist X >= 120 && Random <= 300
trigger1 = Ctrl && P2StateType != L && StateType != A
value = 100
esto indica a la AI de mugen que haga que el p2 corra hacia el p1, por eso es bueno colocar comentarios porque uno olvida los numeros de los statedef, aunque despues de tanto usarlos uno se los aprenda es bueno siempre comentariar run es correr.
si analizamos los triggers hay distancias, hay tipos de estado y otras cosas, esto tambien es de mirar la documentacion mugen para entender bien, si se fijan corre cuado los players estan separados a una distancia en x mayor a 119 (P2BodyDist X >= 120 ), el tipo de estado del p1 es diferente de estar en el aire (StateType != A), en el aire normalmente un char no corre, volaria pero no correria desde que no se dbz no correria en el aire, la var 59 es diferente de 0 por que ya se activo y se puso a 1 lo cual hace que la AI funcione (Var(59) != 0), el estado del round o ronda es igual a 2 es decir peleando (RoundState = 2) , y el tipo de estado del p2 es diferente de nockeado (P2StateType != L ), correr se ejecutara menor o igual 30% de las veces (Random <= 300), y lo que se ejecutara cuando corre es el statedef (value = 100) del common1.cns que es un golpe comun de todos los chars.
como vemos hay golpes y movimientos comunes, saltar, defenderse en stand, defenderse abajo, pero hay otros que son exclusivos como por ejemplo cargar cosmos o hacer una galaxian explosión, entonces si yo quiero que cargue cosmos debo asegurarme de que lo haga cuando preferiblemente no me esten golpeando, y si yo quiero lanzar una galaxian explosion ya que soy saga espectro entonces debo tener un power mayor o igual a 3000 y cosas de ese estilo por ejemplo:
cargar cosmos:
[State -1]
type = ChangeState
triggerall = !Win
triggerall = power < 3000
trigger1 = RoundState = 2 && Var(59) != 0
trigger1 = P2BodyDist X >= 120 && Random <= 300
trigger1 = Ctrl && P2MoveType = I && StateType = S
value = 3020
un hyper de 3000 que es también un golpe desesperado cuando el p1 tiene poca vida:
[State -1]
type = ChangeState
triggerall = !Win
triggerall = power >= 3000
triggerall = life <= 200
trigger1 = RoundState = 2 && Var(59) != 0
trigger1 = P2BodyDist X >= 75 && Random <= 300
trigger1 = Ctrl && P2StateType != L && StateType != A
value = 2000
y hacer eso con todos los golpes puño debil que generalmente es el stadef 200, puño fuerte, patadas, especiales hypers etc, y tener en cuenta las distancias y tipos de estado que los player deben tener y que se observan en los cns.
esto es lo necesario para hacer una buena AI, y tienes la guia de todas las AI que he hecho y que han hecho otras personas, como veras las mias son faciles de comprender, hay gente que las hace mas complejas, yo con esto he podido hacer muchas y es muy facil y funcionan muy bien, igual en internet se encuentra ejemplos de como hacerlas también, yo aprendi buscando en internet solo es cuentión de querer hacerlo, espero te sirva.
saludos.
1. declarar los comandos de AI en el archivo .CMD del char:
ejemplo que puede ir al inicio del cmd:
[Command]
name = "CPU_1"
command = F, F, F, F, F, F
time = 1
este comando indica a la cpu que ejecute 6 veces adelante, facil verdad? entonces hay que crear mas comando de AI, que utilicen mas movimientos y mas golpes ya que ese solo se mueve, entonces podemos crear otro asi:
[Command]
name = "CPU_6"
command = x, x, x, x, x, x
time = 1
indica que la CPU golpeara 6 veces con x, y asi y colocando combinaciones de movimientos y golpes, arriba, abajo, atras, con x, y, z etc, yo uso generalmente 25 comandos que para mi son suficientes, revisando cualquiera de los chars que he actualizado solo tendrias que copiarlos a la AI del char que quieras hacer.
2. activar los comandos de la AI, en el statedef -1 del archivo .cmd del char:
por tantos comandos de AI hallas creado debes referenciarlos en la activación, como mencione 2, activo esos 2 con la variable 59, puedes usar tambien la 50, una que no use mugen para sus cosas mas necesarias:
[State -1, AI]
type = VarSet
trigger1 = command = "CPU_1"
trigger6 = command = "CPU_6"
v = 59
value = 1
como yo uso 25 comandos debo colocarlos todos osea que harian falta 24 para hacerlo completamente, esa parte también se puede copiar igual de cualquiera de mis versiones.
3. activar cada golpe o movimiento exclusivo del char creado por el autor original:
hay movimientos comunes a todos los chars pero otros son exclusivos depende de la numeracion y forma de atacar que el programador halla hecho para su char, estos comandos son declarados en el archivo cmd pero son implementados o codificados en el archivo cns, hay gente que hace varios archivos cns, uno para golpes basicos, otro para especiales, otro para hypers, pero se puede hacer solo uno que contenga todo, la cosa es que cada uno de esos ataques es un statedef implementeado en common1.cns (golpes comunes a todos los chars) y en los archivos cns (golpes exclusivos de cada char) pero declarados en el archivo cmd para que puedan ser llamados en los cns, entonces con la AI pasa lo mismo debo llamar esos statedef coficados en los cns a traves del archivo cmd utilizando los comandos de AI y la activación de esos comandos con la variable, entonces en el statedef -1 del archivo cmd debajo de la activación de los comandos llamo todos los movimientos y ataques del char o los que solo me interesen, yo casi siempre llamo todos los ataques a menos que dañen la AI porque estan mal codificados.
un ejemplo de esto es el siguiente:
;AI Run
[State -1]
type = ChangeState
triggerall = !Win
trigger1 = RoundState = 2 && Var(59) != 0
trigger1 = P2BodyDist X >= 120 && Random <= 300
trigger1 = Ctrl && P2StateType != L && StateType != A
value = 100
esto indica a la AI de mugen que haga que el p2 corra hacia el p1, por eso es bueno colocar comentarios porque uno olvida los numeros de los statedef, aunque despues de tanto usarlos uno se los aprenda es bueno siempre comentariar run es correr.
si analizamos los triggers hay distancias, hay tipos de estado y otras cosas, esto tambien es de mirar la documentacion mugen para entender bien, si se fijan corre cuado los players estan separados a una distancia en x mayor a 119 (P2BodyDist X >= 120 ), el tipo de estado del p1 es diferente de estar en el aire (StateType != A), en el aire normalmente un char no corre, volaria pero no correria desde que no se dbz no correria en el aire, la var 59 es diferente de 0 por que ya se activo y se puso a 1 lo cual hace que la AI funcione (Var(59) != 0), el estado del round o ronda es igual a 2 es decir peleando (RoundState = 2) , y el tipo de estado del p2 es diferente de nockeado (P2StateType != L ), correr se ejecutara menor o igual 30% de las veces (Random <= 300), y lo que se ejecutara cuando corre es el statedef (value = 100) del common1.cns que es un golpe comun de todos los chars.
como vemos hay golpes y movimientos comunes, saltar, defenderse en stand, defenderse abajo, pero hay otros que son exclusivos como por ejemplo cargar cosmos o hacer una galaxian explosión, entonces si yo quiero que cargue cosmos debo asegurarme de que lo haga cuando preferiblemente no me esten golpeando, y si yo quiero lanzar una galaxian explosion ya que soy saga espectro entonces debo tener un power mayor o igual a 3000 y cosas de ese estilo por ejemplo:
cargar cosmos:
[State -1]
type = ChangeState
triggerall = !Win
triggerall = power < 3000
trigger1 = RoundState = 2 && Var(59) != 0
trigger1 = P2BodyDist X >= 120 && Random <= 300
trigger1 = Ctrl && P2MoveType = I && StateType = S
value = 3020
un hyper de 3000 que es también un golpe desesperado cuando el p1 tiene poca vida:
[State -1]
type = ChangeState
triggerall = !Win
triggerall = power >= 3000
triggerall = life <= 200
trigger1 = RoundState = 2 && Var(59) != 0
trigger1 = P2BodyDist X >= 75 && Random <= 300
trigger1 = Ctrl && P2StateType != L && StateType != A
value = 2000
y hacer eso con todos los golpes puño debil que generalmente es el stadef 200, puño fuerte, patadas, especiales hypers etc, y tener en cuenta las distancias y tipos de estado que los player deben tener y que se observan en los cns.
esto es lo necesario para hacer una buena AI, y tienes la guia de todas las AI que he hecho y que han hecho otras personas, como veras las mias son faciles de comprender, hay gente que las hace mas complejas, yo con esto he podido hacer muchas y es muy facil y funcionan muy bien, igual en internet se encuentra ejemplos de como hacerlas también, yo aprendi buscando en internet solo es cuentión de querer hacerlo, espero te sirva.
saludos.
Carmorion- 5 ESTRELLAS
- Country :
Mensajes/ Messages : 490
Fecha de inscripción/Registration date : 2016-04-24
Re: TUTORIAL RAPIDO I.A?
gracias.a probar sa dicho
oscartsg1- 5 ESTRELLAS
- Country :
Mensajes/ Messages : 971
Fecha de inscripción/Registration date : 2015-05-30
Localización : españa
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum