タグ別アーカイブ: ゲーム開発資料

■Unityメモ_テクスチャで表情を変更したい!

ゲーム「ゆかりん症候群」用にVoxelキャラの表情を変更したい!
普通の3Dモデルと同じだろうけど・・・まずモーフかテクスチャかの方法だけど、
Voxelキャラにモーフは無理、口とかないしするとテクスチャしかないですね!

調べてみると、下記のような資料が見つかりました。

■第17回_プレゼン資料(Unityはじめるよ~フェイスアニメーション~)
表情をテクスチャで実装する資料 ※リンク

■「だいしブログ」
VoxelキャラのUV展開等を説明いただいた方がいらっしゃったので
大変参考になりました!
「だいしブログ」
http://github.dev7.jp/b/2016/07/16/mgopt/

こちらの資料以外にも参考にした資料がありますが、
主に参考となって資料は上記になります。

また、Voxelモデルで表情作成までの流れを記載しますが、
他のモデルでも実装できるかと思います。
※今回紹介の方法がベストとは限りませんし、問題があるかもしれませんが・・・

さて今回、テクスチャで表情変更する方法ですが
「第17回_プレゼン資料(Unityはじめるよ~フェイスアニメーション~)」でも記載のある「1枚の画像に複数の表情を配置するUVアニメーション」で実装していきます。

まずは表情を適用する顔部分だけのメッシュ作成の為、MagicaVoxelで顔のみをPLY出力します。
ここから「だいしブログ」様からの情報をなぞらえる箇所が多くなります。

FaceTextureAnim_1

PLY出力したデータをBlenderでインポートします、必要に応じてサイズ等を変更します。

FaceTextureAnim_2

表情を適応するメッシュのみにするため、編集モードで余分な頂点を削除します。
ついでに、ツール→重複頂点を削除 も行います。

FaceTextureAnim_3

次にUVを展開するため、画面左メニューの「シェーディングUV」から
「UVマッピング」→「展開」→「スマートUV投影」を行います。
展開する際にはメッシュを全選択しておいてください。

FaceTextureAnim_4

画面上の「ScreenLayout」を「UV Editing」に切り替えます。

FaceTextureAnim_5

画面左下の「新規」から新規テクスチャを作成します。
サイズは「1024*1024」となっており、大きいので縮小します。
正直どれくらいが正しいかは不明なので、「128*128」で作ってみます。
このサイズが表情ひとつ分のサイズになります。

サイズが小さいとUnityで表示させた際に、ぼやけたりするのかな・・・?
作成したら「画像」ボタンから「画像を別名保存」します。

次に画面上の「ScreenLayout」を「Defaoult」に切り替えます。

FaceTextureAnim_6

画面右側のメニューから「カメラアイコン」を選択、メニュー最下部の「ベイク」から
ベイクモードを「頂点色」に変更して、「ベイク」ボタンを押します。

FaceTextureAnim_6_2

再度「ScreenLayout」を「UV Editing」に切り替えて、
テクスチャに焼きこまれていたら上書き保存してください。
また、不要な頂点色を削除するため、
メッシュ上で、スペースキーを押して、「頂点色を削除」を検索して実行します。

FaceTextureAnim_7

次に「ScreenLayout」を「Defaoult」に戻して
画面右側のメニューから「マテリアルアイコン」を選択、
「新規」ボタンを押してマテリアル作成します。

FaceTextureAnim_8

「テクスチャアイコン」を選択して、先ほどのテクスチャを、アタッチします。
アタッチには「新規」ボタンの横の「テクスチャアイコン」を押して、
先ほど作成したテクスチャを選択します。
が、出てきませんでした・・・

FaceTextureAnim_9

そこで新規ボタンを押して、タイプに「画像または動画」を選択
メニュー下から「画像」項目の「開く」から、先ほど作成したテクスチャを開きます。

FaceTextureAnim_10

