User talk:ONIrules

From OniGalore
Revision as of 19:44, 15 September 2008 by Gumby (talk | contribs)
Jump to navigation Jump to search

Loser: please keep your modding focused, so that you don't spend ages designing "new moves" when you could include them in a later release; please keep your modding modular, so that the more controversial parts can be made optional in a release; please distribute .oni files rather than OUP-importable data chunks when you can; please double-check your modded .raw parts carefully, because you don't want the release to be plagued with memory corruption; what is the most current release of your modded TRAM (did you fix all of the issues present HERE?), and do you believe it is stable (i.e., that it doesn't cause memory corruption and random crashes)? Please reply. Oh, and once your roadmap is clear enough, you can put that kind of talk on AE:Melee and AE_talk:Melee (and on more specific pages like AE:Spam-proof_melee and AE:Char-env_collision and...)

geyser 16:41, 3 August 2008 (CEST)

THANKS ONIrules!!! OK, first: geyser, I have read and aknowledged. Will try to do it that way.

And now, ONIrules:

- make clean install of EDITION or whatever was the version you modified. I do the same. That should prevent us from unwanted changes to sneak into our work. Then, the file where we will be modifying TRAMs will be EDITION level0. Make backup of clean, unmodified file, so you can compare if something goes wrong.
- use 640x480 windowed mode, it is good for screen capturing (see in TIPS)

1st goal: change of attack part attributes

why first: easy to reach, easy to show in trailer
  • in brackets there is prefix of TRAMs which each one of us will modify:
  • ONIRules: Muro(MUR), MutantMuro(MUT), striker(STR), ninja(NIN), TCTF_swat(TCT)
  • Loser: Konoko(KON), thug(THU), elite(ELI), comguy(COM), tanker(TAN), fury(RED)
  • what to do: play with some ONCC which has "your" moves (for example with Muro). Via script or develop console activate chr_debug_characters=1. In the window which appears, watch names of moves you do with your char. Reason is that TRACs can be inherited, so you can perform some STR moves with Muro. Those should NOT interest you while you are doing MUR ^_^.Play with character a lot for a while, spamming one attack, then next attack, then next...(by "attack" I mean single attack if it is directional, or whole combo if it is string of attacks)...focus on cheapness, spammability and overall look of move (strong and slow, strong and fast, weak and fast...). Then try to figure out in head what should be done in order to make the move be good, useable, but not abusable. Do it, test it, finetune it, move onto another TRAM. In combo, modify gradually one move after another from start to end.
  • TIPS:
  • do only attack moves, throws will be our next step
  • if you want to finetune something, make little script that will do this when you press punch (or any other animation): rotate camera 90°, cm_orbit(90,90) ,pause for a while, sleep 10 ,and then chr_animate 0 "your animation". Then activate thedayismine, make sure you have chr_debug_characters=1, press CRTL+SHIFT+L and then press whatever will trigger the script(punch,kick,some anim). after anim ends, CRTL+SHIFT+L to end capturing. This should take screenshot EVERY frame, allowing you to see how animation looks during its execution.
  • try to get rid of unblockability in special moves, replace it with heavy block stagger (60 frames of stagger, 0x3C00 in raw, that is max stagger before animation starts repeating itself) and 0x0008 attack part TRAM flag (attack does 1/2 dmg when blocked+uses attack flash, not blocked one)
  • use block stagger wisely, don't make it that every stronger attack makes enemy stagger for 60 frames
  • don't be afraid to change sucessful attack's impact on enemy. If it originally does stagger but you feel that body knockdown (50) is better, change it.
  • change also damage if you want but don't overdo it
  • for special attacks, use screen capturing process mentioned above to see how animation looks. Then make it semi-vulnerable. How? TRAM,0x3c, check that it does NOT have 0x02. Then go 0x180. first invulnerable frame, next is last invulnerable frame. Set these so they make middle part of special attack invulnerable, but leave there vulnerable windows at the beginning/in the end. How big? It is up to you, use screens to decide. Also, it should be at least 16 frames in order to have its effect (prevention from spamming). Totally vulnerable specials are bad idea IMO, but try it and if you will like it, do it. ^_^
  • please no particles/flashes changes, this will be done later
  • do RIF/PIS attack moves as well (there is not many of them). For RIF moves, I think it is good to make them unblockable but set damage to low value (1-5) and have them knockdown enemy. Purpose of these TRAMs is IMO to knockdown enemy and then finish them with weapon. Again, use your head and do it your way if you think your solution is better.

I think that is all from me. Write your comments. If you don't have any, write that we can start. Once you finish your work, export it as .oni files, rar it and write link here, so I can d/l it and test it. I will do the same with my part.

EDIT: THIS should help you, anim flags (first part) is what interest you as these are written into 0x12 in OBD:TRAM/raw0x14. CREDITS go to MOLTEN, the one who created it. --Loser 19:13, 3 August 2008 (CEST)

Hi, I'm just reading by. About that pdf: note that the flags are 1 too high. (Example: Remember powerup animation type 219? It is 220 in the pdf.) --Paradox-01 20:05, 3 August 2008 (CEST)
Thats a lot!! Since this is my first time, it will be a little unclear. So Loser, just tell me first the things step by step. Then I can follow your task. You don't have to remind of the characters that I'm going to do. Its in my brain ^_^ONIrules August 2008 (EST)
Can you post a screenshot or even the files of your new character? EdT 21:53, 3 August 2008 (CEST)

EdT: I don't think he means whole new character, but "his" TRAMs (his half of work).

Paradox: I know about that fact, but thanks for mentioning it. Yes, numbers are shifted because list should start with ZERO, but it start with one.

ONIrules:OK, it is decided. I write you this step by step list how to work on one TRAM in way I want and let's get to work. When you are finished, write here + post .oni files. First, terminology we will be using for fields in attack part of the TRAM:

Offset Type Raw Hex Value Description
First element (black outline)
0x00 bitset32 00 60 06 00 0, 96, 6, 0 damage-dealing bones
0x04 float 00 00 00 41 8.000000 knockback, the higher you set, the more is enemy pushed back when attack is sucessful
0x08 bitset32 08 00 00 00 8, 0, 0, 0 attack part flags; the following bits are possible:
0x00 - nothing special, attack can be blocked by any stance of defender (crouch, stand) and deals no damage when blocked
0x01 - attack is unblockable
0x02 - attack is high (can be blocked only in normal stance, hits if enemy is crouching)
0x04 - attack is low (can be blocked only in crouch stance, hits if enemy is in normal stance)
0x08 - attack deals 1/2 damage when blocked + while blocking, it does not use blue flash but hit flash (konflash1 for this TRAM)
0x0C int16 14 00 20 hit points
0x0E int16 05 00 5 start frame
0x10 int16 0F 00 15 stop frame
0x12 int16 50 00 80 hit animation (animtype ID of animation of opponent if attack was sucessful,for example 80 = hit_foot)
0x14 int16 0A 00 10 animation duration (in frames, if you input high values, it automatically changes any animtype ID of enemy to stagger animation
0x16 int16 0A 00 10 block stun (in frames) -input high values and this attack will get "has blockstun" label when used by MELE profile
0x18 int16 00 00 0 block stagger (in frames) - when used this move gets "has stagger" when used by MELE profile
0x1A int16 00 00 0 apparently garbage
0x1C int32 00 00 00 00 0 apparently garbage
  • 1) Spam original TRAM (or whole combo). Spam it aganist group of enemies, spam it aganist single enemy (some harder, like Muro/Mukade). Look at the effect this spam has.
  • Is AI2 able to resist the spam? That does not mean it can block/dodge every attack. Only if you can do that move again and again and enemy can barely hit you, there is something wrong, especially aganist multiple enemies (Konoko's original kick special is nice example. If you have good timing, you can spam it so good that you are virtually undefeatable)
  • Are you (attacker) vulnerable while attacking? That means: if you attack with your move and enemy attacks you as well, then enemy gets hit but you recieve "blocked attack" blue flash. Notice when spamming specials. Sometimes you GET hit (some enemy attacks you) while doing special, but it indicates blue flash. Similar when getting up.
  • Which effect has sucessful attack on enemy? Does he only gets hit/is staggered/is knockdowned? Do you think it is good response for your attack? Are you satisfied with knockback? In combos, can you land next hit safely or enemy gets out of reach/can counterattack when you want to do next move?
MY VISION for combos: Make combos so you can sucessfully counterattack only in pause between FIRST and SECOND move. next pauses (between third and fourth etc) should be cared that defender cannot counterattack, can only defend. This way, using combos will get more rewarding. Use bigger value in block stun or mild block stagger to achieve this effect.
REASON: In original ONI if enemy catches you with combo, you can usually throw him and free yourself (with few exceptions) between 2nd and 3rd move. Then using combos is too risky and player reserves for hit n' run tactics, lariatfest or judo (throws a lot). Of course when combo looks like two fast punches then one slow, it has to be treated differently. It is up to you.
  • think about damage, block stagger. I prefer block stagger to block stun, it looks more dynamic. But choice is yours. Don't forget: even if TRAM will cause block stagger, there should be at least 8 frames of block stun written in. Block stagger should be adequate to the power of attack. Beware: some attack causes block stagger -> right after that we can throw. That would lead (logically) to abuse of that move. Specials/standing combos are usually good (use block stagger wisely), Be especially catious when modifying running/jumping moves (block stagger from running move -> immediate possibility of running throw).
  • You can also change start/stop frame if you think it will be for good.
  • my request: directional (lt/rt/fw/bk) punches can be blocked in any stance, kicks only in stand (0x02 attack part flag)
  • my request: last moves from combos should be blocked only high or low (depends on how animation looks), rest can be blocked in any stance
  • my request: running punches can be blocked in any stance, kicks in stand only (0x02 attack part flag)
REASON: by these, we will uplift kicks a bit, evening fact that fists are usually faster.
  • 2) Then start modifying TRAM. Do attack part, then change vulnerability if attack has any. Basically, make TRAMs as much vulnerable as possible. Don't forget - throws are next step, so leave them out now.
  • invulnerability - Open your TRAM (dat entry), offset 0x3C. Check that it does NOT have 0x02. If yes, remove it so TRAM becomes vulnerable. If it had (specials mostly), do that screen capture process I wrote above. That way you will see how animation looks in each frame, it helps you with deciding. Now we want it to be invulnerable only in the middle. Go to 0x180, here you can set first frame when animation gets invulnerable. next to it is field for last frame. Adjust it so these specials have invulnerable part in the middle of execution, where "attacker is the king" but have at least 16 frames long windows (and I prefer longer ^_^) at the beginning/at the end of animation, so attacker can be hurt. This should prevent spamming.
  • 3) Save, try again aganist group and aganist single enemy. Finetune, then move onto another TRAM. That is enough so far.

