土日に、Javaを使ってヒット確認トレーニングマシーンを作ってみました(´∀`)

http://www1.axfc.net/uploader/N/so/103422

Pass:alex



長崎3rd日記
内容はこんな感じ。

アレックスが拳に対して勝手に膝蹴りをし続け、拳は勝手に喰らったりガードしたりブロったりします。

それをヒット確認してマウスをクリックする(しない)という簡単なゲームです。


大層に見えますが、最初にアレックスが蹴るまでの動画を流しておいて

ランダムで3パターンの動画に繋げているだけですw

またReadMeファイルにも書いてありますが、正確には60fpsではないです。

正確に60fpsにするアルゴリズムがあるみたいなので、今度やってみます。


ゲームのヒット確認と違ってレバーも無いし、マウスを使っての反応になりますが、

やっぱり確認は難しいなあという指標にはなるかと思います(´∀`)

十字キーの上下で目標確認フレームを操作することができますので、色々試してくださいねー。

EX技のボタンについて調べたことを、ここで書くでござる!




その1.ボタンは1Fのズレもなく同時に押さなければならない。


その2.弱Pの押し+中Pの離し という入力は駄目。


その3.スライドでEX技を出す場合は、スライド技のボタンとEX技のボタンが違う種類ならば、

     スライド技のボタンを押したままEX技のボタンを押さなければならない。

     同じ種類のボタンならば、スライド技のボタンを離すと同時にEX技のボタンを押しても良い。

     (例:中足スライドEX昇竜は中足を押しっぱなしにしないと駄目)


その4.EX技のボタン入力は、投げ、リープ、PA同様に入力の持続が2Fある。

     行動可能1F前に押しても、2F目の持続でちゃんとEX技が出る。


その5.EX技のボタン入力は、離しも2Fの持続がある。2F押して離せば、合計4Fの持続に。


その6.2F目の持続を受け付けているのはEX技のみ。ゲージが光ってないときは何も出ない。

     通常技の攻撃判定発生の1F前に同時押しor離しをすればDED的な事も可能だが、

     タイミングが1Fなので推奨しない。ノーリスクな通常技&EX技なら…。

     訂正:よく考えたら攻撃が当たってからゲージが溜まるまで2Fほど間があるので、

     このやり方ではDEDできないです。ごめんなさい。



こんな感じですのうー(´∀`)

土日に、ちょっと面白いものを作る予定です。お楽しみにー(・∀・)

先日、ローソンでお買い物をしました!

チョコを買うぜチョコを!



















長崎3rd日記

あれ?このキャラ…













長崎3rd日記
どこかで見たことが…とくに髪型…










長崎3rd日記
うーん思い出せない…(´∀`)

オロの天狗乱石の配置の秘密を調べて!とのお便りを頂いたので、調べてみました。

とあるランダム的な数値(00~63)が関係しているようですね。


以下に、数値と配置の関係を記します。

…岩(大)

…岩(小)

…ロボット

…埴輪

…レンガ

00
  
 ■ 
 ● 
 ■ 
 ■ 
01
 ■ 
 ● 
 ■ 
 ■ 
 ● 
02
 ● 
 ■ 
 ■ 
 ● 
 ■ 
03
 ■ 
 ■ 
 ● 
 ■ 
 ■ 
04
 ■ 
 ● 
 ■ 
 ■ 
 ■ 
05
 ● 
 ■ 
 ■ 
 ■ 
 ● 
06
 ■ 
 ■ 
 ■ 
 ● 
  
07
 ■ 
 ■ 
 ● 
  
 ■ 
08
 ■ 
 ● 
  
 ■ 
  
09
 ● 
  
 ■ 
  
 ■ 
10
  
 ■ 
  
 ■ 
  
11
 ■ 
  
 ■ 
  
 ■ 
12
  
 ■ 
  
 ■ 
  
13
 ■ 
  
 ■ 
  
 ■ 
14
  
 ■ 
  
 ■ 
 ■ 
15
 ■ 
  
 ■ 
 ■ 
 ■ 
16
  
 ■ 
 ■ 
 ■ 
 ■ 
17
 ■ 
 ■ 
 ■ 
 ■ 
 ■ 
18
 ■ 
 ■ 
 ■ 
 ■ 
  
19
 ■ 
 ■ 
 ■ 
  
  
20
 ■ 
 ■ 
  
  
 ■ 
21
 ■ 
  
  
 ■ 
 ■ 
