Oni Central Forum

A forum for the Oni community

You are not logged in.

#26 1/10/11 12:22

Yoriko
Member
From: Sweden, Gothenburg
Registered: 15/2/11

Re: Improve the melee profile using .xml

incredble work Loser! The way the tanker follows up his punch with a tripple knee jab looks really fluent and player-like. Say it is possible to make it so that different ranked enemies have completely different melee AI?
I love how you made the grey striker able to tackle. ^^

EDIT: Erm, where do you put the file? ^^'

Last edited by Yoriko (1/10/11 12:23)


-I noticed that the hackers of oni community made a lot of modifications before they locked me up, do you have any idea what they want with an old game? -Modifications? What kind of modifications?
-Hard to tell, without getting a look at things but it looks like they're repurposing it. -Why?
-Beats me, all the game has is brutal melee combat and furious gunplay. -I dont like the sound of that.....

Offline

#27 1/10/11 23:22

EdT
Moderator
From: Los Angeles, CA
Registered: 13/1/07
Website

Re: Improve the melee profile using .xml

Loser: Thanks for the updated melee. I hope you procrastinate some more and improve a couple more profiles big_smile

Offline

#28 2/10/11 13:04

Mukade
Member
From: Ottawa, Ontario - Canada
Registered: 29/5/07

Re: Improve the melee profile using .xml

Great work! I've been waiting for something like this, and you accomplished it beautifully!


"He looks mean enough to tear my arm off and beat me to death with it. In fact, he looks mean enough to tear his OWN arm off and beat me to death with it."

Offline

#29 26/2/13 13:22

Samer
Member
From: Lebanon
Registered: 4/9/09
Website

Re: Improve the melee profile using .xml

Mmm
so i've been trying to make the hammer a custom melee id cz none of the existing allow him to use all his moves and if he does he spams them too much ..
Trying to make him a custom melee i had the superkick weight as 85 and delay as 600 ... He doesn't do it at all .. While he does the superpunch weight 80 and same delay ... And the heavykick is the first move in his melee ... (the type is correct i presume cz i copied it from cannon ball)
there is an importance tag .. Any idea what that does ? Most moves seem to have 10 in the importance tag.


Join our Oni Facebook Group
Check My YouTube Channel for my Oni Videos.
Check My Wiki page for all my stuff

Offline

#30 26/2/13 22:06

EdT
Moderator
From: Los Angeles, CA
Registered: 13/1/07
Website

Re: Improve the melee profile using .xml

All I can suggest is change the weight of the superkick and make sure you don't have another move that is labeled heavykick.  I don't know about the importance tag, sorry.

Offline

#31 28/2/13 8:17

ltemplar
Member
From: Poland
Registered: 23/8/12

Re: Improve the melee profile using .xml

http://wiki.oni2.net/XML:BINA/OBJC/MELE - here is the answer to all your questions(if you don't know that already).
But I prefer work with this: http://wiki.oni2.net/OBD:BINA/OBJC/MELE

Last edited by ltemplar (28/2/13 8:23)

Offline

#32 2/7/13 5:52

Samer
Member
From: Lebanon
Registered: 4/9/09
Website

Re: Improve the melee profile using .xml

is there a way to add a jump flip (jump then crouch) as an attack ? there's no default one there's JF_K and JF_P
I tried
<Moves>
                            <Position Type="RunJumpForward" MinRunInDist="12" MaxRunInDist="30" ToleranceRange="9" />
                            <Maneuver Type="Crouch" Duration="0.4" />
</Moves>
but the move doesn't execute ... says no attack or throw in the console (ctrl + alt +b)

also what does unlocked misbounds mean ? The console says that about some moves that are not executing as often as they should.

Last edited by Samer (2/7/13 6:09)


Join our Oni Facebook Group
Check My YouTube Channel for my Oni Videos.
Check My Wiki page for all my stuff

Offline

#33 2/7/13 8:36

EdT
Moderator
From: Los Angeles, CA
Registered: 13/1/07
Website

Re: Improve the melee profile using .xml

I don't know, but I can suggest one thing, when trying to add new moves, create a new melee ID and just include that one move, then it is easier to see if the move works and easier to modify it.

Offline

#34 2/7/13 12:56

Loser
Member
From: somewhere in da Czech Republic
Registered: 14/1/07

