「クエリちゃん」カテゴリーアーカイブ

タワーディフェンスゲームを作る(19)

前回まででユニットの移動や攻撃、スキルの実装は終わったのでエフェクトをいくつか実装しました。
今回は、ソーサラーとヒーラーのエフェクトの作りました。

ソーサラーの炎の球は、Unity Tutorial の 4_Fire を改造して使っています。この炎だけ出来がよくて生々しいので、そのうち作り直したいと思います。もっとファンシーな炎にしたいです。
次回はステージ作成をしたいです。

いい感じです。

タワーディフェンスゲームを作る(18)

今回は、味方ユニットのスキルを実装しました。各ユニットに2種類のスキルがあって、3段階のアップグレードができます。

スキルは、こんな感じです。

  • 剣士
    • 通常攻撃に魔法攻撃が付与される。
    • 物理防御、魔法防御が上がる。
  • 戦士
    • 攻撃した対象の周囲の敵にスプラッシュダメージを与える。
    • 自分の体力が回復するようになる。
  • 盗賊
    • 攻撃が N 回の攻撃ごとにクリティカルする。
    • 敵からの攻撃を N 回ごとに回避する。
  • アーチャー
    • 攻撃頻度が上がる。
    • 攻撃した対象の物理防御がしばらく下がる。
  • スナイパー
    • 攻撃が  N 回ごとにクリティカルする。
    • 攻撃した対象の移動速度がしばらく下がる。
  • ソーサラー
    • 魔法攻撃力が上がる。
    • 攻撃が N 回ごとにファイアウォールを発生させる。
  • ヒーラー
    • 回復量が増える。
    • ヒール毎に周囲のアンデットにダメージを与える。

ただ、エフェクトの実装がまだです。
とりあえず、ファイアフォールのエフェクトだけ適用しました。

こういったエフェクトは順に実装していくとして、エフェクト以外の実装が終わったので、ステージ作成とパラメータ調整に入る段階になりました。
次回は、Tiled Map Editor を使ったステージ作成をしたいと思います。

いい感じです。

タワーディフェンスゲームを作る(17)

前回に実装したこと。

  • ユニットが取り除けるようになった。
  • 矢、魔法の弾が途中で急に消えないようにした。

そして、今回はユニットのアップグレードを実装したいと思っている。
具体的には各味方ユニットに3段階の強化ができるスキルを2つ持たせます。

とりあえずスキルのアップグレードを指示できるようにしたのがこれ。
ユニットを表示している枠がボタンになっていて、それを押すと真ん中のくまクエリちゃんの表示になるし、この状態で上にはみ出てるボタンを押すとスキルの段階が2になる。
なんだろな、この説明を書いててわかりにくいので、この操作 UI はいつか変更すると思う。

まぁ、とりあえずこれで進めようとおもう。とりあえずでいいから進めるの大事。

いい感じです。

 

タワーディフェンスゲームを作る(16)

昨日にクリアした “Doki Doki Literature Club!” が私の心をぎゅっと押し付けてきて気分が沈みがちですが、がんばります。

今日は「また今度やるわ」と思って後回しにしていたタスクを片付けていきます。タスク管理のページはこんな感じです。

で、細かなチケットを修正した後のチャートがこれです。

いくつかのチケットを実装し、「これは実装しなくていいや」と思ったチケットをリジェクトしたことで、総チケット数(オレンジ色の戦)も減っています。

細かい内容は省略しますけど、放置していたバグや修正を実装できて気分が晴れやかになりました。放置しているチケットは贅肉と同じなのかもしれないな、と思いました。

いい感じです。

タワーディフェンスゲームを作る(15)

今回は今まで放置してきたチケットを片付けたいと思います。
具体的には

  • タワーにユニットを配置するときに影響範囲を描画する。
  • ユニット選択のマーカーまわりを作り直す。
  • ユニットの移動経路を表示する。

です。

で、移動経路の作り直し以外は実装できました。
タワーの射程の表示は、地形の高低差があると表示が隠れるけれども、とりあえずはこの実装でいこうと思います。

いい感じです。

タワーディフェンスゲームを作る(14)

今回は遠隔攻撃をする敵の調整をします。
具体的には、Skeleton Archer, Skeleton Mage, Dragon の3種類です。

Skeleton Archer, Skeleton Mage は味方の Archer, Sorcerer と同じ仕組みにすればいいので楽だったけど、Dragon についてはブレス位置とかの調整をして、こんな感じになりました。

Dragon のブレスについては範囲攻撃になるようにしたくて「指定した場所にいる対象にダメージを与える」というオブエジェクトを実装しようと思っています。

いい感じです。

タワーディフェンスゲームを作る(13)

今回は敵まわりを実装します。
敵の分類として

  • 近接攻撃、遠隔攻撃
  • 地上、空中(地形効果を無視して移動する)

というのを考えています。
今回は近接攻撃する敵が動作するようにしました。

あと、空中を移動する敵については「そのうち地形効果を無視するようにすればいいや」と思い直しました。とりあえずは地形効果を適用して地上敵と同じルーチンで動作させようと思います。

次回は遠隔攻撃をする敵の調整をしようと思います。

いい感じです。

タワーディフェンスゲームを作る(12)

今回は情報表示パネルの続きです。左下にユニットを表示したボタンを用意して、これを操作してユニットをアップグレードしたり離脱させたりしようと思っています。
そして、実装したものがこちらです。

敵の情報の表示まわりはまだだけど、とりあえず実装できたことにしようと思います。次は、この UI 経由でユニットをアップグレードするあたりを実装します。

いい感じです。

タワーディフェンスゲームを作る(9)

今回は、情報表示に使うための画像を生成します。
画像生成用のシーンを作成して、キャラを配置しては下記コードでキャプチャ、を繰り返します。

    private void CaptureImage(string filePath)
    {
        var texture = new Texture2D(Screen.width, Screen.height, TextureFormat.ARGB32, false);
        texture.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);
        texture.Apply();

        var bytes = texture.EncodeToPNG();
        Destroy(texture);
        System.IO.File.WriteAllBytes(filePath, bytes);
    }

そして、できた画像がこれです。

次回は、これを情報表示パネルで実際に利用するあたりを実装します。

いい感じです。

タワーディフェンスゲームを作る(8)

今回は兵舎やタワーがクリックされたときに画面の左下にその情報を表示するあたりを実装します。

具体的に情報が表示されるところまで実装できればよかったんですけど、操作に応じて情報を表示するためのパネルが作るところまでの実装になりました。

次回は、この左下のパネルに所属ユニットの情報が表示されるあたりを実装します。

いい感じです。