ゲーム開発、イラスト、KAORAStudioBLOG

It is a blog about KAORAGameStudio 自作ゲームの情報や作成進捗状況です

六角形の四目並べ【HexagonalConnectFour】予約受付中

突然の告知 四目並べ対戦ゲーム

これまで、競馬風ゲーム「RoidChanDerby」の制作をしてきましたが、子供と妻との生活が始まり、ほとんど時間をとれていません。

完成までの道のりが遠く感じ、制作のモチベーションが下がってきたため、

息抜きにと簡単な対戦型ゲームのAIでも考えよう!って感じで始めました。

 

シンプルに碁盤の目で行う四目並べでは面白くなかったので、二つの変化を加えました。

①六角形の盤の上で行う四目並べ

②4つ並べると勝ちだが、3つ並べると敗北となる

 

①で、従来の縦横斜めではなく、横と斜めの3方向どこかに4つ並べることで勝利となります。

②ただし、3つ並べてしまうと負けることになります。

単純に攻めては4つ並べられませんので工夫が必要です。

また、相手に3つ並べてしまうよう誘導することで、相手を敗北に追い込むこともできます。

 

f:id:KAORA_22:20190925231920j:plainf:id:KAORA_22:20190925231925j:plain

この二つを条件にAIを作っていると、どんどん楽しくなり、

オンライン対戦も実装してリリースしよう(^^)/となりました。

10月上旬にはリリース予定です。

予約していただけるとモチベーションが上がりますのでよおしくお願いいたします。

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓予約サイト↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

■Andriod

yoyaku-top10.jp

iOS

yoyaku-top10.jp

 

オンライン対戦モード

オンライン対戦を実装し、世界中のどの国の人とも対戦できるようになっています。

ランキングもあります

AI強め

AIはそこそこ強く仕上がっています。

というか、コンピュータの計算力と集中力(設計でミスってない限り、コンピュータはミスしない)が高いので、私はなかなか勝てません(笑)

グローバルリリース

全世界で同時リリースを考え、英語ベースで作成しています

画面イメージ

f:id:KAORA_22:20190925231935j:plain

f:id:KAORA_22:20190925231941j:plainf:id:KAORA_22:20190925231948j:plain

 

【unity】「Google play 64bit要件に準拠していません」の対処法

Google Play Consoleで「64bit要件に準拠していません」エラーがでる

googleplayにapkをアップしようとしたところ、下記のようなメッセージが表示された。

f:id:KAORA_22:20190830005446p:plain

f:id:KAORA_22:20190830005449p:plain

 

ん?

unityで64bitビルドしているのにな。。

 

解決策は簡単でした。

「x86」のチェックを外すことで解決

f:id:KAORA_22:20190830005453p:plain

Unityのplayersetting 内のx86のチェックを外して、再ビルドし作成したapkを登録すると解決。たったこれだけです。

 

f:id:KAORA_22:20190908181429p:plain




消えました。

 

32bit端末にはインストールできなくなるけど、大丈夫?

32bit端末にインストールできなくなれば、ダウンロード数が減ることにつながるのでは?と思い、32→64bitオンリーのapkをアップした際のサポート端末の変化を見てみました。

f:id:KAORA_22:20190908181434p:plain

 

サポート対象外になった端末はスマホなら1でした。

ウェアラブルは5

まさか、対象外の1つのAndroidスマホがめちゃくちゃ売れているとも考えにくいので、全く気にする必要がなさそうです。

 

Unity IAP(アプリ内課金)実装でつまずいたところ

Unityへのアプリ内課金を実装で躓いた

作成中のゲームアプリ「RoidChanDerby」にアプリ内課金を実装しようとしたところ、躓いたため備忘録として。

しかし、回避策が強引なため、あとあと問題があるかも。

 

UnityChannelがImportされない

UnityエディタのServices内から、IAPをEnableにし、DLL関係をimport。

ところがここでビルドしようとするとエラーが。。。

