2D Mine Tileset by GameCube 1. retro RPG tileset 01 by hiro 1. About Press Copyright Contact us Creators Advertise Developers Terms Privacy Policy & Safety How YouTube works Test new features あけましておめでとうございます。 新年の挨拶が遅くなってしまい申し訳在りません。 もう年明けから1月が経ちそうですが、実は私 特に何もしてません。 はい。 巷ではGGJ2017とか開催されたりなんだりで皆さん忙しそうでしたね。 Unity Asset Storeのカテゴリの一つ「テクスチャ&マテリアル」カテゴリには、「2Dタイルマップ」というサブカテゴリがあります。このサブカテゴリには四角形のタイルはもちろん、六角形そして斜め視点の四角形のものなど様々な2D タイルのアセットがあります。一例をあげると次のようなアセットです。, さて、これらの2Dのタイルアセットを使って2Dの戦略シミュレーションゲーム、2Dのアクションゲームなど作るとしましょう。これらのアセットは単にSprite(もしくはTexture)です。これらを使ってマップを作るためのUnity Editor拡張が欲しいところです。, この投稿では、そのような状況で将来活躍するであろうTileMapEditor(Unity公式)を紹介します。, TileMapEditorは、タイルマップを作成・描画・管理するためのUnity公式の機能です。これを使うことで、非常に簡単にそして素早くタイルマップを作成できます。, 現在は実験段階で、非常に残念ですが実際の製品でこれを利用して開発することはできません。, もしTileMapEditorを試したいのであれば、Unityの2D機能の実験版である「Unity 2D Experimental Preview」版のUnityをダウンロードし、使ってみてください。(投稿執筆時の2016/12/11での最新は、Release 3です。), それでは実際にTileMapEditorを使ってみましょう。製品版やβ版ではなく、Unity 2D Experimental Preview版のUnity Editorを使っていきます。, まず、TilePaletteを作成します。 MenuItemのWindow > Tilemap Palleteを選択し、Tilemap Pallete Windowを開きます。, 次に、Tilemap Palleteを作成します。Tilemap Pallete Windowの右上、Add New Palleteを選択し、Pallete名を入力しPalleteを作成します。(Tilemap Palleteの実態は後述するGridとLayerのPrefabです。), 次に、TileAssetを作成します。一番簡単な方法は、Tilemap Pallete WindowにSpriteもしくはTextureをドラッグアンドドロップする方法です。これを実行すると、Tilemap Pallete Windowは次のようになります。(TileAssetの実態はScriptableObjectです。), さて、ここまででTilemap PalleteとTileAssetができました。次はシーン上にTileを描画するためにTilemap用のGameObjectを作成します。Hierarchy Windowの Create > 2D Object > Tile Mapを選択します。そうすると、Tile Mapという名前のGridが付与されたGameObject、そしてその子どもになっているLayerという名前でTilmapとTilemap Rendererが付与されたGameObjectが生成されます。, それではいよいよ、Tileを描きます。Tile Pallete Windowで描画したいTileを選択し、Penのアイコンを選択、そしてHierarchy WindowでLayer GameObjectを選択します。, そして、Scene Window上で、Tileを配置したい場所をクリックしたり、押下状態でカーソルを移動すると、Tileを描くことができます。矩形範囲描画や削除もできます。, 次のGIFをみてください。タイルを置くいた後に、表示されるSpriteが変わっているのがわかりますか?一つのTileアセットを置いているだけなのに、まるで部屋の壁と地面のようなTileMapができました。, 実はTileMapEditorは、Tileの挙動をコードで実装して表示するSpriteや色・回転を自分で制御することが可能なのです。, この投稿では「TileMapEditorはいいぞ!」と題して、TileMapEditorの概要を紹介しました。, TileMapEditorは誰でも無料で試すことができます。しかし残念ながら実験的なプレビュー版(Experimental Preview)ですので、まだ製品開発に用いることはできません。, Experimental Previewを行っている目的は、広くユーザーからのフィードバックやバグレポート、意見を集めるためです。実際私もフィードバックを行いましたが、それにきちんと耳を傾けそれを反映してくれました。ぜひ興味がある方はフィードバックをしてみてください。, 今すぐに製品開発でタイルマップのエディタ拡張が必要であれば、Asset Storeで探すか、自作するしかないでしょう。, TileMapEditorの強みはなんといっても公式であることだと思います。公式であるがゆえに、多くのユーザーが使い、情報も多く集まり、知見も共有されるでしょう。この点がAsset Storeのアセットや自作エディタにはない利点だと思います。また、TileMapEditorを拡張したAssetがAssetStoreで販売されることも期待できます。, 「Unity 2D Experimental Preview」 誰でも作れる……、というのが本書の売りですが、Unityの2D機能について、ある程度の理解や慣れは必要です。そのため、対象読者は「Unity中級者以上」とさせていただきます。具体的には以下の条件を満たしている必要があります。 1.

