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

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

六角形の四目並べ【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で別のスクリプト(MonoBehaviorクラス)をnewすると怒られる


Unityで別のスクリプト(MonoBehavior継承クラス)をnewすると怒られる

Unityのスクリプトで、別のスクリプト(MonoBehavior継承クラス)をnewすると怒られます😤

MonoBehaviour using the ‘new’ keyword. This is not allowed. MonoBehaviours can only be added using AddComponent().


f:id:KAORA_22:20191002080027j:image

エラーではなく警告メッセージなので無視しても良いのかもしれませんが、私はこの周りでバグが起きてたので修正しました。

 

エラーメッセージを見れば一目瞭然ですが、newではなく、addcomponentを使ってくださいね!って事です💨

 

約1年前にUnityを初めて、今までずっと知りませんでした笑

 


f:id:KAORA_22:20191002080933j:image

こんな感じに変更する事で解決。

画面はMicrosoftのplayFabとの通信クラスを生成してます☺

【​PrivacyPolicy】HexagonalConnectFour​

PrivacyPolicy

KaoraEntertainmentが運営するゲームアプリHexagonalConnectFour(以下当アプリ)​は、お客様の個人情報をお預かりするにあたり、以下の通り個人情報保護の方針を定めております。

個人情報の取得

 当アプリは、適法かつ正当な手段によって個人情報を取得いたします。

■個人情報の利用目的

1.当アプリの提供のため。
2.ご利用者さまへのサポート・連絡および、商品・サービスのご案内のため。
3.サービスの要望、リクエスト・アンケートの収集により、開発やサービス改善などを行うため。
4.当アプリでは広告サービスとしてGoogleAdMobを使用しています。広告の成果の確認やコンテンツターゲティングを目的として、情報を取得します。詳しくは、GoogleAdmobのPrivacyPolicyを確認ください。

5.オンライン対戦ではアプリ内で設定した名前を使用します。個人情報の設定はお控えください。

■広告用IDの使用
・アプリ内広告(UnityAds,GoogleAdMob)で必要とされています
・送信情報
・匿名ID(androidではUIID)
・端末情報(ユーザーエージェントから取得できる情報/OSver情報や機種情報)
・上記以外の個人情報は利用していません
GoogleadmobのプライバシーポリシーGoogleポリシーと規約をご確認ください。
UnityAdsのプライバシーポリシーはUnity Privacy Policy をご確認ください。https://unity3d.com/jp/legal/privacy-policy

 

ゲーム内のスコア等の情報以外を利用者の同意なく送信することはありません。

■権限の利用

1.オンライン対戦を行うにあたり、ネットワークに接続します。

2.アプリの最新情報を取得するために、ネットワークに接続します。

3.アプリ内広告でネットワークに接続します。

4.シェア機能の利用に、端末に一時データを保存します。

 

■ファミリー向けポリシー

当アプリは子供向けには設計されておりませんが、子供が大人と一緒に遊ぶことを想定しております。

子供のプライバシーを保護する設計になっております。

・当アプリには子供に不適切な表現・描写はありません

・不特定多数とのチャット機能はありません

・広告は表示されますが、 Google Play 認定広告ネットワークを受けたもののみになります(UnityAds,GoogleAdMob)

・アプリ内の課金はありません

 

■法令、規範の遵守と見直し

KaoraEntertainmentは、保有する個人情報に関して適用される日本の法令、その他規範を遵守するとともに、本ポリシーの内容を適宜見直し、その改善に努めます。

 

お問い合せ
KaoraEntertainmentの個人情報の取扱に関するお問い合せは下記までご連絡ください。
KaoraEntertainmentConntact@gmail.com

六角形の四目並べ【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

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

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

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