Re: Improve the melee profile using .xml

Samer, jump flip is unfortuantely impossible for AIs as far sa my testing goes.

When creating the BrutalAI, I have experimented with this idea like there was no tomorrow, wanted to give jump flips to ninjas as a way of taunting the player from medium distance.

Unfortunately, nothing ever worked.

Regarding the "missbounds", if I recall correctly, that means the AI cannot find any possible position (in regards to the currently focused enemy) in which the "MISSBOUNDS" technique could be executed.

Last edited by Loser (2/7/13 12:57)


"I am just a mere reflection of what I would be."

Offline

#35 3/7/13 1:16

Samer
Member
From: Lebanon
Registered: 4/9/09
Website

Re: Improve the melee profile using .xml

but I don't why it's saying that .. I'm just trying to add a heavy kick to the melee profile
example :
<Technique>
                        <Name>Lunar Phase</Name>
                        <Flags>GenerousDir</Flags>
                        <Weight>100</Weight>
                        <Importance>10</Importance>
                        <RepeatDelay>600</RepeatDelay>
                        <Moves>
                <Position Type="StartToCrouch" />
                             <Attack Type="CS_K" />
                <Maneuver Type="Pause" Duration="0.7" />
                        </Moves>
</Technique>

It keeps saying unblocked msibounds. though the heavy punch with same settings but CS_P executes fine.
I tried the different flags without generousdir, and with\without Interruptible and as the only move in the melee profile.
and I tried this setting
<Position Type="StartToCrouch" />
<Maneuver Type="BarabasWave" MaxRange="30" />
<Maneuver Type="Pause" Duration="0.6" />

with same results are there any parameters that could be affecting it from the tram itself ? maybe the extents which are automatically generated by onisplit for this custom move.


Join our Oni Facebook Group
Check My YouTube Channel for my Oni Videos.
Check My Wiki page for all my stuff

Offline

#36 3/7/13 8:41

Samer
Member
From: Lebanon
Registered: 4/9/09
Website

Re: Improve the melee profile using .xml

Loser I hope you can answer me this please

<Maneuver Type="Retreat" Duration="0.45" MaxRange="25" ThresholdRange="15" />
<Position Type="StartToCrouch" />
<Maneuver Type="BarabasWave" MaxRange="35" />
<Maneuver Type="Pause" Duration="0.6" />

I've read the wiki and your posts here but there are some things I still don't get.
the retreat here max range = 25 .. does this mean
character will only retreat if it's 25 distance units or closer to the target
or will only retreat if it's 25 distance units or farther to the target
or does this mean character will only retreat a max of 25 distance units before it stops retreating and moves on to the second move in the technique ?
I don't understand the threshold range here ... I read you said it affects distance of flags .. if there' no flag for the technique then what does it do ?
does it mean that it will try to retreat 25 units and upon retreating 15 units or more (<25) it will be able to move to next move ?

basically i want character to retreat a bit before it executes the move, but such that it only retreats if after retreating the move can still reach the target.


Join our Oni Facebook Group
Check My YouTube Channel for my Oni Videos.
Check My Wiki page for all my stuff

Offline

#37 3/7/13 16:47

Loser
Member
From: somewhere in da Czech Republic
Registered: 14/1/07

Re: Improve the melee profile using .xml

Just for info 1:
I have tried to make the AI2 perform Sarai's special kick attack in MELE and it works, no missbounds warning. No idea what is wrong on your side.

Just for info 2:
For the MELE profile creation, an important value to remember is 80. Eighty is a distance between the MELE user and the focused target at which the MELE code kicks in. If the target is further that 80, MELE code is not performed and all currently performed MELE moves (including maneuvers) are cancelled.


Now for your question:
Retreat

  • Duration - in seconds. How long will the character perform the maneouver (retreat in this case). When the maneouver starts, the character simply performs it as long as the duration specifies. If the character maneouvers out of the MELE range (80 game world distance units), the technique is cancelled (character stops retreating in this case).
     

  • MaxRange - the maximal distance from the focused enemy for this maneuver to be performed.
     

  • ThresholdRange - additional range with linearly dimnishing technique weight. If this si set non-zero, then the total range in which the retreat can be performed is MaxRange + ThresholdRange. In MaxRange, technique's weight is the weight set in MELE profile. In the ThresholdRange, Weight linearly decreases with distance from the focused target character till it hits zero weight at the edge of the Threshold range.