unityroom.com, 一週間ゲームジャムでは毎回参加する際に何か一つ以上新しいことに挑戦することにしているのですが、今回は, 今回はUnityのバージョンは2017.4.21f1を使っています。その他にバージョン管理でGithubを、ドット絵の作成にAsepriteを使用しました。, ドット絵はAsepriteを使って作成しています。AsepriteはSteamで1480円で購入可能です。, このソフト自体はだいぶ前に買ってあったのですが、ちょっと触ってほったらかしにしていたのでこちらの動画を見ながら作成しました。, 作成したドットを使用してUnityで実装します。全て書くとかなりの量になってしまうので、この記事ではタイルマップと敵の簡単なAIについて取り上げます。, タイルマップはVisualizerとOcean、Groundの3つのレイヤーで構成しました。, OceanとGroundは名前の通り、海と陸地のタイルマップです。Visualizerは下の画像の様にユニット選択時に到達可能範囲を青く、攻撃可能範囲を赤く可視化させる際に使用しています。, このVisualizerはあらかじめタイルを設置せず、ランタイム中にスクリプトから配置したり、取り除いたりしています。 はてなブログで記事にする。(これは後付け) に挑戦することにしてみました。 それと自己紹介の記事も書いて … Unityの2D機能の基本的な仕組みを理解している 3. By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. 以前参加した際にはランキングはついてなかったのですが、いつの間にかランキングが出るようになっていました。, 残念ながら僕のゲームはランキングには入れませんでした。 久しぶりにunityroomの一週間ゲームジャムに参加して、せっかくなので前からやろうと思っていたはてなブログも始めてみることにしました。  Unity部で頒布したUnityの技術同人誌UniBook6で、TileMapEditorについて私が書いた章です。, 「TileMapEditorはいいぞ」 What is going on with this article? Help us understand the problem. |  公式フォーラムです。, 「UniBook6 : Hello Programmable Tile!」 Why not register and get more from Qiita? you can read useful information later efficiently. 制作時からTwitterでマグロもののゲームを作っている人が多いのは気づいていたのですが、まさかツナの足軽で被る人がいるとは思ってませんでした。 まずプレイヤーのクリックを検知してユニットの周りに可視化タイルを配置するためのクラスを作成します。, 色々省いているけどこんな感じの実装をしました。タイルマップも普段あまり触らないため、スクリプトからどう操作すればいいのかわかりませんでしたが、Unity Technologies社のGitHubリポジトリにある, GitHub - Unity-Technologies/2d-techdemos: Tech Demos for Unity 2D Features, が大変参考になりました。先ほどのコードにもありますが、tilemap.SetTile(position,tile)でpassibleTile(青のタイル)やattackableTile(赤のタイル)を第2引数に与えればそのタイルが配置され、nullを与えれば消すことが出来ます。後はtilemap.GetTile(position)でクリックした地点にpassibleTileがあれば移動、attackableTileがあってそこに敵がいれば攻撃とすればいいと思います。, 敵のAIはストラテジーパターンで作成しています。ただ時間がなく間に合っていないので今回は敵のAIは1パターンしか用意していません。 今までに作ったことがないジャンルであるSLGを作る。 2. 戦術SLGとは、将棋やチェスのように、自分のコマを動かして相手のコマを倒すゲームのことです。将棋やチェスと違うのは、コマに色々なパラメータがあることでしょう。例えば「ファイヤーエンブレム」や「オウガバトル」のようなゲームといえば, 普通の戦術SLGでは、コマを選択したときに、どこまで移動できるのかを明るくしたりして、視覚的に分かるようにしています。今回は、その移動範囲の求め方を説明します。, コマの初期位置と移動力を設定します。初期位置は(6, 6)、移動力は「3」とします。, データの準備ができたので、移動範囲を求めます。初期処理として、開始位置に移動力をセットします。, 一つは現在位置から、上/下/左/右を探索する関数です。この関数を「Search4」とします。, もう一つは移動先が移動可能な場所であるかを判定する関数です。この関数を「Search」とします。, 「Search4」は各方向(上/下/左/右)ごとに、探索する地点の座標と移動力を「Search」に渡します。「Search」は移動力を1つ減らし、移動力が残っていれば、「Search4」を再帰呼び出しします。, たとえば、「Search4」で上を探索すると、「Search」で「2」を設定します。, 移動力がまだ残っていますので、「Search4」を再帰呼び出しし、上を探索して、「Search」で「1」を設定します。, さらに、移動力がまだ残っていますので、「Search4」を再帰呼び出しし、上を探索して、「Search」で「0」を設定します。, 移動力がなくなったので、(6, 4)地点に戻り、左を探索し、「Search」で「0」を設定します。, 移動力がなくなったので、(6, 4)地点に戻り、下を探索し、「Search」で「0」を設定します。, 移動力がなくなったので、(6, 4)地点に戻り、右を探索し、「Search」で「0」を設定します。, 実は、この処理は無駄なことをしています。例えば、上・上と探索した後に上・下と探索していたりします。移動力が大きいほど、探索範囲は大きくなりますので、環境によっては処理速度が問題となることもあり得ます。, そこで、「Search」関数で、「移動力-1 < 地形の値」であった場合には、その地点の探索を行わないようにします。こうすることで無駄な処理がなくなり、以下のようになると思います。, 移動できないはずなのに、なぜ「山」が「-9」であるのかというと、現在の移動力が「3」であるため、実質的に移動不可となるためです。作ってみるとわかりますが、例外的な処理をもうけて処理を複雑にするよりは、こうしたほうが処理が楽になります。(もちろん移動量が9以上になる場合は「-100」とかにしておく必要があります), 移動範囲の求め方は、基本編とほぼ変わりません。違うのは、「Search」関数で単純に移動力を「-1」としていたものを、地形の値から引くというところです。, 今回の処理は、単に移動範囲を求めるだけでなく、魔法や飛び道具などの射程範囲・効果範囲や、コンピュータの索敵範囲を求めるのに使える基本の処理となるので、覚えておいて損はないと思います。. まずはじめに、ちょっとした決心などを・・ 実は、企画が中途半端だったりして、何度目か分からないほどに企画内容を変えていまして・・・ 技術検証としてUnityの使い勝手や各種サービスを触ってはいたものの、 上手い具合に開発サイクルが回り始めたことが今までありませんでした。 ゲーム開発は勢いだ! Twitterかどこかで見ましたが、やはりゲーム開発には勢いも大事! 一人で作ってやる!と思って会社を飛び出した、あのときの勢いそのままでいっちょ作ったるか! という感じで、1ヶ月という期限 … Unity Asset Storeのカテゴリの一つ「テクスチャ&マテリアル」カテゴリには、「2Dタイルマップ」というサブカテゴリがあります。このサブカテゴリには四角形のタイルはもちろん、六角形そして斜め視点の四角形のものなど様々な2D タイルのアセットがあります。一例をあげると次のようなアセットです。 1. やっぱりランキングに入っているゲームは全体的に完成度の高いものばかりですね。, 初めてのブログ記事ということもあり文章が拙く読みにくかったかもしれませんが、ここまで読んでくださりありがとうございました。 1.はじめに ここでは、戦術SLGの作り方について説明をします。 戦術SLGとは、将棋やチェスのように、自分のコマを動かして相手のコマを倒すゲームのことです。将棋やチェスと違うのは、コマに色々なパラメータがあることでしょう。 Asepriteでドット絵に挑戦する。 3. まずは基底クラスを作成します。これはコンポーネントにする必要もないのでMonoBehaviorは継承させません。, 後はこのBrainBaseを継承して様々なパターンのAIを作成し、EnemyManager的なクラスを作成してBrainBaseの派生クラスのインスタンスを生成、保持します。敵のターンになった時に一気に全ての敵の行動が処理されるとプレイヤーが何が起こったのかわからなくなるので、コルーチンなどで一定時間ごとにBrainBase.Update()を実行すればいいです。僕は0.5秒に一回更新するようにしました。, 今回はWebGLのビルドでつまづくこともなく、2日遅刻して提出しました Isometric Tile Bundle by Golden Skull Studios 1.