防御力 - 北海道情報大学

ゲームシステム開発
~第16回・システム紹介(後編)~
北海道情報大学 情報メディア学部
情報メディア学科 新井山ゼミ
0521078 綾部 豊
現在の作業状況
• プログラムの流れを考案
– 流れ図の作成・改良
• プログラミング開始
– アプリケーションとしての大枠作成
• フレーム処理・入力処理・初期化
• プログラミング環境を整える
– 各種の実験
• 関数の使い方・サウンドなど
– 初めての構造体
以降のスライドはシステムの紹介
スピード
• スピードの計算式
• なぜ常用対数を使用するのか
• 人間の感度は対数で表現できると言われている
– 手ぶらの時に10円玉(16g)を乗せる → 乗った感覚がある
– 10kgの物を持っているときに乗せる → 違いが分からない
• また、計算式の結果が丁度良いので使用
スピードと重さの関係
• 対数で割っているので「スピード」のグラフは
対数のグラフに似た形となる スピードが何%まで
常用対数のグラフ
落ちるかのグラフ
上下反転
• 標準的な装備の場合は60%前後のスピード
になるように調整
攻撃力
• 攻撃力の計算式 (攻撃力) = P×(切れ味)×(H)
• 「P(power)」の算出方法
– キャラクターの力と武器の重さを比較
– (力) <= (重さ) → P = (武器の重さ)
– (力) > (重さ) → P = (重さ) + (力)
※つまり非力ならば武器の重さに頼るしかないが、振り回
せるほどの腕力があれば力も十分な攻撃力になる。
• 「H(hit)」について
• 一部の武器は「命中」も攻撃力に影響する
– H = (命中) / 100
• 上記が攻撃力の算出方法だが例外もある
ダメージ量
• ダメージ量の計算式
×E
• 文字の意味
–
–
–
–
–
攻撃力
R(random)
A(attribute)
E(etc...)
防御係数
・・・
・・・
・・・
・・・
・・・
前のスライドを参考
乱数(ダメージの誤差)
属性判定(ー1~3)
その他の増減要素
次のスライドで説明
• 魔法攻撃もほぼ同様の計算式
防御力
• 防御力は受けるダメージを除算する役割
– (防御力) = (頑丈さ) + (防具の防御力)
• 防御力が100上がるごとにダメージが半分になるイメージの
グラフを想定
• 計算式
ダメージを係数で
除算したグラフ
イメージ図
イメージになるように
計算式を導出
ダメージとヒットポイント
• ヒットポイントの計算式
–
• 計算式が近いのでダメージとほぼ同様のグラフになる
レベル別ダメージの期待値
レベル別ヒットポイントの期待値
• これらのグラフはゲームバランスを設定する際の
サンプルとして使用する
命中率
• 命中率の計算方法
– 攻撃側命中と防御側回避を比較
• 命中 → A
• 回避 → B
A : B → Aの割合を命中率とする
(命中率) =
A
A+B
– 攻撃側スピード<=防御側スピードならばそれらの
比率も計算に入れる
• 攻撃側スピード → a
• 防御側スピード → b
A:B
+
→ (A+a) : (B+b)
a : b 左辺の割合を命中率とする
• 飛び道具系の武器や、魔法の命中率は計算
方法が異なる
生命力の変動
• 生命力は行動順が回ってくる度に変動する
– 自然回復を標準的な値とした場合
• 50%未満 ・・・ 0%に近づくほど減少(最大4%減)
• 90%未満 ・・・ 90%に近づくほど増加(最大4%増)
• 90%以上 ・・・ 増加するが増加量は大幅に減る
「自然回復」の値が標準的(50)な場合の変化量
今後の予定
• C++での制作に決定
– なぜFlashを使用していたのか
• アプリケーションを制作する際、最も利用していたため
• 当初からアプリケーションを制作するのが目的だった
• 結果としてフラッシュコンテンツを制作していたに過ぎない
– C++を使用する理由
•
•
•
•
より実践的な作業のノウハウを積みたい
セーブデータの作成も楽
総合的にプログラミングがしやすい
問題点としてはエフェクトを作成し辛いことが予想される
• Flashは主に画像やグラフの作成に使用
次回までの成果誓約
• 戦闘に関するシステム以外を完成させる
– まずはキャラクター作成画面から
• できればメニュー画面などを公開