「Editor.dllが複数ある」

というエラーが。表示された。

 

importしただけで、この問題。

ネットで検索したところ、一度削除してと書かれてあったので

とりあえず、一度削除して、再度importするも現象変わらず。

 

エラー箇所を調べていくと、

f:id:KAORA_22:20190819194748p:plain

このUnityChannelというものが見つからないとのこと。

 

ただ、ネットを調べるとやはり「Import」でUnityChannelもimportされるらしく、かなり困りました。

 

別アプリで確認

毎回そうなのですが、製作途中で問題に遭遇した時は、

最小単位のプロジェクトを別途用意して確認します。

すると。。。

f:id:KAORA_22:20190819195207p:plain

別アプリでは、しっかりとUnityChannelがImportされています。

 

同じ操作だけど、入っているものが違うから(RoidChanDerbyの方はすでに色々作りこまれている)なのか、こういうタイプの問題は厄介です。

回避策

その後も、怪しそうなアセットを消したり、再Importを繰り返すも、問題解決せず。。

結局回避策としては、別プロジェクトで作成した「UnityChannel」フォルダをごっそりそのままこのプロジェクトにコピーすることで解決しました。

この操作が正しい気はしないので、後々問題にならなければいいのですが。。

また、調査中に発見したのですが、XiaomiSDKがimportされている場合も問題になりそうです。

 

f:id:KAORA_22:20190819200009p:plain

PlayFabとの連携

課金実装でかなり時間を費やしたため、PlayFabとの連携(カタログ情報の取得)などは、次回まとまった時間が取れる時にやります。備忘録も書きます。

 

Googlplayのアプリ審査が長くなってから、課金システムの実機確認に時間がかかるのでつらい。。。

課金要素はやめようかな?

 

 

 

 

 

 

 

Resourcesフォルダから画像ファイル取得?Inspectorに指定?スプライトを動的に切り替える

この記事の対象者

unity初心者向けです。私がunity始めたころに躓いたところを重点に。

つよつよプログラマーじゃないので専門用語は使いません。というかわかりません。

 

 

Resourcesフォルダから画像ファイル取得

Resourcesフォルダ内に複数の画像ファイルがあり、それをゲームシーンのオブジェクトに動的に貼り付け、切り替える方法です。

f:id:KAORA_22:20190807225845p:plain     f:id:KAORA_22:20190807234802p:plain

電光掲示板に、着順番号を表示します。番号は画像ファイルになっています。

 

 

Resourcesフォルダから画像を読み込み、指定した番号に応じて、電工掲示板の画像を変更します。

f:id:KAORA_22:20190807225852p:plain

Scene内のRank_1~Rank_5の2Dスプライトを変更します。

 

Resourcesフォルダからの読み込み

<Resources/Image>内に切り替えたい画像を入れます。

void Start()
{
Sprite sprites = Resources.LoadAll<Sprite>("image/");
}

上記コードで、sprites配列にimageフォルダ内のスプライトを読み込めます。

 

が、ここで問題があります。

 

f:id:KAORA_22:20190807231915p:plain

読み込んだsprites配列を見てみると、

1,2,3,4・・・とは並んでおらず、

文字としての昇順に並んでいます。1、10,11,12・・・

 

この並びだと、

「2番を表示したい!」

と思ったときに、配列の[9]を指定しなければなりません。

画像の枚数が変わると順番が変わり破綻します。

(画像名をチェックするなどすれば可能ですが、メンドイ)

 

Inspectorから指定してあげる

私は、ちょっと調べてめんどくさい、と感じたら別の方法で実現しようと考えます。

個人開発なので、コードの見た目や賢さは気にしません笑

 

開発中のRoidChanDerbyはスクリプトで一括ロードはせず、Inspectorに指定して使っています。個人的にこっちのほうが楽。

public Sprite sprites;

