月別アーカイブ: 2018年4月

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

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

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

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

いい感じです。

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

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

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

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

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

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

いい感じです。

HotS のミニマップみようツールの作成(5)

前回インストーラを作ってみて「今の実装だとインストーラで作った実行ファイルは起動できない」という現実を知ってしまったので、今回はとりあえずアプリが落ちないように調整します。
私は知っている、こういう自分の知ってる知識で作れる機能は集中して数日のうちに実装を終えてしまった方がいいことを…

まぁ、そんな数日集中できるほど元気はないので、少しずつやりましょう。集中すると疲れるし。

今回やろうと思っていることは

  • 効果音があるパスなどを格納する設定ファイルを作って Document に配置されるようにする。
  • 効果音がなくてもアプリが起動するようにする。
  • 視線検出デバイスが動作してなくてもアプリが起動するようにする。

です。
そして、今回変更したコミットはこれです。

https://bitbucket.org/satofumi/hots_tools/commits/b7c44a5412623a506adbcd65c0be3f139fdce322

オチとしては、アプリが起動しなかった理由は Tobii の tobii_stream_engine.dll がインストーラに含まれてなかったせい、でした。もっと早く気づきたかった。

ともあれ、アプリとしては適切に動作しませんが、インストールしたアプリが落ちないようにはなりました。

いい感じです。

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

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

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

いい感じです。

HotS のミニマップみようツールの作成(4)

ぶっちゃけ、とりあえず最低限の動作をするようになってから進捗がないのもよくないなと思ったので、今回はインストーラを作ります。とはいえ、Visual Studio Installer のプロジェクトを作るだけです。ライセンスとかのファイルも次回以降に配置しようと思います。

https://bitbucket.org/satofumi/hots_tools/src/d237a3e83f476ff09e505db6b03ccbdda98f0840/hots_minimap_instructor/?at=default

そして、インストーラを作ってインストールできるのが確認できたところまでが、これです。インストールしたアプリを実行してみて気づいたことは

  • 見てね効果音、見たね効果音を指定がないとアプリが落ちる。
  • Tobii アイトラッキングのデバイスが起動してないとアプリが落ちる。

うん。
使ってみると実装がまだ全然終わってないことを実感できて良いですね。
次回はこのインストールしたアプリが落ちなくなる調整をしようと思います。

進捗があるの、大事。
いい感じだと思います。

タワーディフェンスゲームを作る(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)

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

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

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

いい感じです。

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

今回はヒーラーを実装しました。

自分を含む体力の最も低い味方からヒールするようにしたら、えんえんと自分をヒールすることがあったので「他にヒール対象がいないときのみ自分をヒールする」という風に実装しなおしました。

これで基本的なユニットの実装が終わったので、ステージ作成に移行できます。
ただ、ゲームで実現したいことが

「最初は少し押され気味だけど、アップグレードしたら勝てるようになる」

なので、アップグレードの実装も必要かなと思っています。

ともあれ、いい感じです。