Weitere ähnliche Inhalte
Ähnlich wie 2D格闘ゲームにおけるユーザビリティとゲームデザインについて (20)
Kürzlich hochgeladen (10)
2D格闘ゲームにおけるユーザビリティとゲームデザインについて
- 38. “効率性”とキャラクター制御(8)
入力に従って“しゃがみ攻撃”になる
時間経過 Step1 Step2 Step3 Step4 Step5
1次State
立ち待機
(Idle)
立ち待機
(Idle)
しゃがみ
(Crouch)
しゃがみ
(Crouch)
攻撃
(しゃがみ)
2次State None To Crouch To Idle To Attack From Crouch
入力
見た目
しゃがみへ 立ち待機へ しゃがみへ
しゃがみを経由して
から下段攻撃だね!
- 39. “効率性”とキャラクター制御(8)
入力に従って“しゃがみ攻撃”になる
時間経過 Step1 Step2 Step3 Step4 Step5
1次State
立ち待機
(Idle)
立ち待機
(Idle)
しゃがみ
(Crouch)
しゃがみ
(Crouch)
攻撃
(しゃがみ)
2次State None To Crouch To Idle To Attack From Crouch
入力
見た目
しゃがみへ 立ち待機へ しゃがみへ
先程と違って、入力と
動作イメージが一致!
- 47. “主観的満足度”とコマンド入力(4)
検索テーブルの情報設定について
コマンド列/検索キーごとに様々な設定があります
コマンド列 受付時間 コマンド全体の入力受付時間(コマンド1つとは別)
これも時間オーバーするとコマンド全体が失敗
リフレッシュ時間 コマンド列入力成功後に無効になるまでの時間
コマンド列の優先順位 他のコマンド列と同時成立した場合の優先順位付け数値
検索キーテーブル “検索キー”の全配列
・コマンド列ごとの設定
・検索キーごとの設定
判定するコマンド チェックする入力値
コマンドマスク レバー情報をマスクする入力値(不要な入力を許す/許さない)
入力値の参照タイプ 入力値を指定(Directのみ、Triggerのみ、Trigger + Old等)
コマンド受付時間 1コマンドを受付時間、オーバーするとコマンド全体失敗に
- 48. “主観的満足度”とコマンド入力(5)
コマンド列情報のサンプル(配列はコマンド技の数だけ定義)
ID 受付時間
リセット
時間
優先順位 検索キーテーブル
コマンド1
(波動拳)
0.4ms 0.3ms 3
コマンド2
(旋風脚) 0.4ms 0.3ms 4
検索キー コマンドマスク 入力値の参照タイプ コマンド受付時間
↓ 0x20 Trigger 0.13ms
↘ 0x60 Trigger + Old 0.13ms
→ 0xF0 Trigger 0.13ms
Aボタン 0x0F Trigger 0.5ms
検索キー コマンドマスク 入力値の参照タイプ コマンド受付時間
↓ 0x20 Trigger 0.13ms
↙ 0x60 Trigger + Old 0.13ms
← 0xF0 Trigger 0.13ms
Xボタン 0x0F Trigger 0.5ms
- 50. “主観的満足度”とコマンド入力(6)
コマンドシーケンス検索方式のロジック(成立例)
時間経過 Step1 Step2
入力(Trigger) 0x00:- 0x40:↓
入力(Old
Trigger)
0x00:- 0x00:-
チェック対象
Trigger Trigger
コマンド1
参照キー
1:↓ 1:↓
コマンド1
入力受付時間
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
マッチング ✕ ◯
入力経過時間 0.0ms 約0.06ms
入力値とチェック
する参照キーが一致。
次回から2番目の
参照キーをチェック
- 51. “主観的満足度”とコマンド入力(6)
コマンドシーケンス検索方式のロジック(成立例)
時間経過 Step1 Step2 Step3
入力(Trigger) 0x00:- 0x40:↓ 0x20:→
入力(Old
Trigger)
0x00:- 0x00:- 0x40:↓
チェック対象
Trigger Trigger Trigger
+Old
コマンド1
参照キー
1:↓ 1:↓ 2:↘
コマンド1
入力受付時間
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
マッチング ✕ ◯ ◯
入力経過時間 0.0ms 約0.06ms 約0.10ms
2番目の参照キーは↘だが
OldとTriggerを論理和した
数値がチェックする
参照キーとなるので成立
1つ前のTrigger値は
Old Trigger値として保存
どのハードでも
斜め入力は反応
が悪い為、対応
が必要とされる
- 52. “主観的満足度”とコマンド入力(6)
コマンドシーケンス検索方式のロジック(成立例)
時間経過 Step1 Step2 Step3 Step4
入力(Trigger) 0x00:- 0x40:↓ 0x20:→ 0x60:↘
入力(Old
Trigger)
0x00:- 0x00:- 0x40:↓ 0x20:→
チェック対象
Trigger Trigger Trigger
+Old
Trigger
コマンド1
参照キー
1:↓ 1:↓ 2:↘ 3:→
コマンド1
入力受付時間
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
マッチング ✕ ◯ ◯ ✕
入力経過時間 0.0ms 約0.06ms 約0.10ms 約0.13ms
Trigger値が、意図しない値
になることもある。
またこの場合、Trigger値と
参照キーの比較のために
不成立となっている。
- 53. “主観的満足度”とコマンド入力(6)
コマンドシーケンス検索方式のロジック(成立例)
時間経過 Step1 Step2 Step3 Step4 Step5
入力(Trigger) 0x00:- 0x40:↓ 0x20:→ 0x60:↘ 0x20:→
入力(Old
Trigger)
0x00:- 0x00:- 0x40:↓ 0x20:→ 0x60:↘
チェック対象
Trigger Trigger Trigger
+Old
Trigger Trigger
コマンド1
参照キー
1:↓ 1:↓ 2:↘ 3:→ 3:→
コマンド1
入力受付時間
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
マッチング ✕ ◯ ◯ ✕ ◯
入力経過時間 0.0ms 約0.06ms 約0.10ms 約0.13ms 約0.15ms
Trigger値が変わって、
参照キーと同じ値になり
次の参照キーに移動。
- 54. “主観的満足度”とコマンド入力(6)
コマンドシーケンス検索方式のロジック(成立例)
時間経過 Step1 Step2 Step3 Step4 Step5 Step6
入力(Trigger) 0x00:- 0x40:↓ 0x20:→ 0x60:↘ 0x20:→ 0x28:→A
入力(Old
Trigger)
0x00:- 0x00:- 0x40:↓ 0x20:→ 0x60:↘ 0x20:→
チェック対象
Trigger Trigger Trigger
+Old
Trigger Trigger Trigger
コマンド1
参照キー
1:↓ 1:↓ 2:↘ 3:→ 3:→ 4:Aボタン
コマンド1
入力受付時間
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.5ms
(8/60フレーム)
マッチング ✕ ◯ ◯ ✕ ◯ ◯
入力経過時間 0.0ms 約0.06ms 約0.10ms 約0.13ms 約0.15ms 約0.19ms
Trigger値が変わって、
参照キーと同じ値になり
次の参照キーに移動。
- 55. “主観的満足度”とコマンド入力(6)
コマンドシーケンス検索方式のロジック(成立例)
時間経過 Step1 Step2 Step3 Step4 Step5 Step6
入力(Trigger) 0x00:- 0x40:↓ 0x20:→ 0x60:↘ 0x20:→ 0x28:→A
入力(Old
Trigger)
0x00:- 0x00:- 0x40:↓ 0x20:→ 0x60:↘ 0x20:→
チェック対象
Trigger Trigger Trigger
+Old
Trigger Trigger Trigger
コマンド1
参照キー
1:↓ 1:↓ 2:↘ 3:→ 3:→ 4:Aボタン
コマンド1
入力受付時間
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.5ms
(8/60フレーム)
マッチング ✕ ◯ ◯ ✕ ◯ ◯
入力経過時間 0.0ms 約0.06ms 約0.10ms 約0.13ms 約0.15ms 約0.19ms
- 56. “主観的満足度”とコマンド入力(7)
コマンドシーケンス検索方式のロジック(失敗例)
時間経過 Step1 Step2 Step3 Step4 Step5 Step6
入力(Trigger) 0x00:- 0x40:↓ 0x20:→ 0x20:→ 0x40:↓ 0x60:↘
入力(Old
Trigger)
0x00:- 0x00:- 0x40:↓ 0x20:→ 0x20:→ 0x20:→
チェック対象
Trigger Trigger Trigger
+Old
Trigger Trigger Trigger
コマンド1
参照キー
1:↓ 1:↓ 2:↘ 3:→ 3:→ 1:↓
コマンド1
入力受付時間
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
マッチング ✕ ◯ ◯ ✕ ✕ ✕
入力経過時間 0.0ms 約0.16ms 約0.3ms 約0.32ms 約0.48ms 0.0ms
- 57. “主観的満足度”とコマンド入力(7)
コマンドシーケンス検索方式のロジック(失敗例)
時間経過 Step1 Step2 Step3 Step4 Step5 Step6
入力(Trigger) 0x00:- 0x40:↓ 0x20:→ 0x20:→ 0x40:↓ 0x60:↘
入力(Old
Trigger)
0x00:- 0x00:- 0x40:↓ 0x20:→ 0x20:→ 0x20:→
チェック対象
Trigger Trigger Trigger
+Old
Trigger Trigger Trigger
コマンド1
参照キー
1:↓ 1:↓ 2:↘ 3:→ 3:→ 1:↓
コマンド1
入力受付時間
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
マッチング ✕ ◯ ◯ ✕ ✕ ✕
入力経過時間 0.0ms 約0.16ms 約0.3ms 約0.32ms 約0.48ms 0.0ms
Step4までに
入力時間がかかっている。
思ったように入力が
上手くいっていない。
- 58. “主観的満足度”とコマンド入力(7)
コマンドシーケンス検索方式のロジック(失敗例)
時間経過 Step1 Step2 Step3 Step4 Step5 Step6
入力(Trigger) 0x00:- 0x40:↓ 0x20:→ 0x20:→ 0x40:↓ 0x60:↘
入力(Old
Trigger)
0x00:- 0x00:- 0x40:↓ 0x20:→ 0x20:→ 0x20:→
チェック対象
Trigger Trigger Trigger
+Old
Trigger Trigger Trigger
コマンド1
参照キー
1:↓ 1:↓ 2:↘ 3:→ 3:→ 1:↓
コマンド1
入力受付時間
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
0.3ms
(8/60フレーム)
マッチング ✕ ◯ ◯ ✕ ✕ ✕
入力経過時間 0.0ms 約0.16ms 約0.3ms 約0.32ms 約0.48ms 0.0ms
コマンド列 受付時間を
オーバーしてしまった為、
キー検索がリセットして
しまう。
Hinweis der Redaktion
- まず最初に、ユーザビリティについてお話します
- 学習のしやすさ、効率性、記憶のしやすさ、間違えにくさ、主観的満足度
の5項目を提言しました。
- 5つの特性ついての詳細については、資料が公開された時に見てもらうとして、
これらの内容は、コンソールゲーム開発においても、とても重要とされる項目にとれも当てはまります。
- とは言ったものの、関連性や内容がどのようにデザインされたりしているかを2D格闘ゲームの事例で紹介したいと思います
- と、その前に2D格闘ゲームについて簡単に説明しておきたいと思います。
- 最初に、“学習のしやすさ”と入力装置について、お話いたします最初に
- 皆さんがご存知の通り、ビデオゲームでは、コントローラーやパッドにある、レバー・ボタンが入力装置です。
レバーは装置としての役割は、傾けた方向を指定する、方向入力装置方向を入力
- ああああ
- あああああ
- あああああ
- あああああ
- あああああ
- あああああ
- ああああああ
- あああああ
- あああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- ああああああ
- あああああ
- あああああ