投稿記事

2019年 02月の記事 (4)

ShikkinGames 2019/02/24 01:36

NPCの移動


NPCのトイレへの移動、Shikkinシリーズでは欠かせない要素です。そのためには、目的地へ向けてNPCが移動する仕組みが必要です。

Shikkin128は目的地が少なかったのと私の知識不足のため、各目的地への等高線のようなものをExcelであらかじめ計算しておくというかなり強引な方法で実装していました。

その後、ShikkinSCHOOLでは目的地も増えたので事前計算はあきらめて、A*という探索アルゴリズムを実装していました。

さて、ゲームエンジンであるUnityには、Navmeshという経路探索と移動の仕組みが内蔵されています。ShikkinGIRLでトイレへ向かったりShikkinCLUBで目的地に向かう際にも使っています。なので、これを使えば2Dでも簡単・・・と言いたいのですが、なんと、2Dには対応していません。マジかよ。

ということで、2Dに対応した経路探索のライブラリを探したところ、A* Pathfinding Project のライブラリが2Dにも対応していました。

https://arongranberg.com/astar/documentation/4_0_8_e597295/pathfinding-2d.php

さっそく組み込んで動かしてみたところ。わらわら動いていい感じです。

ちなみに、A* Pathfinding Project はアセットストアで有料版が販売されていますが、Shikkinシリーズの用途的には無料版で十分そうです。

ShikkinGames 2019/02/16 20:04

2Dキャラチップ

タイルマップの次は、キャラクタを表示する必要があります。

2Dのキャラクタは キャラチップ や 歩行グラ と呼ばれたりして、多くの素材が作者様の好意で無料で配布されています。たとえば、どこかで見たことのあるこの子は、MACK/Looseleaf様の素材を改変して作成しています。


そこで、Unityでもこの形式の歩行グラを扱いたいところです。ただ、残念ながらUnityには歩行グラを扱う専用の仕組みがありません。

一応、スプライトを分割してアニメーションさせる方法は、次のページで解説されています。
https://unity3d.com/jp/learn/tutorials/projects/2d-shooting-game/creating-sprites-and-sprite-animations

が、この方法はShikkinGamesのゲームには不向きでした。

まず、一枚のキャラチップ画像から複数のスプライトを取り出すのは、SpriteEditorを使用すればできるのですが、Shikkin128やShikkinSCHOOLではキャラクタは100人を超えるので、作業量が現実的ではありません。

そして、アニメーションの制御には、作成したスプライトを組み合わせてanimationを作成するらしいのですが・・・これを100キャラ分作るのはさらに大変そうです。

ということで、ShikkinSCHOOLと同様、歩行グラの制御部分は自前で書いています。

ShikkinGames 2019/02/10 06:59

2D アニメーション

おや?どこかで見たことのある子ですね。


ShikkinCLUB の女の子は3Dで描写しています。

でも、ShikkinCLUB では ShikkinGIRL のように 3D空間を動き回るわけではないので、ShikkinSCHOOL のように2D表示のほうがきれいになるんじゃないか、特に Live2D や E-Mote など、2D絵をアニメーションさせるツールの効果は素晴らしいし。

と思って、絵は描けないけれど、ShikkinSCHOOLと同じツール(CelsView)で2Dに描画したものをベースに試したりしていました。結果、Live2DやE-Moteでヌルヌル動く2D絵を一枚を作るには、それはもう大変な手間がかかることがわかりました。

で、それはあきらめて、とりあえず Unity2018.2 から入った 2D Animation という機能で簡単に動かしてみよう、


と適当にボーンを設定して試してみたのが冒頭のアニメーションGIFです。

3Dよりは少しヌルヌル動いてる気もしますが、致命的な問題が発覚しまして、前にかがむとか膝を曲げる、腰をねじるといった表現が(私の実力では)難しいことがわかりました。

ということで、女の子を2Dで描画するのは断念・・・。

ShikkinGames 2019/02/03 00:35

タイルマップ

おや?どこかで見たことある教室ですね。

ShikkinGamesでは、ShikkinGIRL以降Unityというゲームエンジンを使用してゲームを製作しています。
3Dゲーム製作におけるUnityは革命的で、難しい3D空間の計算をしなくても、キャラクタとカメラを配置するだけで、簡単に3Dゲームができます。Unityがなければ、ShikkinGIRLは間違いなく完成しなかったと思います。


一方で、ShikkinGIRLではすべてが3D空間になったせいで、操作が面倒だったり3D酔いで遊べないといったご意見もいただいたりしました。そこで、ShikkinCLUBでは操作を単純化するために操作は2Dで、女の子は3DというShikkinSCHOOLに近い操作画面に戻しています。

ただ、右画面の操作は2Dのなのですが、画面は3Dです。そして、3D画面を2枚描いてるので負荷が高めだったり。。。
もちろんShikkinCLUB製作開始時も、2Dで右画面を作ることも考えていたのですが、当時は良いツールがあまりありませんでした。

その後、Unity 2017.2 で タイルマップ機能が登場していたのですが、あまり試せていませんでした。

ということで、最初の画像は操作画面用のタイルマップをテスト中の画像です。
はい、ShikkinSCHOOLのマップチップをそのまま取り込んで再現してみました。

月別アーカイブ

限定特典から探す

記事を検索