スキルコンボ
「やあ、ひまわりさん」
「うん? ああ、セイさん。どうも、こんにちは。今の見ました? すごかったでしょう?」
「お、おう? そうなのかな……?」
「あれ、全然驚いてない?」
「いやあ、正直何がすごいのかよく分かっていなくて……。さっきマルベーシがやってた『スキルコンボ』とか言うのがすごい事なんですかね?」
「ああ、確かに技系スキルを持っていないと、何がすごいのか分かりませんよね……」
「まあな……。所で、ひまわりさんも大して驚いてなかった……というよりも誇らしげな顔をしていたような……?」
「ああ、実はマルベーシの使っていた剣は私が作った彼女専用の刀なんですよ。『鎖刀』の名を冠するスキルコンボを発生させることに特化させた武器です。」
「砂糖? 甘そうな名前ですね?」
「いや、鎖に刀で鎖刀です」
「はあ。ふむ。ああ!スキルが鎖みたいに繋がるって事?」
「ですです」
「なるほど~!で、スキルコンボって何なの?」
「ああ、それは……。どう説明してほしいです? 素人でも分かりやすくorプログラマー向けの説明」
「あ、俺、プログラマーの端くれなんで、難しい説明されても大丈夫」
「了解。まず、『技系スキル』というものがあります。先ほどマルベーシさんが使っていた『裁きの剣』もその中の一つです。それを発動させた直後の攻撃は避けられない限り大ダメージを出すことが出来ます。具体的には2.5倍程度でしょうかね。詳しい値は覚えてませんが」
「ふむふむ。MPを消費する代わりに大ダメージを出せるという事であってる?」
「はい。その通りです。ところで、『一回の攻撃』ってどのように定義されていると思います?」
「そりゃ、武器が敵の体に当たったタイミングが攻撃の開始。離れたタイミングが攻撃の終了……だよな?」
「本当にそうでしょうか? 物理エンジンを使われたことがありますか?」
「ああ、あるが……あ!そういうことか。物理エンジンの性質上、物がぶつかったら即座にめり込みの修正を行いますものね。ましてやソフトボディーだからもっとややこしいのか?」
つまりだ。剣がモンスターの体に当たった瞬間、モンスターと剣との距離は0あるいは負になる。これは物理エンジンの性質上、計算不可能になってしまうから物理エンジンは剣とモンスターの両方に離れさせようとする力を加える。「作用反作用の法則」という物を聞いたことがなかろうか。剣がモンスターを押したら、同時にモンスターから剣に力も加わっているわけだ。
そうすると、剣をモンスターに振るうと、「接触」→「物理エンジンが引きはがす」→「非接触状態になり、剣が動けるように」→「接触」→……と高速で切り替わる訳だ。
もちろん、その辺りをうまく扱っている物理エンジンもあるにはあるだろうが、なかなか難しい問題だと思われる。なにせ、剣は結構なスピードで振るわれるんだ。どれだけ精度を上げても、先ほど言ったような現象が起きるだろう。
「そうです、そうです!で、結局このゲームにおいては一回の攻撃をこんな風に定義していると考えられています。公式の発表ではないですが、有志が調べた結果だそうです」
そう言って彼女はステータス画面を開き、保存してあるメモを俺に見せる。どれどれ……。
(1)武器と敵が接触したか?Yesなら(2)へ・Noなら攻撃は始まっていない
(2)タイマーをリセット&スタート・(3)へ
(3)武器と敵がまだ接触しているか?Yesなら(2)へ・Noなら(4)へ
(4)タイマーの目盛りは500ミリ秒を超えているか?Yesなら(5)へ・Noなら(3)へ
(5)敵のHPを減らす・(6)へ
(6)攻撃の終了
「なるほど。なるほど。要するに、『最後に敵と接触してから0.5s以上の間があったらその攻撃は終了した』ってことで良き?」
「Yes!! そういう事です。ちょっと分かりにくいコードでしたが、すんなり理解して頂けてよかったです」
「あ~プログラミング言語が発展するにつれて、こういう書き方は嫌われる傾向にあるのかもですよね……。俺はクラッシックな言語もモダンな言語も扱えるんで」
「それは心強い。で、このコードを書いたプログラマーは、このコードにスキルコンボシステムを組み込みました」
(1)武器と敵が接触したか?Yesなら(2)へ・Noなら攻撃は始まっていない
(2)タイマーをリセット&スタート・(3)へ
(3)武器と敵がまだ接触しているか?Yesなら(2)へ・Noなら(4)へ
(4)タイマーの目盛りは500ミリ秒を超えているか?Yesなら(5)へ・Noなら(3)へ
(5)敵のHPを減らす・(6)へ
(6)タイマーをリセット&スタート・(7)へ
(7)タイマーの目盛りは○ミリ秒を超えているか?Yesなら(9)へ・Noなら(8)へ
(8)武器と敵が再び接触したか?Yesなら(2)へ・Noなら(6)へ
(9)攻撃の終了
「えっと……。オーケー理解。結局『一回目の攻撃が終了して以降、数秒の猶予が与えられ再攻撃が可能になる』という認識で良き? それで、この再攻撃をスキルコンボって言うのかな?」
「おお~! すごく綺麗に纏められちゃいました。如何にもその通りです」
「ところで、この○ミリ秒というのは一体どれくらいなの?」
「一段階スキルコンボの場合、500ミリ秒ですね。二回目は250で、三回目は100。で……すみません、それ以降は忘れました。五段階スキルコンボの場合は16ミリ秒しか猶予が無いです。動く敵に五段階までスキルコンボを決めるのは至難の業です」
「ふええーーー!やっと、マルベーシのやってた事の凄さが分かったよ……」
「そうですか、よかったです。で。で。で! マルベーシさんが持ちやすいグリップを設計&彼女の剣の軌道に合った刀反り具合を計算して作られたのがあの刀なんです!! はじめは剣を作っていたのだけど、彼女の動きに合わせようとすると、反りが入った剣をデザインする必要があって。それで刀になっちゃいました」
「へえーー! そんなドラマがあったとは。いやはや。驚き。ところで、マルベーシとひまわりさんはリアルでの知り合いなの?」
そうだとすると、俺とひまわりさんもリアルで出会っているかもしれない……という事になる。だから、気になったので聞いてみたのだが……
「いいえ。私が彼女と知り合ったのは偶然です。私のチャクラムを見て、『それは自分で作られたのですか? もしよければ自分にあった剣を作ってもらえないでしょうか? ゴールドはいくらでも支払います!』って言って来た経緯です」
「あ、そうなんですね」
自分の利益になりそうな人を味方に付けるやり方が七瀬らしいなあと思うと共に、ひまわりさんとリアルで会う機会が無くなったことにちょっぴり落胆する俺であった。
いつも読んでいただきありがとうございます。
知り合いに自分の作品を読まれると、普段は隠している自分の胸の内を知られるようで恥ずかしいなあと思うと共に、これからも頑張ろうというやる気がでるなあと痛感している今日この頃です。
今後とも本作をよろしくお願いします。