この状態で、「FBX形式」でエクスポートしておきます。
また、先ほどの色を焼き付けたテクスチャが、表情1つ分ということで
そのテクスチャを編集、サイズを大きくして、他の表情をタイリングします。
今回テスト用に適当な画像を用意します。

FaceTextureAnim_11

タイリングは左上からの順として、顔の向きはそのままとします。
出来れば回転させたいですが、メッシュの向き?と合わなくなって変になります。
現状では我慢!

次はUnity側の対応になります。
Unityを起動して、出力したFBXと表情テクスチャを読み込みます。

FaceTextureAnim_12

Scene上に該当のFBX 顔メッシュを配置し
適用されているマテリアルには、上記の表情テクスチャを適用させます。

FaceTextureAnim_13

表情を変更する為に、スクリプトを適用します。
「FaceChanger」とでも名前を付けて、顔メッシュにアタッチしてください。
親のオブジェクトではなく、「MeshRenderer」を持つ子のオブジェクトです。

スクリプトの内容は下記となりますが、
こちらは資料「第17回_プレゼン資料(Unityはじめるよ~フェイスアニメーション~)」を自分用にいろいろ変えております。
また正直これがベストな方法かはわかりません・・・素人なもので・・・

内容は単純に「FaceNo」をテクスチャ上の参照するタイル番号として
タイル番号からテクスチャ上の位置XYを割り出し、
XY座標をUV座標の 0.0f ~ 1.0f に計算し直して、マテリアルに反映しております。

実際に動作を見てみますと・・・

FaceTextureAnim_14

分かりにくいと思われますが、「FaceNo」を変えることで変化しております。
これを「Update」などで、切り替え続けることでアニメーションもできそうですね。

ちなみにクエリちゃんも表情はテクスチャであるとのことで、
同様のスクリプトで切り替えることもできました!

FaceTextureAnim_15

・クエリちゃん公式サイト
http://www.query-chan.com/

Query-Chan_license_logo

さて表情となる顔部分は出来ましたが、本体モデルとどう合体させるかですが
資料「第17回_プレゼン資料(Unityはじめるよ~フェイスアニメーション~)」では
モデルの手前に置くことで対処しておりますが、クエリちゃんモデルを見ると
顔部分がくり抜かれた状態であることがわかります。

ので、自分も顔部分を取り除いたモデルで対応したいと思います。
顔の部分はBlender上で、面を選択して、面削除などを行います。

FaceTextureAnim_16

あとはUnity上でモデルを読み込んで、位置を合わせて子要素にして完成です!

FaceTextureAnim_17 FaceTextureAnim_18

長くなりましたが、これで表情つきのキャラが作れますね!

※その他参考資料
http://blog.livedoor.jp/akinow/archives/52169431.html
http://blenderfaq.blender.jp/oldfaq/tips/hyoujou-no-animeshon-wo-tekusucha-no-kirikae-de-hyougen-suru
http://yukuto.net/blog/201512blender_material_and_texture_for_unity/
http://krlab.info.kochi-tech.ac.jp/kurihara/lecture/cg/BlenderWeb_Hayashi/html/materialAndTexture.html

■Unityメモ_Arbor2を試してみる

Assetの「Arbor2」を試してみようと思います!

arbor_1_1

Arbor2」はFSM(finite state machine)ベースのビジュアルスクリプティング
詳しくはこちらから確認します。
説明:http://arbor.caitsithware.com/manual/getting-started/#FSM
リファレンス:http://arbor.caitsithware.com/manual/behaviour-reference/

本当に軽くですが、まずは敵が徘徊する設定まで。
とりあえず敵とするキャラに、「ArborFSM」をアタッチします。

arbor_1_2

「OpenEditor」ボタンを押して、編集画面を表示
ステートを作成して、「挙動追加」→「Agent」→「AgentPatrol」を選択して追加

arbor_1_3

必要な値の詳細はリファレンスを確認するとして、
「AgentController」が必要なので、敵キャラにアタッチします。