クラスのメンバ変数を上記のように「public」にすると、unityのInspector上から設定できるようになるので、そこに直接設定します。画像の枚数が多いとこの方法は面倒ですが。。

 

f:id:KAORA_22:20190807233514p:plain

上記画像のように、Inspectorからサイズを指定して、直接画像ファイルを設定します。

こうすることで、配列の引数と画像の番号を明示的に合わせてやることができます。

sprite配列の中身が自分の並べたいように並んでます(2番を表示したければ、配列も「2」の指定でOK!)この方法は、追加は楽ですが削除は大変です。。。

 

読み込んだ画像を2Dスプライトに指定

読み込みが終われば、あとは2Dスプライトに指定するだけです。

GameObject.Find("Rank_1").GetComponent<SpriteRenderer>().sprite = sprites[2];//sprite配列からspriteを設定
GameObject.Find("Rank_2").GetComponent<SpriteRenderer>().sprite = sprites[1];//sprite配列からspriteを設定
GameObject.Find("Rank_3").GetComponent<SpriteRenderer>().sprite = sprites[5];//sprite配列からspriteを設定
GameObject.Find("Rank_4").GetComponent<SpriteRenderer>().sprite = sprites[8];//sprite配列からspriteを設定
GameObject.Find("Rank_5").GetComponent<SpriteRenderer>().sprite = sprites[15];//sprite配列からspriteを設定

上記例では、2DスプライトオブジェクトをGameObject.Findで取得した後、SpriteRendererコンポーネントのspriteに、先ほどInspectorで設定したsprite配列のspriteを設定しています。

このコードをStartに記述し、実行すると、

f:id:KAORA_22:20190807234802p:plain

こうなります。

 

コード全体は以下です。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ImgChange : MonoBehaviour
{
public Sprite[] sprites;

// Start is called before the first frame update
void Start()
{
GameObject.Find("Rank_1").GetComponent<SpriteRenderer>().sprite = sprites[2];//sprite配列からspriteを設定
GameObject.Find("Rank_2").GetComponent<SpriteRenderer>().sprite = sprites[1];//sprite配列からspriteを設定
GameObject.Find("Rank_3").GetComponent<SpriteRenderer>().sprite = sprites[5];//sprite配列からspriteを設定
GameObject.Find("Rank_4").GetComponent<SpriteRenderer>().sprite = sprites[8];//sprite配列からspriteを設定
GameObject.Find("Rank_5").GetComponent<SpriteRenderer>().sprite = sprites[15];//sprite配列からspriteを設定
}

}

 

「RoidChanDerby」予約受付中!アイコンも新しく描きました。

f:id:KAORA_22:20190725201453j:plain

馬風ゲーム「RoidChanDerby」予約受付中!予約特典あり

現在制作中のゲーム「RoidChanDerby」の予約を「予約トップテン」様で受付中です!

予約特典もありますので、ぜひ予約してみてくださいね!

yoyaku-top10.jp

細かいゲームの仕様は、リンクページ内に主なゲームのシステム説明などがあります。そちらをご覧いただけたらと思います。

ブログでは、ゲーム画面イメージを紹介します。

 

予約特典

f:id:KAORA_22:20190725202037j:plain

予約していただくと、感謝のしるしとして、予約特典のMyRoidをプレゼントいたします。Myroidは、育成し、レースに出走させることができます!

 

レースメイン画面

レースのメイン画面で、勝利するRoidを予想して投票を行います。

また、各種メニューやMyRoidファームへの移動を行えます。

f:id:KAORA_22:20190725214808p:plain

MyRoidファーム

マイロイドの確認、育成を行います。

各種連中メニューには一長一短あります。

出走したいレースに調子が最大になるよう調整しましょう!

f:id:KAORA_22:20190725214753j:plain

 

レコードとネットワークランキング

レース投票画面から、システム画面に移動し、プレイヤー情報を登録することで、ネットワークランキングに登録し、他


のプレイヤーとランキングを競うことができます。

