チーム作品: CastleofLabyrinth
タイトル: CastleofLabyrinth
操作方法: WASDキーで移動 矢印キーでカメラ操作 Shiftキーでダッシュ
制作時期,日数: 2年次後期 10月~12月 約3カ月
制作人数: 4人
制作担当: キャラクターの操作、EffekseerForUnityの導入
フォーマット: Unity
ゲーム概要:
プレイヤーは探検家です。キャッスル内に誤って侵入してしまい、命の火を背負ってしまいます。命の火は薪を拾うことで回復します。すべての薪を拾い、迷宮から脱出しましょう!
解説の前に:
初めてのUnityを使った学内コンテスト向けの作品として開発を行いました。1人がドロップアウトしてしまうなどハプニングが多々ありましたが、なんとか3人でゲームにすることが出来ました。
ソースコードの解説:
CharacterCamera_Contllol.cs
矢印キーによるカメラを操作した際に軸やカメラのスピードを保持しておき、
Unity固有のメソッドである”RotateAround()”をつかってカメラの親オブジェクトを回転させました。
しかしこのカメラには欠点がありました。キャラが壁などに接地した場合親オブジェクトを回転させると壁にめり込み外が見えてしまいました。そこでレイとUnityのRaycast()を使ったあたり判定を作り、壁めり込み補正カメラを作成しました。
当たった場合対象の位置を補正します。この場合子であるカメラそのものの座標をoffsetし、めり込みを補正しました。
GameContllor.cs
EffekseerForUnityで作ったエフェクトはこの白く丸いエフェクトのみです。のこりはUnityのパーティクルシステムを利用しました。
実装方法は
EmitterをGameEmptyObjectにAttachします。このEmitterはEffekseerにあるPublicな関数です。ここにEffectNameやPlayOnStart(trueにした場合常に表示されます)等を各種設定を行います。
EmptyObjectにAttachすればエフェクトの表示非表示を座標指定で制御できるようになります。
GameEventManager.cs
単純なswitch文を用いたシーン遷移です。
Player_Control_FBX.cs
FBX用につくったプレイヤーをコントロールするスクリプトです。
カメラの向いている方向へ移動させるため、UnityのQuaternionクラスを使った移動を実装しました。さらにキーボード移動なのでナナメ移動を追加し、回転の補間や壁めり込み判定などを作成しました。
0コメント