月別アーカイブ: 2016年5月

■HaxeflixelでUnityAdsをテストするメモ

これまた正確にはOpenFlで使える「UnityAds」ライブラリ
「openfl-unityads」をAndroid向けに使ってみるテストメモです。

■1.Haxelibより、「openfl-unityads」をインストールする
下記リンク先のライブラリをインストールするため、
コマンドプロンプトに「haxelib install openfl-unityads 1.0.7」を入力して
インストールします。

http://lib.haxe.org/p/openfl-unityads/

■2.Android SDK API17が必要なため、インストールする
Android SDK Managerから、「Android 4.2.2(API 17)」にチェックして
インストールします。

sdk

 

 

 

 

 

 

 

■3.Haxeプロジェクトにて「Project.xml」を編集する

・最低SDKターゲットを指定
<android target-sdk-version=”17″/>

・ライブラリを記載する
<haxelib name=”openfl-unityads”/>

■4.UnityAdsに登録する
UnityAdsサイトで、アカウント登録などを行います。

unityads1

 

 

 

 

 

https://unityads.unity3d.com/admin/#signup

登録方法は資料を参考に、アカウント作成、ゲームIDを作成してください

Qiita-hiroyuki7様
http://qiita.com/hiroyuki7/items/ac607e3df11101b0c90a

■5.コード内にGithubのサンプルコードを入力する
下記リンク先「How to use」から
「Then, you must set up the event listeners, and then initialize.」内の
コードを入力する

https://github.com/ipsilondev/openfl-unityads

UnityAds.init(“YOUR_GAME_ID”, true,true);
上記 YOUR_GAME_ID の部分には手順4で作成した
ゲームID を入力しましょう。

これでAndroidアプリをビルドして、実機で実行すると
動画がDLされて、無事再生されました!

unityadsSS

 

 

 

 

 

■Haxeflixelで、GooglePlayGameServicesをテストするメモ

Haxeflixelというより正確にはopenFlといったほうがいいのか・・・
とりあえず「GooglePlayGameServices」を使用するまでの個人メモ
Android のみでうろ覚えな上に、成功してません・・・
また、Haxelibサイトの下記ライブラリを使用します。
■1.下記コマンドをコマンドプロンプトから入力してライブラリをインストールする
haxelib install extension-multigameshaxelib install extension-android-support-v4
haxelib install extension-googleplayservices-lib

■2.Android SDK version23にアップデートする
「extension-multigames」内に、
「extension-googleplaygames」ライブラリが含まれています。
http://lib.haxe.org/p/extension-googleplaygames/

リンク先を見ると「<android target-sdk-version=”23″ if=”android” />」の記述があり、API 23が必要みたいです。
※自分は色々アップデートした後に試しているので、本当にこれでいいか自信ないです・・・
sdk manager
 
■3.Google Play Developer Consoleの設定を行う
下記資料を参考にテスト用にGoogle Play Developer Consoleの設定を行います。
可能であればテスト用APKを用意して、アップロードしてから行うと楽でした。
※フィンガープリントSHA1という証明書情報が必要なため
・Qiita yamacraft様
http://qiita.com/yamacraft/items/105957b1b8609ac46277
・mobage developers blog (古い)
http://developers.mobage.jp/blog/2014/5/19/google-play-game-
 
■4.haxeプロジェクトより、「Project.xml」内にライブラリを記載する
「Project.xml」内に下記を記載する
<haxelib name=”extension-multigames”/>
<haxelib name=”extension-android-support-v4″/>
<haxelib name=”extension-googleplayservices-lib”/>
 
■5.haxeプロジェクトより、「Project.xml」内に「google play games ID」を記載する
<setenv name=”GOOGLE_PLAY_GAMES_ID”value=”XXXXXXXXXXXX” />

「XXXXXXXXXXXX」内には、手順3で用意した
「Google Play Developer Console」→「ゲーム サービス」のアプリIDを記載してください

id

■6.コード内で必要な情報を記載する
当ライブラリを使用する方法は下記サイトに記載されているので
そちらを参照してください。

https://github.com/sempaigames/extension-multigames

このコード内の下記箇所について記載する情報ですが