登録できる項目は画像のように、たくさんあります。

どこか一つでも1位を取ることができるかな?

f:id:KAORA_22:20190725215122p:plain

 

 イラストも描きました。

ゲーム制作の合間に、(ゲーム制作も仕事と家事の合間ですが笑)息抜きで絵も描いています。今までのブログやツイッターアイコンに使用していた女性画像なのですが、笑顔じゃない上に、見下ろしアングルなんです。

これから作成したゲームをリリース、宣伝していくうえで、「見下ろし、笑顔無し」は良くないと急に気になりだし、少し笑顔の元気な感じの女性を描きました。イメージ戦略大事。

・今まで

f:id:KAORA_22:20190417222155p:plain

・新しいアイコン カオラちゃん

アップ

f:id:KAORA_22:20190725215632p:plain

全身
f:id:KAORA_22:20190725215454p:plain

宣伝していくにはこっちのほうがいいだろう!マリンスポーツをする活発系女子!

相変わらずの厚塗りです。成長は…してませんね…背景も描けないのでチャレンジしていません。

描くのは楽しいんだけど、やり始めたらゲーム制作停滞するので、ほどほどに描こう。

 

競馬風ゲーム「RoidDerby(仮)」作成中

RoidchanDerby製作開始

イラスト練習もそこそこに、2作目のゲーム製作に取り掛かっていました!

4月末に着手し、GWと土日を注ぎ込んでいます。1作目で多くの事を経験したので、今回はそこそこ順調に進んでいます☆

 

それでは、製作中のゲーム概要を紹介します❕

ゲームタイトルは「RoidchanDerby」、アンドロイド(ロイドちゃん)が競馬の様な競走をするゲームです。

世に沢山タイトルがあるジャンルですが、自分の好きなジャンルである事、作ってて楽しい事、好きなタイトルの新作が個人的に残念だった事が、このジャンルを選んだ理由です☺馬の代わりのアンドロイドとしてクエリちゃんを使用させていただいております。

 

メインの流れとしては、

①競馬の様にレースの勝敗を予想し、投票します💴

f:id:KAORA_22:20190615135033p:plain※連単・ワイド・三連複など実装

②レースを開始し、観戦。

f:id:KAORA_22:20190615141228p:plain  f:id:KAORA_22:20190615141251p:plain

f:id:KAORA_22:20190615141322p:plain

③投票したロイドちゃんが勝てば配当に応じてコインがもらえます💰

f:id:KAORA_22:20190615141411p:plain

※画面はすべて開発中のものです。

また、コインを使ってオリジナルのロイドちゃんを育成、レースに出走し、優勝賞金を得ることもできます。

 

とことん予想と投票を楽しむか、

最強のロイドちゃんを育成しダービー勝利を目指すか…❕

 

ネットワークランキング実装予定。

 

レースシーン(各走行制御)は概ね完成。

現在、投票画面と払い戻しを作成中です。

 

これが終われば、マイロイドちゃん育成システムの構築と、ネットワークランキングの実装。

その他細かい所の修正(実際ここが1番しんどい)を行い、テストしてリリースまで持っていきたいです!

 

所感

ここからは所感です。内容はタイトルと全く関係ありません。

私はモノづくりにおいて1番やってはいけない事が、そのプロジェクトを完成させられず終わる事だと思っています。

完成しなければ、経験だなんだ言っても、完成した事による学びが得られません。良いものでも悪いものでも完成しない事には評価、を得られません。

芸術家じゃないので未完の作品の評価に価値はありません。

 

また、完成させる迄の期間も短い方が良いと思ってます😤

「寝る間も惜しんでやれ」と言いたい訳ではなく、「かしこく作れ」と思うんです。

最近twitterで見かけたものの中に、「開発エンジンを使って作ったものは実力じゃない」的な話題を見かけましたが、開発の苦労や技術力が評価される時代じゃ無いですよね。モノづくりなので。私は便利なもの、ネットで調べたら転がっているものはどんどん導入して、どれだけ楽して完成させるか。も重要な能力だと思っています🤔