arbor_1_4

「AgentController」に必要なパラメータとして
リファレンスによると、
「Agent」に、「NavMeshAgent」

「Speed Parameter」から
「Animator」に、使用したい「Animatorコンポーネント」を設定
設定したAnimatorの「Parameter」がプルダウンで表示されます。
この項目は「移動速度をAnimatorへ渡す際のSpeedパラメータの名称を指定する。」
とのことで移動する際に、プルダウンで設定した「Parameter」に渡されます。
ただし「Float型」だけのようです。

とりあえずまずは、「NavMeshAgent」を用意します。
移動したいフィールドのオブジェクトを「Static」設定します。

arbor_1_5

Unityメニューの「Window」→「Navigation」を開き
タブ「Bake」から「Bake」ボタンを押して、「NavMesh」を作成します。

敵キャラに「Navigation」→「NavMeshAgent」をアタッチします。

arbor_1_6

これで「NavMeshAgent」が用意できたので、
敵キャラの「AgentController」の「Agent」に自身をアタッチします。

arbor_1_7

次に「OpenEditor」ボタンから、「ArborEditor」を開き
「AgentController」パラメータに敵キャラをアタッチして、各パラメータを入力します。

arbor_1_8
動かすと・・・

arbor_1_9

自動で徘徊するようになりました!
他の「Agent」である、「AgentFollow」「AgentEscape」も
対象設定する以外には同じパラメータなので、すぐ実装できました!

arbor_1_10

今後活用していきたいけど、使いどころとかまだよくわからないし
チュートリアルも少ないし、調べながら使っていこう。

■Unityメモ_SuperLevelOptimizerを試してみる

Assetの「SuperLevelOptimizer」を試してみようと思います!
こちらのアセットはSceneに配置された大量のオブジェクトを1つにまとめたり
ゾーン分けしてドローコールを減らすように出来るみたいですね。

とはいえ日本語資料もなさそうだし、本家のチュートリアルは英語だし・・・
動画見てわかるところを少し触る程度です。
また、無駄な手順や間違いもありそうです・・・

まずは結合したいオブジェクト以外を非アクティブにした後に
結合したオブジェクトを全選択して、Staticにチェックを入れるようです。

level_1_1
「Yes,change children」を押して、Static化!

次にメニューから「Tools」 → 「NGSTools」 → 「SuperLevelOptimizer」 → 「CreateOptimizer」
と選択して、専用オブジェクトを作成します。

level_1_2

作成した専用オブジェクトを選択すると
「Inspector」に「Optimize」というボタンが現れるので選択します。

level_1_3

処理が終わると、「Hierarchy」上に結合されたオブジェクトが作成されます。
この作られたオブジェクトだけの表示と、結合前のオブジェクトだけを表示した場合の
「Batches」を比較してみましょう。

level_1_4level_1_5

こちらは結合前のオブジェクト表示状態、「Batches」が「162」となっておりますが・・・

level_1_6level_1_7

こちらは結合後のオブジェクト表示状態、「Batches」が「13」となっており、
ドローコールが減少しておりますね!

代わりに「Saved by Batching」が102の増加となってますね。
この「Saved by Batching」がなにかを調べると、複数描画をまとめる機能のようで
今回の機能が働いていることがわかりますね・・・よかった!!

※参考資料
https://www.youtube.com/watch?v=M3b38qSAlZE&feature=youtu.be
https://www.youtube.com/watch?v=UOd4QmQes44&feature=youtu.be
https://www.youtube.com/watch?v=5ShWfQa3GME
https://www.youtube.com/watch?v=W0fqW4XtK2E
http://tsubakit1.hateblo.jp/entry/20130509/1368110060

■Unityメモ_Skele_part2

Skeleで少し躓いた箇所があったのでメモメモ

3Dモデルに武器を持たせるときに
よくボーンの手の子要素に武器のオブジェクトを入れることがあるかと思います。
skele_p2_1