22
  
  
 ■ 
 ■ 
 ■ 
23
  
 ■ 
 ■ 
 ■ 
 ● 
24
 ■ 
 ■ 
 ■ 
 ● 
  
25
 ■ 
 ■ 
 ● 
  
 ■ 
26
 ■ 
 ● 
  
 ■ 
 ■ 
27
 ● 
  
 ■ 
 ■ 
 ■ 
28
  
 ■ 
 ■ 
 ■ 
 ■ 
29
 ■ 
 ■ 
 ■ 
 ■ 
 ■ 
30
 ■ 
 ■ 
 ■ 
 ■ 
 ■ 
31
 ■ 
 ■ 
 ■ 
 ■ 
 ■ 
32
 ■ 
 ■ 
 ■ 
 ■ 
 ● 
33
 ■ 
 ■ 
 ■ 
 ● 
  
34
 ■ 
 ■ 
 ● 
  
 ■ 
35
 ■ 
 ● 
  
 ■ 
 ● 
36
 ● 
  
 ■ 
 ● 
 ■ 
37
  
 ■ 
 ● 
 ■ 
 ■ 
38
 ■ 
 ● 
 ■ 
 ■ 
 ● 
39
 ● 
 ■ 
 ■ 
 ● 
 ■ 
40
 ■ 
 ■ 
 ● 
 ■ 
  
41
 ■ 
 ● 
 ■ 
  
  
42
 ● 
 ■ 
  
  
 ■ 
43
 ■ 
  
  
 ■ 
 ■ 
44
  
  
 ■ 
 ■ 
 ● 
45
  
 ■ 
 ■ 
 ● 
  
46
 ■ 
 ■ 
 ● 
  
  
47
 ■ 
 ● 
  
  
  
48
 ● 
  
  
  
 ■ 
49
  
  
  
 ■ 
 ■ 
50
  
  
 ■ 
 ■ 
 ■ 
51
  
 ■ 
 ■ 
 ■ 
 ■ 
52
 ■ 
 ■ 
 ■ 
 ■ 
  
53
 ■ 
 ■ 
 ■ 
  
 ■ 
54
 ■ 
 ■ 
  
 ■ 
 ■ 
55
 ■ 
  
 ■ 
 ■ 
 ■ 
56
  
 ■ 
 ■ 
 ■ 
 ■ 
57
 ■ 
 ■ 
 ■ 
 ■ 
  
58
 ■ 
 ■ 
 ■ 
  
 ■ 
59
 ■ 
 ■ 
  
 ■ 
 ■ 
60
 ■ 
  
 ■ 
 ■ 
  
61
  
 ■ 
 ■ 
  
 ■ 
62
 ■ 
 ■ 
  
 ■ 
 ● 
63
 ■ 
  
 ■ 
 ● 
 ■ 

天狗乱石は数値でローテーションがあるようですね。

天狗石はローテーションが無かったので調べていません。



さて、ランダム的な数値といいましたが、フレーム毎に切り替わっているというわけではないようです。

以下の時に、増えたり減ったりしていました。


・デモ画面でのコイン投入時

・キャラセレ画面移行時

・キャラ決定時

・SA決定時

・対戦相手決定時

・対戦画面移行時

・対戦開始の画面白色発光時

・攻撃を当てた時(攻撃の種類によって一定)

・攻撃を喰らった時(攻撃の種類によって一定)

・相手をダウンさせた時(ダウンの種類によって一定)

・自分がダウンした時(ダウンの種類によって一定)

・SA発動時(天狗石時6、天狗乱石時10)

・ラウンド終了後の画面切り替わり時

・CPU戦時(頻繁)

・GAMEOVERのカウントダウン時(毎フレーム)


ざっと調べただけでこんな感じです。調整は無理という結論が出ました。

とりあえず、この表を全て暗記して対戦中に天狗乱石を発動して

「ああ、今の値は○○だったんだなあ」と思ってくれる人が出てくれる事を祈ります。



-----------------------------------------------



ランダムと言えば、もう一人いたような…そうだ春麗のPA!

春麗と言えば、ストIIドラマCD「春麗飛翔伝説」が昔ありましたね(^ν^)

あのドラマCDって3巻までしか出てないのだろうか。


春麗の場合はオロのよりもランダムっぽさが無い数値(0~127)を使っていました。

数値とPAの種類の対応を、以下の表に示します。(未完成)

