03 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 05

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ポケガネタ】まだまだ引きずるポケガネタ。ほんとあんまりコーディングしてなくて技術ネタ無くてすんまそんorz テヘ 

はい、こんにちは。坂内でございます。
今日は雨ですね。今日はというか、最近ずっと雨ですね。
雨 雨 雨 雨
まるで弊社の涙を具現化しているようです。

先日ポケットガールiOS版でアレやりまして、おかげ様で以下までランキングが上がりました。
(アレの件数知りたい方は、別途TwitterのDM等でお聞き下さいませ。)
【総合無料】 14位
【ゲーム総合】 8位
【アドベンチャー トップiPhone】 2位
【シミュレーション トップiPhone】 4位

すごいっすね。
いやー すごい。

でも二日もたったらガクッと落ちて、現在は以下の感じ。
【総合無料】 182位
【ゲーム総合】 80位
【アドベンチャー トップiPhone】 16位
【シミュレーション トップiPhone】 17位

ポケガの地力が無いということでしょうかね。
しかし、この2日でレビュー数500-700ついて、平均点4.7くらいだったので、悪くは無いはずなんですがねぇ・・・
何がいけないんでしょうか?
自分なりの考察を書いておきます。
①話題性がない
②話題性がない
③話題性がない
④分からない

ということですね。
話題性がないので、一般のユーザには浸透していないってのがありますよね。
あと、データ量が100M近いので、「うわっ でかっ やめた」ってのがありそうです。
とりあえず、アレの費用回収までは1ヵ月~2ヵ月かかりそうな感じですね。
それと、次回バージョンアップにて着せ替えを入れるという話があったと思いますが、現在審査中ですのでお待ちくださいませ。
その後もボイスのバージョンアップもあるので、お楽しみあれ。

ちなみにポケガ2はシナリオにも力を入れて、ストーリーも楽しめる方向でやっていこうと思います。
また話題性のないものになると思いますが、話題性やネタとかではなく、ゲームとしてやっていて面白いと思ってもらえるようなものを地道に作っていきます!

話題変わりますが、今日明日Unite2015っすね!
ちょー楽しそうです!!
行きたかった!!

ってことで、今日もちょっと技術ネタないっす。すんまそん。
次回はちょっと技術ネタ考えてきます!

では、アデュ~ノシ

Category: その他日記

tb 0 : cm 0   

【Unity】コルーチンのメモ的な感じ 

こんにちは。
大坂です。

ここ数日冬のように寒いです・・・。
昨日雪とか降ってましたしね。もうどういうことなんでしょうか・・・。

さて、最近ちょっと便利だと思ったコルーチンの使い方。
使った部分だけなので、少ないですが・・・。
コルーチンは簡単に描くとこんなやつですね。
void Start() {
 // コルーチンを呼び出す
 StartCoroutine("Hogehoge");
}
// コルーチン
IEnumerator Hogehoge() {
 ・・・処理
 // 1秒待つ
 yield return new WaitForSeconds(1f);
 ・・・処理
}
処理の間に待ち時間入れられる感じですね。
結構便利です。

ここから最近知った使い方、2個です。
1個目
呼び出した処理が終わるまで待つようにする。
void Start() {
 StartCoroutine("Hogehoge");
}
IEnumerator Hogehoge() {
 for(int i = 0; i < 10; i++) {
  // Hogehoge_2の処理が終わるまで待つ
  yield return StartCoroutine("Hogehoge_2");
 }
}
IEnumerator Hogehoge_2() {
 ・・・処理
 yield return new WaitForSeconds(1f);
 ・・・処理
}
訳あって、ループの中でコルーチンを呼び出していたのですが、
バンバンコルーチンが呼び出されてちょっと困ったことになったので、
上のようにすると、Hogehoge_2の処理が終わったら次のループに行きますね。

2個目
コルーチンを呼び出すときに複数引数の指定。
void Start() {
 StartCoroutine(Hogehoge(1,2));
}

IEnumerator Hogehoge(int i, int j) {
 ・・・処理
 yield return new WaitForSeconds(1f);
 ・・・処理
}
これできたんですね・・・。知らなかったのです。

とまぁ、知らないことがまだまだいっぱいあるので、いろいろ覚えないといけないですね!

では今週もこの辺でノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【Unity】ポケットガール2そろそろ作り始めようかなーの前に、iTweenについてのメモかいとこ 

こんにちは、坂内でございます。

ポケットガールの着せ替えシステム・ログインボーナスシステムの開発も後半に入りました。
再来週あたりにはリリースされるかもしれません!

ところでみなさんiTween使ってますか?
はい、とても使ってます。

キャラの動作をiTween使って行い、特定のタイミングでキャラを止めたい時には皆さんどうしてますか?
以前にiTweenを止めて、一定時間分Invokeを使って止めていたんですが、その時に問題が起きたのでちょっとメモしておきます。

一定時間止める処理としてはInvokeで空白の時間作ることで問題はないのですが、途中で動かそうと思った時にうまくいきません。

Invokeにて止めている間にiTweenでキャラの移動をすると、移動している途中でInvokeが有効になって違う行動を行う・・・という感じの問題が起きました。

あ、Invokeって特定時間後に引数のメソッドを実行するって感じなんですが。
Invoke("SetTimer",3f);
ってやると、「3秒後にSetTimerメソッドを呼ぶ」って感じです。

なので、次のように対処しました。

HashTable hash = new HashTable();
hash.Add("x",動かすオブジェクト.transform.localPosition.x);
hash.Add("y",動かすオブジェクト.transform.localPosition.y);
hash.Add("time",3f);
iTween.MoveTo(動かすオブジェクト,hash);