この状態で「Skele」をからボーン編集が可能ですが、
ポーズをリセットするときに、この持たせた武器がでっかくなっちゃった!!
skele_p2_2

原因としては・・・単に武器オブジェクトの「Rig」設定が
初期値である「None」だった為でした・・
skele_p2_3

ボーンがないから大丈夫かなと思ってましたが・・・
「Generic」にすると正常になりました。
これからはしっかり設定しないと!
skele_p2_4

■UnityでFBXのデータを使用する注意点

VoxelをUnityで使う際に、「MagicaVoxel」で作って
「Blender」でリギングや調整をしてFBX形式で出力
UnityでFBXを取り込んで、使いますがScale値が1にならない場合がありました
(Scale100になったりする・・・これは気持ち悪い)
今回はこれを直していきたい!
※あくまで初心者が調べた結果なので、問題があるかもしれません

始めにVoxelのCube1つ分はBlender上で「1m」になります
FBXでUnityに読み込んだ場合も、「1m」になっているようですね
scale_test_1
※適当に身長比較、右から1番目がUnityのCube 、右から2番目がVoxelのCube

しかしSceneに配置したVoxelのCubeの「Inspector」からScaleを見ると
Scaleが100となっていて、当然これを1にすると
1mの100分の1なので、1cmと小さくなります
scale_test_2

したらばUnity上の読み込んだFBXデータの「Inspector」からScale Factorを
100に設定すると元サイズが100倍され、Sceneに配置したオブジェクトの
Scaleを1にすれば見え方も変わらず、1mになります!
Sceneに配置する際に巨大なモデルが出てきますが・・・
scale_test_3

しかしこれはFBXデータの元になったBlender側のモデルが小さい場合の
対処になりますね。(Blender側の拡大縮小率1.0)

ではBlender側の拡大縮小率を100にして、FBXを出力
Unityで取り込んで、ScaleFactorは1のまま、Sceneに配置したら
配置オブジェクトのScaleを1にしても大丈夫そうですね
ということで実験!

自前のBlender上のボクセルゆかりんは
寸法を身長1m54cm程度にして、拡大縮小率を1.0にしております
scale_test_4

FBX出力の際には、拡大縮小率を100に設定して出力
scale_test_5

Unityで取り込むこんで、Sceneに配置、Scaleを1にすると
Unity上でBlender上の身長のサイズとなる
scale_test_6

しかしこれが正しいのか結構不安が残ります・・・
下記の参考にさせていただいた資料を見ると、Unity上でScaleを
変更することは書かれていないような・・・

とりあえずこれで制作を進めていこうかな

※参考資料
http://yukuto.net/blog/201512blender_fbx_unity_export_setting_of_scale_factor/
http://wildpractice.blog.fc2.com/blog-entry-9.html
http://d.hatena.ne.jp/tueda_wolf/20120106/p1
http://semakimomo.net/post-102/

■Unityメモ_Skele_part1

HaxeFlixelを卒業して、Unityを本格的に開始!
そこで最近購入したAssetの「Skele: 動画工具セット」のメモを残していきます!

AssetStore Skele: 動画工具セット
skele_top

細かい機能について、
AssetStoreの説明やマニュアルがあるのでそれを参照するか、
youtubeのチュートリアル動画を見るとビジュアル的にわかりやすいですね。
簡単に言えばskeleは、Unity上で3Dモデルのボーンアニメーションや
頂点アニメーションなどが作成できます。
要は3Dモデルを自由に動かしてアニメが出来るということで!

そして使用するに当たって注意が必要なことが・・・
どうやらUnity5.3.4p1から不具合(後述)があり、
使用するには該当のバージョン以前が必要そうです。

今回使用するバージョンはこちら
Unity : 5.3.3f1
Skele : 1.9.6p2

3Dモデルとして、Voxelで作ったVoiceroidのゆかりさん達を使います!
voxel_voiceroid