Bear in mind that in order for the technique to be executed, ALL conditions of ALL contained moves must be met at the moment the engine picks the technique to be performed. In case of the technique of yours that means it will be executed only when the target is closer than 35 units (condition from the BarabasWave), while the Retreat move alone would work up to the distance of 50 units. Nothing is wrong per se, I am writing this to ease you the work on debugging techniques.


Finally, to answer the request for the conditioned technique - that is unfortunately impossible. Still, you can set up for example two variants of the technique - one variant will have shorter MaxRange distances and will utilize brief Retreat move before Kick Special. The other variant will have "Advance" move incorporated so it will be spaced to execute only when the MELE user is in a certain distance from the target. And that one will have no Retreat, it will execute the Kick Special immediately. This solution should suit your needs.

The following are moves of a technique that is to be executed only if the distance to the focused target is between 35 and 40 units. Works kind of well for Sarai's Special kick.

<Maneuver Type="Advance" Duration="0.2" MinRange="35" ThresholdRange="0" />
<Position Type="StartToCrouch" />
<Maneuver Type="BarabasWave" MaxRange="40" />

Last edited by Loser (3/7/13 16:52)


"I am just a mere reflection of what I would be."

Offline

#38 3/7/13 18:41

Samer
Member
From: Lebanon
Registered: 4/9/09
Website

Re: Improve the melee profile using .xml

thank you smile


Join our Oni Facebook Group
Check My YouTube Channel for my Oni Videos.
Check My Wiki page for all my stuff

Offline

#39 4/7/13 8:53

Samer
Member
From: Lebanon
Registered: 4/9/09
Website

Re: Improve the melee profile using .xml