ってやったんですよ。
これだと一応場所は動いていませんが、iTweenで動いているためiTween.Stop(動かすオブジェクト)によって、いつでも止めることができます。
こんな方法でやってますが、もっといい方法あればいいんだけどね!

では、アデュ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【Unity】Unity5対応続き。そして一旦停止。 

こんにちは。
大坂です。

暖かくなったと思ったら微妙に寒い日もあるなか、皆様体調にはお気を付けくださいませ。

iOS版ポケガのUnity5対応についてですね。
結論から言うとちゃんとアプリは起動できました。
が、一旦対応はやめました。
まぁ順を追って書いていきます。

先週、アプリ起動時に

return [_displayConnection objectForKey:(UIScreen*)key];
って行でエラーですね・・・。

って書いてましたが・・・。
そもそもこれが出るのが、ARCのエラーで以下をNoにすると出る。


で、DisplayManager.mmの277行目を
_displayConnection = [[NSMapTable
mapTableWithKeyOptions:NSPointerFunctionsStrongMemory | NSPointerFunctionsObjectPointerPersonality
valueOptions:NSPointerFunctionsStrongMemory | NSPointerFunctionsObjectPointerPersonality
] retain];

にしたらいけるよっていうのあったので変更して、実機で起動すると・・・。
Unityのスプラッシュが無事出てきて、アプリが起動したなーっと思って、名前決める画面で、InputFieldをタップ・・・

アプリが落ちましたorz

ふむむ・・・。
色々調べてる時に以下の画面で、個々に「-fno-objc-arc」って書くとARC系のエラーが対応できるという話が。


ということでとりあえず1個ずつ・・・広告会社さんのスクリプトにつけまくらないといけないっすね…。
そんな感じで、エラーが出たスクリプト1個1個に「-fno-objc-arc」をつけて、
DisplayManager.mmも元に戻して、実行すると。
起動もうまくいって、名前も入力できました。
が、しかし!
広告会社さんのスクリプトで落ちました…。
うーん。
色々Unity5対応が始まってくれないと厳しそうです。
そのままでも大丈夫な広告会社さんもあったので、まぁ使うところ絞れば行けるんですけど。
現状は4.6を使うという方向にしました。

とりあえずUnity5でアプリを起動できるまではこんな感じでした!
全て解決できてないので何とも言えませんが、何かのお役に立てばと!

では、また来週ですノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【Unity他】リア充ちょーすげー!そしてお邪魔します。からのー ネットワーク越しのデータ取得方法。 

こんちゅぁ 坂内っす。

先週はポケットガールのインタビューが前後半の2回にわたり掲載頂きました。
前半:http://app-review.jp/news/254844
後半:http://app-review.jp/news/255051
APPREVIEW様ありがとうございます。

そんなポケガですが、現在着せ替えシステム作成中です。
もうしばしお待ちくださいませ。
時間がかかってしまい申し訳ございませんorz

そういえば、「リア充爆発しろ!」すごい盛り上がってますね。
https://itunes.apple.com/jp/app/id975744915?mt=8&ign-mpt=uo%3D4
すげーよ上原さん!
堂々の1位じゃないっすか。

そして何故かお邪魔してます!



ポケガがこんなところに出てました!!!!
ありがとう上原さん(!?)

この辺でちょっとDLが増えたのはリア充効果なのか?


ちょこっと増えました。あざす!

んで、ここからが技術ネタ。

これが、本当に正しいかは分からないけど、一応こんな感じでできたよっていう話。

ネットワーク越しでデータをもってきて、それをローカルに保存する。
2回目以降は、ローカルのデータを参照するって方法です。
追加データはAssetBundleとか使うのが普通だと思うんですが、なんか難しかったんで、こんな方法見つけてみました。
いいんでしょうかね?

今回はuGUIのImageに、ネットワーク越しでとってきたTextureを入れてみるというのをやってみました。

画像データを、http://xxxxxx.xx/xxxxx/xxx.png 等に置きます。
んで、以下のコードを書いてあげます。

	WWW www;
public Image sprite;

void Start () {
StartCoroutine("LoadData");
}

IEnumerator LoadData(){
string filename = "xxx.png";
string url = "http://xxxxxx.xx/xxxxx/";
#if UNITY_EDITOR
string path = "file:///"+Application.persistentDataPath+"/";
#elif UNITY_ANDROID
string path = "file://"+Application.persistentDataPath+"/";
#endif
if (System.IO.File.Exists (Application.persistentDataPath+"/"+ filename)) {
www = new WWW (path + filename);
while(!www.isDone){
yield return null;
}
}
else if (!System.IO.File.Exists (Application.persistentDataPath+"/"+ filename)) {
www = new WWW (url + filename);
while(!www.isDone){
yield return null;
}
System.IO.File.WriteAllBytes(Application.persistentDataPath+"/"
                              + filename , www.bytes);
}
sprite.sprite = Sprite.Create(www.texture,new Rect(0f,0f,320f,480f),Vector2.zero);
sprite.SetNativeSize();
}


って感じ。
まぁ複数のファイル持ってくるのが現実的な使い方だろうから、これ回す感じになるんですかね。
あと、持ってきたファイルがちゃんとDL、保存されているのか確認しないと怖いので、1ファイル毎にチェックする方法(チェックサム等でのチェック)を入れないといけないなーと。

いうことで、これをポケガに導入するか検討中です!
あ、Androidでは動いているの確認したけど、iOS版はまだ未確認です!

ではアデュ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0