最近twitterを見て非常に気になったので書きました...

イラスト→スキルアップ(画力的な意ではない)とartstationへの投稿

イラスト練習 仕上がりレベルは向上?

ブログの投稿間隔があいてしまいました😅

イラスト練習がメインで最近ようやく仕事も落ち着いてきて、ゲーム製作に取りかかった状況です😆

ゲーム製作の方は次回以降進捗等を出せたらなと思っております。

 

今回は、1月から始めたイラスト練習の経過報告。

 

最新の絵がこちらです。

f:id:KAORA_22:20190417222155p:plain

タイトル「swimsuit woman」

リアルテイストの人物(女性)ばかり描いてます。(ゲームには向かない...)

アニメ絵とかも描いたりしてますが、私はリアルテイストが好きで女性が好きみたいです(笑)

好きじゃないと続かないしね...

 

リアルテイスト描き始めた時がこちらです。 

 f:id:KAORA_22:20190210014250p:plain f:id:KAORA_22:20190210022502p:plain

 

この頃に比べて、自分のイメージとしてはいい感じの仕上がりかなと思います。

顔の肌と髪がいいイメージで出せました。

でも、これは私自身の画力が上がったとかでは全然ありません。ほとんどが模写ですし、一から線画描くともう構図からバランスからボロボロです。

 

ただ、CLIPSTUDIOの使い方は上達したかなと感じています。レイヤーの特徴やブラシの使い方、どういう塗り方をすればいいか等。ペイントツールではありますが、使い方を磨くって、ゲーム制作やプログラムと通ずるものがありますね。ライブラリとか。

 

毎回描く時にいろいろトライしているのですが、今回はこれまで練習していたグリザイユ画法では無く、普通の厚塗りで描いてみました。

顔に陰影つける時に、少し緑や青をいれたり、目に暗い影をキツめにいれるなどして見るといい感じになりました😏

髪の毛は下塗りにクリスタのAI自動彩色レイヤーを重ねてクリッピング、「塗りなじませブラシ」で下塗りのレイヤーを塗り替えながらと彩色レイヤーを徐々になじませ、髪の流れや光の感じ、束感を出せました。

ここは今回一番うまくいったことなので、覚えておこう。

 

 ArtStation

話は変わりますが、


「ArtStation」

www.artstation.com

という絵を投稿する海外のサイトがあります。(絵に限らず「Art」を投稿する場ですね)リアルテイストな画像が多く投稿されていて非常に勉強になります。眺めているだけでも面白い。みんなうま過ぎてやる気失せることもありますが(笑)

f:id:KAORA_22:20190417225235p:plain

このように、投稿されたartのサムネイルがザーッと表示されます。「latest」順に並べると投稿された新しいもの順に表示されます。気になった画像はサムネイルをクリックして詳細を見て、気に入ったらいいねとダウンロードしています。

 

ここからは更に余談ですが、、

 

私も何度か投稿したのですが、サムネイルをクリックして詳細を表示する「view」すらあまりされません。ましてやviewした後の「Like」なんてなかなか貰えません。

f:id:KAORA_22:20190417231030p:plainf:id:KAORA_22:20190417230511p:plain

このように、過去作はLikeが見事に全部「1」でした。今回は、過去最高のview13とLikeを6もらうことができました。

サイトの仕様上恐らくもう伸びませんが、詳細を見て「Like」まで貰えるってやっぱりうれしいですよね。サムネがたまたま周りと比べて目に入っただけかもしれませんが。やる気はすごく上がります!リアルテイストめっちゃ練習したいです。

 

f:id:KAORA_22:20190417225237p:plain

ちなみに、ほんとにうまい人の絵にはコメントがついています(笑)

コメント貰えるようなレベルになりたいですね。

ゲーム制作もしたいしやりたいこと一杯。。。