自主制作

OVERVIEW

「ゼノブレイド」の戦闘に影響を受け、その戦闘システムを組み込んだ3Dアクションゲームを制作中。制作期間:2023年2月~制作中。

【プロジェクトのGitHub 】

【ゲーム内容】

ゼノブレイドの主人公 シュルクの様に、神剣モナドの能力「疾」「斬」「盾」「破」とアーツを使い、敵と戦う3Dアクションゲーム。

【プレイ動画】

【ゲーム画面】

①プレイヤー:操作するキャラ。

②体力ゲージ:プレイヤーの体力。

③アーツA,B,X,Yで使用する技。円形の橙ゲージがクールタイムを表している。

④モナドゲージゲージが最大の時にZRを押すと、アーツがモナドアーツに切り替わる。モナドゲージは攻撃を当てることで溜まる。 

⑤敵:敵。

⑥ロックオンロックオンした敵が画面の中心に来るようにカメラが動く。

⑦敵の体力:ダメージを与えて体力を0にしたら倒せる。


【操作表

ゼノブレイド2以降のシリーズでA,B,X,Yでアーツを使うのですが、使いやすいと感じたので今回はそれに倣って設定した。スティックの操作とRはソウルライクを意識して機能を設定した。

Input System を使用して操作をしている。冒頭に載せたGitHubのリンク先を Assets > Script > Player と開いていき、Player.cs というスクリプトで主にプレイヤーを操作しています。

【アーツコンボ】

原作のゼノブレイドでは、様々な効果のアーツがある。それらをブレイク効果のアーツ>ダウン効果のアーツ>スタン効果のアーツの順番でヒットさせるとがコンボが繋ります。ゼノブレイドの戦闘の醍醐味の1つでもあるので、それを再現してみた。この制作ではブレイク状態の敵は使用する技の種類が減り、ダウンとスタン状態の敵には与えるダメージが増加するシステムにしてみた。アイコンの見た目は丸パクリだが、一応は自分でイラストを描いたものを使っている。

【モナドアーツ】

  • ZRボタンを押している間はアーツの表示がモナドアーツへと切り替わる。
  • モナドゲージが溜まった状態でZRボタン + A,B,X,Y でモナドアーツを使用可能。
  • 使用したアーツに応じてゲージが消費されるので、敵を攻撃してゲージを溜める。
  • 「斬」は高い攻撃力で正面の敵を攻撃する。
  • 「疾」は数秒間、敵の動きが遅くなる。この間の攻撃でモナドゲージは溜まらない。
  • 「破」は正面に斬撃を飛ばし、ヒットした敵のスパイク状態の解除をする。
  • 「盾」は数秒間、無敵になる。この間の攻撃でモナドゲージは溜まらない。


【ロックオンシステム】

敵をロックオンする方法をネットで公開している人もいたが、ロックオンする対象を切り替える方法を記載している人は見つけられなかった。なので、自分で考えて制作してみた。ロックオンを可能にしているスクリプトはGitHubのリンク先を Assets > Script > Player と開いていき、LockOnCamera.csというスクリプトです。

上図の明るい部分がプレイヤーの索敵範囲で、スフィアコライダーで設定しています。しかし、それだけだと壁の裏の敵が見えてなくても発見できてしまう。なのでコライダーの範囲内の敵に向かってレイキャストを飛ばし、図の赤線の様にヒットした場合にロックオンできるようにしました。青線のように壁にヒットしたら、敵を視認できないと判断してロックオンできません。しかし、プレイヤーが位置を変えることで壁裏の敵を見つけた時は、ロックオンできる対象に切り替わります。カメラが敵を中心に捉えるのにはCinemachineVirtualCameraのインスペクターにあるLookAtに敵を入れてやっています。

ロックオン対象を切り替える方法は、LookAtに現在視認できている別の敵を入れることで切り替えます。全ての敵は視認できている間は作っておいたリストに要素としていれられていて、それをスティックの入力に応じてLookAtに入れています。


【敵】

左のゾンビみたいな雑魚敵のスクリプトはAssets > Script > Enemys > Enemy のEnemy.cs です。右の黒い敵のスクリプトはAssets > Script > Enemys のAlien.csスクリプトです。雑魚敵の方は、プレイヤー追いかけて、一定の距離まで近づいたら殴ってくるというシンプルな動きをさせています。右の黒い敵の方は、このゲームのボスにしたかったので攻撃手段を増やし、プレイヤーとの距離に応じて行う攻撃を変更するようにしてみました。しかし、ゼルダの伝説、ソウルライク、モンハンなどなどのゲームに登場する敵がどのようなプログラムで移動をして攻撃しているのかが、全く想像がつきませんでした。制作した黒い敵の行動を決めるタイミングは、あらかじめ設定していた秒数でカウントダウンをして0秒以下になった時です。なのでプレイをしていると、なんだかぎこちない動きをしてしまいます。


【UI】

初期の方は、ゼノブレイド3を参考にして配置しています。原作だとAボタンのアーツはタレントアーツと言う通常のアーツとは別のものになっているのに対して、私が自作したこのゲームではA,B,X,Yのすべてを通常のアーツにしています。どのアーツも重要度は同じくらいなのにAボタンだけアーツ名を書く位置が違うのに違和感を感じたので、決定案の様に整列させました。整列させた事で、ボタンを直感的に押し辛くなってしまった気はしますが、初期案よりは良くなったと思っています。


【チュートリアル】

遊び方を記載した説明書を作るだけでも良いかと思いましたが、せっかくなのでチュートリアルをゲーム内に実装することにしました。しかし想像以上に難しくて、現在も制作中です!! 本家ゼノブレイドのTIPSを参考にして、チュートリアルをに使用する画像を作ってはいるのですが、それを表示する方法に苦戦しています。


※制作に使用した3Dモデルについて

  • プレイヤー、2体の敵、使用したアニメーションはmixamoというサイトのものを使用させていただきました。
  • モナドは以下のリンク先のものを使用させていただきました。(敵の武器も同サイトのものです)