LET'S ROCK !!!


HERE is my part, hopefully without any bugs. In folder "just for better gameplay", there are evasion moves of Striker, Ninja and Muro, changed so they are invulnerable for about 10 frames at the beginning.

REASON: AI2 is not human, it can react only when it collides with attack TRAM's extent (see TRAM). Due to that, AI2 dodges at the "last moment", so it is often hit at the beginning of the dodge. This modification helps AI2 not to be caught so easily. My vision of gameplay is IMO good (not great, but still better than too spam-able original) but side result of it is that AI2s try escape from combo in pause between first and second punch, because that is defender's LAST chance before he is forced to block (or eat ^_^) whole combo without possibility to break away. And without those invulnerable windows AI2 are quite often caught when they try to dodge out in that last chance. With them it is OK, sometimes they get hit, sometimes they manage to escape (and remember: Ninja's dodge is annoying enough even without those ^_-). Plus, it is Konoko who HAS those invulnerable beginnings even in original ONI! So player HAS this advantage. Now...AI2 has it as well ^_^.
/REASON

--Loser 16:20, 9 August 2008 (CEST)


ATTACKS COMPLETED

I apologize, ONIrules, it was request from Geyser. We are moving on throws. If you are interested, write here.

--Loser 12:31, 8 September 2008 (CEST)

Check out Neo's talk page for new onisplit version. I think there's a good chance to create blue plasma impacts for your weapon now. These are the data you might want to take a look at.

       <Impact Name="w3_phr">
           <Material Name="Default">
               <ImpactEffect>
                   <Component>Impact</Component>
                   <Modifier>Heavy</Modifier>
                   <Sound>
                       <Name />
                       <AICanHear>true</AICanHear>
                       <AISoundType>4</AISoundType>
                       <AISoundRadius>150</AISoundRadius>
                   </Sound>
                   <Particles>
                       <Particle>
                           <Name>w3_phr_x01</Name>
                           <Orientation>3</Orientation>
                           <Location>1</Location>
                           <Offset>0.2</Offset>
                       </Particle>
                   </Particles>
               </ImpactEffect>
           </Material>
           <Material Name="Character">
               <ImpactEffect>
                   <Component>Impact</Component>
                   <Modifier>Any</Modifier>
                   <Sound>
                       <Name />
                       <AICanHear>true</AICanHear>
                       <AISoundType>4</AISoundType>
                       <AISoundRadius>150</AISoundRadius>
                   </Sound>
                   <Particles>
                       <Particle>
                           <Name>w3_phr_x02</Name>
                           <Orientation>2</Orientation>
                           <Location>5</Location>
                       </Particle>
                   </Particles>
               </ImpactEffect>
           </Material>
       </Impact>

If you change that, you also have to change the name of the impact in the particle file. Gumby 21:44, 15 September 2008 (CEST)