とりあえず簡単にボーンアニメーション作成をメモ
編集メニューの詳しい使い方はこちらの方が解説して頂いているので
大変参考になります!本当にありがたいです!
「藍と淡々」
http://megumisoft.hatenablog.com/entry/2015/08/02/224008

1.SkeleをAssetStoreからインポートする
2.Projectフォルダから動かしたい3Dモデル(FBXなど)のInspectorから
下記のようにGenericに変更する
タブ「Rig」 → 「AnimationType」を「Generic」に変更 → 「Apply」ボタン
generic
3.Projectフォルダから3Dモデルをsceneに配置する
4.Projectフォルダにて、「Animator」を作って3Dモデルにアタッチする
5.UnityメニューからWindow → Animationを選択して
アニメーション画面を表示し、「Create」ボタンで新規作成する
6.配置した3Dモデル内の「Skinned Mesh Renderer」コンポーネントから
「StartEdit」を選択して、編集を開始する
skin
7.アニメーション画面から録画ボタンを選択し、録画を開始する
8.3Dモデルに表示されるボーンを「移動」「回転」「拡大」「縮小」で編集や
IKモードでキーフレームごとにアニメーションを作成します

適当ではありますが、アニメーション作成の様子を動画にしました
オラァ!て感じのパンチですが、10分もかからず作れます!

ちなみに先ほど「Unity5.3.4p1」以降を使用すると
例えば左回転させたはずが、
アニメを再生すると右回転になったりする不具合があります!

これを逐一修正するのは大変難儀します・・・
素直に前バージョンを使いつつ、Unity5.4で直ることを祈りましょう・・・
以上!
正直「藍と淡々」様のサイトのほうが詳しいです。
今後はもう少し踏み込んだメモが残せるといいかな。

■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で確認しても問題はなさそうでしたし、今は仕方ないですね。

■ゲーム開発メモ_フリー素材_フォント編

ゲームに同梱して使用可能なフリーフォントの簡単なまとめになります!
同梱可能なフォントのみのまとめである為、他用途は不明です。

また、フォントまとめサイトも含めております。

■M+ FONTS

HP:http://mplus-fonts.osdn.jp/
素材種類:日本語/数字/漢字/英字
利用用途:無償・商用利用・素材改変可能

■フォントな

HP:http://www.fontna.com/
素材種類:日本語数字/漢字/英字
利用用途:無償・商用利用・素材改変可能

■武蔵システム

HP:http://opentype.jp/freemouhitufont.htm
素材種類:日本語/数字/漢字
利用用途:無償・商用利用・素材改変可能

フリーフォントケンサク

HP:http://cute-freefont.flop.jp/
素材種類:日本語数字/漢字/英字
利用用途:無償・商用利用・素材改変可能

■ぴぽや

HP:http://piposozai.blog76.fc2.com/blog-entry-55.html
素材種類:日本語数字/漢字/英字
利用用途:無償・商用利用・素材改変可能

■自家製フォント工房

HP:http://jikasei.me/
素材種類:日本語数字/漢字/英字
利用用途:無償・商用利用・素材改変可能

PixelMplus

HP:http://itouhiro.hatenablog.com/entry/20130602/font
素材種類:日本語/数字/漢字/英字
利用用途:無償・商用利用・素材改変可能

Gutenberg Labo

HP:http://gutenberg.osdn.jp/ja/index.html
素材種類:日本語数字/漢字/英字
利用用途:無償・商用利用・素材改変可能

■kachibito.net

HP:http://kachibito.net/web-design/158-free-fonts.html
素材種類:アルファベット
利用用途:無償・商用利用可能

※当記事の内容は各サイトの内容の一部になります
※素材を利用する際は素材配布元の利用規約を確認してください
※当サイトの情報を使用したことによって生じた問題・損失については、
当方では一切の責任を負いかねますので、ご了承下さい