A…あくび後、何もしない

B…あくび後、肩を叩く

C…あくび後、首を曲げる

D…あくび後、腰を伸ばす

000 A 016 032 048 064 080 096 112
001 B 017 033 049 065 081 097 113
002 A 018 034 050 066 082 098 114
003 D 019 035 051 067 083 099 115
004 C 020 036 052 068 084 100 116
005 B 021 037 053 069 085 101 117
006 A 022 038 054 070 086 102 118
007 C 023 039 055 071 087 103 119
008 C 024 040 056 072 088 104 120
009 C 025 041 057 073 089 105 121
010 B 026 042 058 074 090 106 122
011 A 027 043 059 075 091 107 123
012 B 028 044 060 076 092 108 124
013 A 029 045 061 077 093 109 125
014 C 030 046 062 078 094 110 126
015 C 031 047 063 079 095 111 127


この値が変化する条件と変化量は、調べた分では以下の通り。

・デモ画面でのコイン投入時(たぶんランダム)

・PA_A(1)

・PA_B(2)

・PA_C(3)

・PA_D(3)

・ニュートラルポーズになって41F目。以降は40F単位で不規則(1)

・CPU戦時(頻繁&不規則)


オロの時よりも増えたり減ったりが無いので、若干楽そうですね。
ですが、恐らく数値とPA種類の関係が不規則なのでこれも難しそうです。

ああ残念だ…。

どの種類の攻撃にどれだけ補正がかかるかを調べたので、とりあえず通常攻撃だけ載せときます。

丹田発動&PAx2後のまことで強・剣を屈豪鬼に当てるとダメージが丁度100なので、

それを基準に測定してます。もしかしたら小数点以下もあるのかも知れません。


小P、小K

01 255
100% 100%



中P、中K

01 02 03 04 05 06 07 08 09 10
94% 88% 81% 75% 69% 63% 59% 56% 53% 50%
11 12 13 14 15 16 17 18 19 20
47% 44% 40% 37% 34% 31% 31% 28% 28% 25%
21 22 23 24 25 26 27 28 255
22% 22% 22% 18% 18% 18% 15% 15% 15%



大P、大K

01 02 03 04 05 06 07 08 09 10
88% 75% 63% 56% 50% 44% 37% 31% 28% 25%
11 12 13 14 255



22% 22% 18% 15% 15%

※幻影陣発動中の通常技は違う補正変数を使っているので、↑は適用されません。



色々試してみた結果、ダメージは基本的にこんな感じの流れになるようです。

例:J中K→立ち大P→昇竜拳

1.J中Kのダメージは100%

2.中Kの補正変数が1になる

3.立ち大Pのダメージがx94%になる

4.大Pの補正変数が1になる

5.昇竜拳のダメージがx94%x88%になる


ただ、中Kの補正変数が10、大攻撃の補正変数が7の時に先程の条件で強・剣をやると、

100x0.50x0.37=18.5でダメージは18~19のはずなのに、何故か22(補正変数が6の時の結果)に…。

そして大攻撃の補正変数が8の時だと18になります。誰か逆アセンブルしてくれ…。

ちなみに15%が最小値のようで、20%x20%とかになっても15%になります。






あっそうそう言い忘れてた!


コンボが終わって空中復帰中の相手にSAを当てようとしてブロッキングされた場合は

次の攻撃に補正がかかる現象ありますよね。あれは、空中復帰して着地の1F前に

補正変数がリセットされるようなので、途中でブロッキングをして行動可能になってしまうと

補正変数がリセットされなくて補正が持続するみたいです。

ヒューゴーのN投げ→屈小P→ハンマーブロられ→を何度か繰り返すと、