Loser i hope you still haven't gotten tired of my questions yet tongue
i'm struggling with this.
I need rayman to retreat and shoot energy balls or shoot them from a distance.
The barabaswave maneuver won't work here like for sarai since he uses the punch animation.
From what i understood .. If the tram itslef has low reach (extents) that affects it being picked up by the engine that's why barabas wave tecnhique is used.
But can that be applied to non heavy kicks trams ?
Example for rayman his punch animation has low reach itself but makes him shoot an energy ball.
I had this technique
first retreat duration 1 with maxrange 60 (i think that doesn't go over the 80)
then position stand then attack P (shoot)
then circle left -> position stand ->P again then circle right and same thing.
Supposedly he should retreat when he's 60 units or closer to the target, then stand and punch (shoot the energy ball) ranged attack then circle right and left and shoot 2 more.
This works about 40% of the time, the other times he retreats and stands but then quickly comes forward again without shooting/punching or he gets stuck in some sort of weird retreating, coming forward cycle.
Is this because that the punch tram has low extents ?
this is the code

<Technique>
                        <Name>Ranged balls</Name>
                        <Flags>GenerousDir</Flags>
                        <Weight>100</Weight>
                        <Importance>80</Importance>
                        <RepeatDelay>5</RepeatDelay>
                        <Moves>
                            <Maneuver Type="Retreat" Duration="1" MaxRange="60" ThresholdRange="0" />
                            <Position Type="Stand" />
                            <Attack Type="P" />
                            <Maneuver Type="CircleLeft" Duration="0.7" MinAngle="0" MaxAngle="180" />
                            <Position Type="Stand" />
                            <Attack Type="P" />
                            <Maneuver Type="CircleRight" Duration="0.7" MinAngle="0" MaxAngle="180" />
                            <Position Type="Stand" />
                            <Attack Type="P" />
                            <Maneuver Type="Pause" Duration="0.7" />
                        </Moves>
                    </Technique>

I tried the advance method with minrange 30 then stand then punch, didn't work, only worked for minrange 10 or lower. But the one you proposed for sarai does. (the barabas wave overcomes the extent thing i guess and her move already has high reach) so is there anyway to make ranged attacks with low extents work correctly ? Can the barabswave be applied to non heavy kicks ? I wanted to apply it to hammer's heavy punch or punch forward for example.

Last edited by Samer (4/7/13 12:38)


Join our Oni Facebook Group
Check My YouTube Channel for my Oni Videos.
Check My Wiki page for all my stuff

Offline

#40 4/7/13 10:04

Iritscen
Moderator
From: NC, USA
Registered: 22/10/07

Re: Improve the melee profile using .xml

*is glad he doesn't have to understand this stuff*


byproducts are fine, but where's the beef?

Offline

#41 4/7/13 16:52

Loser
Member
From: somewhere in da Czech Republic
Registered: 14/1/07

Re: Improve the melee profile using .xml

Samer, Rayman's punch is a rather tricky request.

First about the BarabasWave and why it is different from other attacks:
ATTACK moves and MANEOUVER moves are handled a bit differently by the MELE logic, as you already know.

  • ATTACK moves don't contain any spacing parameters (no ranges, no angles, no durations). They can be used as standalone moves (without a position move), but as far as I know, their "range" (used for technique evaluation) is then solely based on their TRAM extents.

     

  • When a POSITION move is utilized prior to the ATTACK move, then from my observations TRAM extents will still have an effect, but the technique can be executed even when the target is outside of extent reach, but meets the POSITION move spacing conditions. The MELE user will then start using the technique (the first "positioning" move of the technique) and will attempt to position itself in such a way so the next move's, the ATTACK move's TRAM extents reach the enemy. If the AI succeeds in finding such a position which meets requirements of all moves which follow after the positioning move, then the technique continues with the execution.

     

  • MANEOUVER moves don't need preceeding position moves. Maneouver moves have their own spacing parameters.

Now, BarabbasWave is a kind of a special type of a Maneouver move. This maneouver move makes the character not run or duck or jump, but it makes it perform a Kick_heavy. Since it is a maneouver move, it ignores extents, it has its own spacing parameter - MaxRange.

Apart from this speciality (which most probably exists only because of Barabus's Earthquaker attack), no other attack move has its maneouver variant.

That means Rayman's punch will be always scrutinized based on its extents by the MELE logic.
However, despair not. Since the MELE code most probably works with extents and not with the attack itself, it can be abused. In your RAYCOMcomb_p, set Extents (all of them, horizontal extents as well as all extents nodes) to not cover some small pre-computed area, but let's say give them a length of 100 to be on a safe side. Also, since the attack will have a greater range, set the MinY and MaxY in Extent nodes to let's say MinY=0 and MaxY=30 (no exact reason behind values, we are just broadening the area).

Next, in the MELE profile, create these two techniques:

  • a technique with a Retreat move (MaxRange 60, Dur 0.2), followed by a short Pause move (Dur 0.2 as well)

  • a technique with an Advance move (MinRange 40, Dur 0.2) followed by a short Pause (Dur 0.2)

Those two techniques will serve as MELE spacing moves and are mandatory. Without them, Rayman will have a very strong tendency to keep running as close as possible before using the attack technique.

Finally, setup the Fake ranged attack technique.

<Technique>
    <Name>FakeRangedAttack</Name>
    <Flags>GenerousDir</Flags>
    <Weight>100</Weight>
    <Importance>80</Importance>
    <RepeatDelay>0</RepeatDelay>
    <Moves>
        <Position Type="CloseForward" MinRunInDist="0" MaxRunInDist="80" ToleranceRange="0" />
        <Attack Type="P" />
    </Moves>
</Technique>

Such a MELE profile was tried by me and works quite nicely. Rayman most often keeps in a medium distance and spams the fireball attack. However, it will NEVER work 100% correctly, since we are abusing extent mechanics and also because ATTACK technique execution is always a bit fickle. But I guess this is the best advice I can give you in this matter.


Iritscen: *touché*

Last edited by Loser (4/7/13 16:54)


"I am just a mere reflection of what I would be."

Offline

#42 5/7/13 2:38

Samer
Member
From: Lebanon
Registered: 4/9/09
Website

Re: Improve the melee profile using .xml

Thanks andrashi, i really appreciate all your help and explanations.
I've decided to postpone the rayman change for now since it will require a character package TRAM update and further testing for the extents-change effect.

Ouh btw, the retreat and advance techniques (spacing techniques) you mentioned are to be added under the maneouver techniques section right ?

Last edited by Samer (5/7/13 2:45)


Join our Oni Facebook Group
Check My YouTube Channel for my Oni Videos.
Check My Wiki page for all my stuff

Offline

Board footer

Powered by FluxBB