Multigames.initGPGRest(‘XXXXXXXX-XXXXXXXXX.apps.googleusercontent.com’,’XXXXXXXXXXXXXXXXXX’);
Multigames.initGPG(true);
Multigames.loadResourcesFromXML(‘<resources>
<string name=”app_id”>391003675259</string>
<string name=”achievement_complete_stage_1″>XXX-XXXXXXXXX</string>
<string name=”achievement_unlock_stage_2″>XXX-XXXXXXXXX</string>・Multigames.initGPGRest(‘XXXXXXXX-XXXXXXXXX.apps.googleusercontent.com’,’XXXXXXXXXXXXXXXXXX’);

 

1番目の「XXXXXXXX-XXXXXXXXX」には「Google Play Developer Console」→「ゲームサービス」→「該当のアプリ」→「リンク済みアプリ」→「Android」→「OAuth2 クライアント ID」の内容を記載する

クライアントID

2番目の「XXXXXXXXXXXXXXXXXX」には 「Google Play Developer Console」→「ゲームサービス」→「該当のアプリ」→ 「リンク済みアプリ」→「Web」→「OAuth2 クライアント シークレット」→ 「こちらの API コンソール」→Web用のアプリ タイプ「ウェブ アプリケーション」を開く→ 「クライアント シークレット」 の内容を記載する

・Multigames.loadResourcesFromXML(‘<resources> ・・・
こちらには
「Google Play Developer Console」→「ゲームサービス」→「該当のアプリ」→
「リーダーボード」や「実績」画面から「リソースを取得」→「<resources>」以下をコピペ

リソース取得
以上で、Androidにおける「GooglePlayGameServices」の使用準備ができたと思います。
しかし実際にAndroid端末で、テストアプリから「GooglePlayGameServices」にログインできましたが、
アチーブなどを取得しようとするとエラー発生・・・
心折れるなぁ・・・

■ゲーム開発メモ_HaxeFlixel_多重解像度対策編2

HaxeFlixelでアプリを作っていくに当たって、「ScaleMode」を使用して
解像度対策をテストしてみたいと思います。
正直何が正しいかわからないから総当たりで見てます・・・
あくまでこの情報は個人メモなので、問題があるかもしれません。

・記入内容
ゲームサイズ:アプリ内で設定している基準サイズ
ウィンドウサイズ:アプリ起動中の表示ウィンドウサイズ
モード:各スケールモード
ratio → 比率を維持して拡大縮小、余ったスペースは黒表示
ratio (screenfill) → 比率を維持して、スペースを残さないように画面外にまで表示する
fixed → ウィンドウサイズの大小関わらず、ゲームサイズで表示
fill → 比率関係なしにウィンドウサイズに合わせる

・確認方法
windows上でサイズ等をいじって確認してます


■テスト条件-1
ゲームサイズ:縦480px:横360px(比率 4:3)
ウィンドウサイズ:縦480px:横360px(比率 4:3)
使用元画像:縦480px:横360px(比率 4:3)

480_360

モード

ratio ratio (screenfill) fixed fill
ratio ratio (screenfill) fixed fill

ゲームサイズ、表示させる端末サイズ(ウィンドウ)、
比率も合っている場合の表示
サイズ全てが一致しているので、モードを変えても表示は変わりませんね


■テスト条件-2
ゲームサイズ:縦480px:横360px(比率 4:3)
ウィンドウサイズ:縦800px:横600px(比率 4:3)
使用元画像:縦480px:横360px(比率 4:3)

480_360

モード

ratio ratio (screenfill) fixed fill
ratio ratio (screenfill) fixed fill

ゲーム元のサイズが小さく、表示させる端末サイズ(ウィンドウ)が大きく、
比率があっている場合の表示
元サイズで表示するfixedは小さく見えますが、
他はウィンドウサイズの比率が合っている為、綺麗に拡大されていますね


■テスト条件-3
ゲームサイズ:縦800px:横600px(比率 4:3)
ウィンドウサイズ:縦480px:横360px(比率 4:3)
使用元画像:縦800px:横600px(比率 4:3)

800_600

モード

ratio ratio (screenfill) fixed fill
ratio ratio (screenfill) fixed fill

ゲーム元のサイズが大きく、表示させる端末サイズ(ウィンドウ)が小さく、
比率があっている場合の表示
元が大きい為、縮小されてドット絵がつぶれてしまいますね
fixedは元サイズで表示される為、画面外に・・・


■テスト条件-4
ゲームサイズ:縦480px:横360px(比率 4:3)
ウィンドウサイズ:縦800px:横450px(比率 16:9)
使用元画像:縦480px:横360px(比率 4:3)

480_360

モード

ratio ratio (screenfill) fixed fill
ratio ratio (screenfill) fixed fill

ゲーム元のサイズが小さく、表示させる端末サイズ(ウィンドウ)が大きく、
比率が合っていない場合の表示
ratioは画面に収まるように、比率を保つため、上下に余りが・・・
ratio (screenfill)は画面全体に表示させつつ、比率を保つ為
画面外にまで表示・・・
fillは比率無視で画面全体に収める為、画面を超える横幅を縮小して
変な感じですね・・・


■テスト条件-5
ゲームサイズ:縦480px:横270px(比率 16:9)
ウィンドウサイズ:縦800px:横600px(比率 4:3)
使用元画像:縦480px:横270px(比率 16:9)

480_270
モード

ratio ratio (screenfill) fixed fill
ratio ratio (screenfill) fixed fill

ゲーム元のサイズが小さく、表示させる端末サイズ(ウィンドウ)が大きく、
比率が合っていない場合の表示
テスト条件-4 の表示と比べて動作が変わらないですが
ratioは拡大された時に縦幅が先に上限となる為、左右に余りが発生してますね
ratio (screenfill) / fill も同様の条件で少し変わっておりますね


■テスト条件-6
ゲームサイズ:縦480px:横270px(比率 16:9)
ウィンドウサイズ:縦800px:横480px(比率 5:3)
使用元画像:縦480px:横270px(比率 16:9)

480_270
モード

ratio ratio (screenfill) fixed fill
ratio ratio (screenfill) fixed fill

ゲーム元のサイズが小さく、表示させる端末サイズ(ウィンドウ)が大きく、
比率が合っていない場合の表示
テスト条件-5 とほぼ同じ条件ですが、比率5:3のウィンドウもテスト
テスト条件-5 に比べてratio の幅も狭く
ratio (screenfill) / fill の変化も小さいですね


現状のAndroid端末の画面比率は16:9が多いですし、
ゲームサイズの比率は16:9 ScaleModeは「ratio」設定として作れば
画面比4:3 5:3でも左右黒帯を我慢すれば大丈夫であることが確信できました。

比率16:9のゲームサイズとしても、
「1920×1080」で作って「800×450」のウィンドウサイズで表示すると
縮小されてドット絵はつぶれてしまうので、
ドット絵を扱う場合には「800×450」以下が良さそうですね
下記資料を見ると「800×450」以下はもうないようですし

近年の解像度資料
http://lovee7.blog.fc2.com/blog-entry-23.html
http://lovee7.blog.fc2.com/blog-entry-9.html
http://lovee7.blog.fc2.com/blog-entry-10.html
http://lovee7.blog.fc2.com/blog-entry-76.html

4:3 16:9の整数倍解像度一覧もありますが
2 4 8 16の倍数にすべて当てはまる「768×432」を使うのもなんとなく良さげ?
https://lunatilia.wordpress.com/dtv/resolutions-ar-4to3/
https://lunatilia.wordpress.com/dtv/resolutions-ar-16to9/

ひとまずこれでアプリ作成時の基準サイズは決まりました!
あとはAndroidの実機で確認できればいいんですが・・・
BlueStacksで確認しても問題はなさそうでしたし、今は仕方ないですね。

■Haxeflixelでwindowsビルドする際にCl.exeエラーが発生する場合

正確にはopenFlでのビルドといえばいいのかな・・・
Haxeflixel4.0するときにライブラリ更新して
haxelibのHxcpp3.2.205がアップデートされたけど、これだとエラーが出て
Hxcpp3.2.102に戻したら直った・・・
資料ないからこういうの出ると本当に困るなぁ

■Unityを始めてみる!

今さらながら周りのUnity旋風に恐怖を覚えて、勉強を開始・・・
ひとまず参考にしたチュートリアルサイトや資料のメモメモ!

※2016/5/4までにこなしたチュートリアル

■参考チュートリアル
 ・ひよこのたまご
 
http://hiyotama.hatenablog.com/entry/tutorials
  →①Jumpping Unity Chan
  →②Simple Breaker(ブロック崩し)
  →⑤FLYING!PIYO(横スクロールアクション)
  →⑧Unity Chan X(ユニティちゃん横スクロールアクション)

 ・2Dシューティングゲーム
 
https://github.com/unity3d-jp-tutorials/2d-shooting-game/wiki

■資料
 ・Unity マニュアル
 http://docs.unity3d.com/ja/current/Manual/
 ・Unityで覚えるC#
 http://www.slideshare.net/lucifuges/unityc
 ・関数まとめ
 http://qiita.com/hiroyuki_hon/items/4c3bd290c795b2481ebd
 ・UnityをC#で超入門してみる
 http://qiita.com/hiroyuki_hon/items/c4da01e1c94bbba2c071
 ・C#私的超入門
 http://qiita.com/hiroyuki_hon/items/9ce9709b4a6f8c797a43
 ・ゲームの作り方
 http://tsubakit1.hateblo.jp/entry/20140218/1392651856
 ・Unity初心者を卒業するためのデバッグ入門
 http://tsubakit1.hateblo.jp/entry/2015/12/02/212958

■質問所
http://answers.unity3d.com/
http://forum.unity3d.com/
https://www.facebook.com/groups/unityuserj
https://www.facebook.com/groups/unityuserbsj/