ムーンのダメージが悲しいことに(笑

今回は、コンボ補正についてのお話です(あれっPAは?)。



今まで私は、補正とはこういうモンだという仮説を立てていました。

「補正を管理している変数が1つあって、攻撃を当てるたびに攻撃の種類に応じた値が増えていく」


なので、まことで「J大P→大P→疾風」と「唐草→大P→疾風」をさせて

双方で「大P」の時点でのメモリ内部の値の違いをサーチしたりしていました。


このブログを開設した辺りの時期から取り組んでいたんですが、

たまにサーチしてみては上手く行かず…のくり返しでした。

しかし、今回やっと判りました。この仮説が間違ってました。


実際には、「攻撃の属性の数だけ変数があって、攻撃を当てるたびにその変数が1ずつ増えていき

何らかの計算を経たのちにダメージに反映される」という感じのようでした。

総合的な補正数値があるのではなく、様々な補正数値が別々に管理されていたという訳です。


唐草→大P→疾風を例に取ると、私が今まで思っていたのが

唐草:補正変数nが増える

大P:補正変数nがまた増える

疾風:補正変数nがまた増える


今回判明したのが

唐草:唐草と同じ属性の補正変数aが1増える

大P:大Pと同じ属性の補正変数bが1増える

疾風:疾風と同じ属性の補正変数cが1増える


です。

どの属性がダメージにどのくらい影響を及ぼすかは未調査ですが、これから調べていこうかと。


ちなみに、改造コードを使用して全ての補正変数を0にできたので

コンボ補正無し神龍拳の動画 を置いておきますね(´∀`)パスはmakoto。

予定とは違うネタを取り上げてしまった!!!


まあ前回はスタン値だったので、それ繋がりで今回はレバガチャの話をば…(´_ゝ`)






ピヨった時や投げられた時のレバガチャ。人によってやり方は様々です。


いかに効率の良いレバガチャをするかが、危機脱出の鍵となります。








①ピヨり時


どれだけの時間ピヨるかという減算型タイマー(以下、ピヨりタイマー)は、


おそらく90~270の内の数パターンかがランダムで起こっているようです。たぶんランダム。


で、それは1フレーム毎に1減っているのですが、レバガチャをすることで更に減らすことができます。


ピヨりタイマーをどれだけ減らせるかは以下の通り。




レバー:上下左右1方向につき2


パンチ:1つにつき1


キック:2つ同時で1




キックボタンは単体で押しても無意味、というのが驚きですね。


きっちり同時押しをしながら連打は難しいので、レバーを斜めにガチャガチャしながら


パンチ3つを連打するのがいいのかも知れません。








②投げられ時


レバガチャをすることでとある加算型タイマー(以下、投げられタイマー)が増え、


各投げ毎に決まった数字まで到達すれば次の打撃で投げを終了させることができます。


コマコンレベルのレバガチャが出来ればケンやダッドリーのN投げも1発で終わらせられますが、


例外としてユンとヤンは最低2回蹴ります。




各投げ毎の投げられタイマーは以下の通り。




128:ギル、ユリアン、トゥエルヴ

74:ヒューゴー


64:拳、ユン、ヤン、オロ、ダッドリー




投げられタイマーをどれだけ増やせるかは以下の通り。




レバー:上下左右1方向につき4


パンチ:1つにつき2


キック:1つにつき1




今回はキックボタンが単体でもいいので、レバー斜めガチャと全てのボタンを連打。








③投げ時


相手のレバガチャとの戦い。


相手の投げられタイマーが規定値に達するまで何回攻撃できるかです。


どうやら速さは3段階あるようで、各動作間にとある加算型タイマー(以下、投げタイマー)を


どれだけ増やせるかで次の打撃のスピードが変わるようです。




投げタイマーをどれだけ増やせるかは以下の通り。




レバー:上下左右1方向につき4


パンチ:1つにつき2


キック:1つにつき1




実は投げられタイマーと投げタイマーは同じ変数を使ってるんですが、


投げられ時と投げ時で役割が違うので、分けて考えることにしました。




投げタイマーとスピードの対応は以下の通り。




0~11:遅い


12~23:普通


24~:速い




レバー斜めを2回と、パンチ3つ&キック2つ同時押しを各動作間でやれば最速ということに。




例外としてギル、ユリアン、トゥエルヴは投げタイマーを使っておらず、


パンチボタンのみがスピードに関わっているようです。


適当に連打していれば最速のようなので、あまり気にしなくていいかも。








④電刃波動拳の溜め


電刃波動拳の各レベル毎に減算型タイマー(以下、電刃タイマー)があって、


ピヨりタイマーと同じくレバーやボタンで減算を早める事ができます。




電刃タイマーをどれだけ減らせるかは以下の通り。

レバー:上下左右1方向につき2、2方向同時で3


パンチ:1つにつき1


キック:2つ同時で1




やはりキックボタンは待遇が悪いですね。レバー斜めガチャとパンチ2つ同時連打が良さそう。




各レベル毎の電刃タイマーは以下の通り。




1:8~0


2:24~1


3:48~1


4:80~0










こんな感じですかね。レッツレバガチャ!

前回の日記の「行動可能フレーム」は、「防御可能フレーム」と文字数が同じになるように

名前を考えたつもりだったのですが、これだとそのフレームでいきなりジャンプモーションとかに

移行してそうなイメージを持たれるかも知れないので「コマンド入力可能フレーム」に訂正しようかと。

ボタンを押せるフレームだかんね!動きだすのはその次のフレームね!




-------------




スタン値に関するウンチク。


例えば強・吹上は31ですが、内部的な数値だと31を16進数して1Fとなり、

1F0000(31×65536=2031616)になります。

この値から、各キャラの回復量だけ1フレーム毎に減って行きます。
アレックスだとスタン値回復量はB21(2849)なので、714フレームで完全回復します。




各キャラのスタン値回復量は、下の表の通り。


キャラ名(PA回数)
スタン値回復量
アレックス(0)
B21(2849)
隆(0)
BA2(2978)
隆(1)
CCB(3275)
隆(2)
E12(3602)
隆(3)
F7A(3962)
拳(0)
BA2(2978)
豪鬼(0)
B21(2849)
ショーン(0)
B21(2849)
春麗(0)
BA2(2978)
春麗(1)
CCB(3275)
春麗(2)
E12(3602)
春麗(3)
F7A(3962)
いぶき(0)
AAA(2730)
まこと(0)※1
CCC(3276)
まこと(1)※1
E13(3603)
まこと(2)※1
F7B(3963)
まこと(3)※1
1107(4359)
エレナ(0)
BA2(2978)
ユン(0)
AAA(2730)
ヤン(0)
AAA(2730)
オロ(0)
AAA(2730)
オロ(PA中)※2
4AA6(19110)
レミー(0)
C30(3120)
ダッドリー(0)
BA2(2978)
ネクロ(0)
B21(2849)
ユリアン(0)
C30(3120)
ヒューゴー(0)
C30(3120)
トゥエルヴ(0)
B21(2849)
Q(0)
BA2(2978)
Q(1)
DF5(3573)
ギル(0)
CCC(3276)

※1 PAを3段階目まで出したときのみ。

※2 回復量の値そのものは変わっていなかった。ちなみに7倍になっている。




先月は2回しか更新できなかったでござる…!(・∀・)

次回はPAの攻撃力UPとかの話の予定。某掲示板にも書いたけど。

3日間、自衛隊の生活体験に行って来たでござる!足の豆が潰れた!(・∀・)

-------------------




このゲームでは、有利、不利フレームに関して以下の性質があります。


・相手に有利フレームを取ってコンボを繋ぐ時は「有利フレ-2」の技を出さなければならない

・相手の不利フレームに反撃する時は「不利フレ-1」の技を出さなければならない


この1フレームの差は、一体何なのか。


全ての原因は、

「攻撃モーションの終わり際における行動可能フレームと防御可能フレームが1フレームずれている」

という事にあります。
長崎3rd日記

攻撃モーションは、実は硬直が解ける1F前には行動可能になっているのです。

おそらくは、攻撃から攻撃を途切れなく出させる為の措置だと思われます。



ガード&喰らいモーションは、どちらも同じです。
長崎3rd日記




色々なサイトで見る3rdの有利不利フレームは、行動可能フレームを基準にしています。



よって、コンボを繋げるときは「有利フレ-2」の技を出さなければならず…
長崎3rd日記



反撃するときは「不利フレ-1」の技を出さなければならない訳ですね。
長崎3rd日記




もし「○○フレーム-2」の技を出すという概念で統一するならば、以下のようにする必要があります。
長崎3rd日記

ガードされた場合は4F不利なので、発生が4-2=2の技でなら反撃可能という事ですね。





有利フレ中にSAを最速で出した場合は㌧㌦が起こるので、有利フレが実質+1されます。

(㌧㌦…暗転が相手よりも先に処理され、相手の動きが1F停止する事)

よって、2F有利の時に発生が1FのSAを出すと繋がるのです。



こんな感じですかね!

そういえばDC版では、必殺技から同じ必殺技を出そうとした場合は

最速の行動可能フレームでは通常技しか出せず、次のフレームでその必殺技が出せます。

よって、しゃがみピヨリの相手にヒューゴーで強パーム→強パームが繋がりません。


これを利用すると立ち大Kスライド唐草なんてのもできるんですが、

家庭用限定なので実用性はほぼ無し!(・∀・)