08 «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.» 10

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

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

 

【Unity】Unity&Orthelloによる2Dゲーム作成⑦ 

はい、こんにちわ坂内でっす。

Unity難しいでっす。
土曜出社してAndroidゲーム【モンスラ】バージョンアップしたでっす。

今回の目玉は必殺技の追加、クリティカルヒット追加、フェアリー追加でしたが、実は軽くなってるんです!

Drawcallが劇的に減ってるんですよ!

Ver1.1まではフルメンバー(村人200人+ユニット199人x6クラス)の場合、Drawcallが200ほど。
重いです!これ重いんですよ!

Ver1.1までは各クラスごとにAtlasを用意し、合計7Atlasを使用していました。
Ver2では少しでも軽くしようと、GUIまわりのAtlasを一つにしたり、ユニットのAtlasをつにまとめたりしたところ、なんとDrawCall30!!!

この劇的変化!! DrawCall 200 ⇒ 30!!

ただし、スマホだとさすがにSpriteの多さが問題か、重いんです!
DrawCallの問題だけじゃあぁないっすね!!
今後軽くする方法を検討してみますが、ちょっとこれ以上はきついかな?
タップ時の攻撃エフェクトを他のAtlasと1つにしてみようという案は考えてますが・・
あと、Unity4.3によって2Dゲームまわりにどのような変化がくるか楽しみですね!!

と、いうことで今後もモンスラよろしくお願いします!
スポンサーサイト

Category: 開発日記(Unity)

Tag: Android  ゲーム  2Dゲーム  Sprite  Unity 
tb 0 : cm 0   

今までとはちょっと違いファンタジー風ゲーム作成はじめました  その弐 

月曜の坂内っす。

先週月曜に話をしていたファンタジーっぽいゲームなんですが、21日リリースします!いや、したいです!
なんとなーく できてきました。
これちょっと面白いんじゃないかなーというか、面白いです!
写真はリリースまでおあずけです!

①簡単操作
②仲間を増やす
③敵を倒してお金を稼ぐ
④装備アイテムも盛りだくさん!(アイテムは全部で50種以上!?)
⑤アチーブは全100個!!!!!!!

どっすか?興味でません?

あれ?開発者ブログじゃない?って声聞こえそうなので1つ。

Unityゲームを開発している時、画面に表示する文字列は専ら「3DText」を使用しています。
この話以前しましたっけ?ただ問題がありまして、3DTextを多量に使うと文字が欠けてしまったり、
上手く表示できなくなってしまいます。
原因はわかりません!
そのため、固定の文字列等は画像にして張り付けたりしてます。

なにか解決方法わかる方ご教授くださいませ!

以上!

Category: その他日記

Tag: Android  Unity  ゲーム  2Dゲーム  ファンタジー 
tb 0 : cm 0   

【Unity】Unity&Orthelloによる2Dゲーム作成③ 

はい、こんにちわ。坂内です。
本日の題は「Unity&Orthelloによる2Dゲーム作成其の3」です。

アニメーションについて、ちょちょっと書いてみます。

Orthelloには、AnimatingSpriteというものがあります。
これ、アニメーション用のSpriteっぽいっす。
オブジェクトとしては、コレ使います。

では順番に説明をば。(間違えていたら指摘プリーズ!

①「Orthello」⇒「Sprite」⇒「Animation」をHierarchyに追加します。
  このAnimationはSpriteのアニメーション自体を管理するもののようです!


②今回はこんな感じの適当な絵を用意しました!

 立ち絵・パンチ・キックの3種類のアニメーションです。(適当でスイマセン
 これをまずは前々回の通りSpriteAtlasに読み込みます。
 SpriteAtlasについては前々回の「Unity&Orthelloによる2Dゲーム作成①」を参照。

③次に、①で追加したAnimationのInspectorのFramesetsをアニメーションの数設定します。
 今回は「立ち」「パンチ」「キック」の3種類のため、FramesetsにSizeに「3」を設定。
 Sizeに3をセットすることにより、その下にElementsが3個追加されます。
 それぞれのElementsのNameにアニメーション名を設定します。今回は「stand」「punch」「kick」に
 してみます。


④各種アニメーションに、どの絵を使うかを指定します。
 ③で作成したElementsのContainerに②で指定したAtlasを指定します。
 それと、スタートフレーム、エンドフレーム(アニメーションのフレームを指定)
 立ちポーズはSpriteAtlasでは、8,9,10,11,12の絵になるので、Start Frameに「8」を、
 End Frameに「12」を指定します。

⑤で、アニメーションの指定はスクリプトで「OT.AnimatingSprite("オブジェクト名").Play("アニメーション名");」とすることで動かすことができます。
using UnityEngine;
using System.Collections;

public class PlayerScript : MonoBehaviour {

void Start () {
OT.AnimatingSprite("Player").PlayLoop("stand");
}

void Update () {

}
}


⑥では、スペースボタンを押すとキックをするようにしてみましょう。

void Update () {
if(Input.GetButtonUp("Jump")){
OT.AnimatingSprite("Player").PlayOnce("kick");
}
}


なんかそれっぽくなりましたね!

これ、キックのアニメのあと、止まってしまうけど、もとのStandアニメーションにするのはどうするんだろうか!
キックのアニメーションが終わったタイミングでうまくスタンドのアニメーションに戻す方法なにかいい方法をお持ちの方教えて下さい!
ってことで、本日のブログは終了です!

Category: 開発日記(Unity)

Thread: 日記

Janre: 日記

Tag: Orthello  Android  ゲーム  2Dゲーム  Unity  Sprite 
tb 0 : cm 0   

【Unity】Unity&Orthelloによる2Dゲーム作成② 

月曜担当の坂内です。暑い日が続いています。
倒れないように水分はこまm(ry

ええと、Orthelloによる2Dゲーム作成第2弾ということで、
Spriteの移動について簡単に書いていきたいと思います。

Unityにおける、オブジェクトの基本的な移動は以下になります。

◆オブジェクトに必ずついている、Transformコンポーネントのposition
 の値を変更する。
 
 ●gameObject.transform.Translate(new Vector3(1,1,0));
  Translateという命令で引数のVector3方面への移動。
  上記の例だと、x方向に1、y方向に1進めという意味。
 ●gameObject.transform.position = new Vector3(100,0,10);
  transformpositionにVector3の位置を代入。
  gameObjectの場所をVector3の位置に移動。
 などの方法で移動させます。
 
◆オブジェクトについている、Rigidbodyコンポーネントに力を加える。
 ●gameObject.rigidbody.AddForce(new Vector3(10,5,1));
  rigidbodyにVector3の力を加える。
 他
 
となります。

次に、iTweenを使った、移動方法をば。

iTweenの基本的な使い方は以下になります。

iTween.MoveTo(オブジェクト,iTween.Hash(ほにゃらら));
iTween.MoveFrom(オブジェクト,iTween.Hash(ほにゃらら));
◆iTween.MoveAdd(オブジェクト,iTween.Hash(ほにゃらら));
など。

ほにゃららのところには直接iTween.Hash()を書く方法と、
HashTableを作成して書く方法があります。

(testという名のオブジェクトを移動する場合)

void Update () {
// スペースキーをおしたよ.
if(Input.GetButtonUp("Jump")){
Hashtable hash = new Hashtable ();
hash.Add("x",50f);           //①
hash.Add("time",1f);          //②
hash.Add("easetype",iTween.EaseType.easeInOutBack); //③
iTween.MoveAdd(GameObject.Find("test"),hash); //④
}
}




void Update () {
// スペースキーをおしたよ.
if(Input.GetButtonUp("Jump")){
iTween.MoveAdd(GameObject.Find("test")
      ,iTween.Hash("x",50f,"time",1f,"easetype"
      ,iTween.EaseType.easeInOutBack));
}
}



①移動する座標をx座標50として指定。
②移動する時間を1秒として指定。
③移動する際の動き方をeaseInOutBackとして指定。
 他にもいろいろな動き方があります。
④MoveAddにて、上記の動きを追加。
 MoveAdd Hashの動きを追加。
 MoveTo Hashの場所へ移動。
 MoveFrom Hashの場所から今の場所へ移動。(?)
という感じで使用できます。

この際、注意として、Orthelloを使用していると、transformpositionとは別に、
OTSpriteのpositionが存在しています。
移動した際には、iTweenまたはtransformでの移動後に、以下のコードを追加しないと
うまく動かない場合があります!(動く時とうまく動かない時の違いがわからない・・・)

OT.Sprite("オブジェクト名").position = オブジェクト.transform.position;

以上でUnityにおけるオブジェクトの動き方メモ終了!!

さぁ、これでゲーム作成に1歩近づきましたね!

(使い方間違えている等の指摘ありましたらお願いします!)

Category: 開発日記(Unity)

Thread: 日記

Janre: 日記

Tag: iTween  Orthello  Android  ゲーム  2Dゲーム  Unity  transform  position  Rigidbody 
tb 0 : cm 0   

【Unity】Unity&Orthelloによる2Dゲーム作成① 

はい、こんにちわ!坂内です。
現在Unityで2Dゲーム作成中です!

元はJavaにて作成していたのですが、
UnityでもAndroid2Dゲームが作成できるということで、
こちらに移行してみました。

まだまだ勉強中ですが、自分メモ的に書いていこうと思います。
使用Frameworkは「Orthello」と「iTween」です!
と、いうことで、今回はOrthelloの使い方をちょこっと。

以下設定は、スマホ横ゲームでの設定になります。

Orthelloの初期設定】
①Gameウィンドウのサイズを、854x480に変えておく
②Assetストアで、OrthelloをIMPORT
③「Orthello」⇒「Objects」⇒「OT」をHierarchyに追加
20130812_1.png


④Hierarchyの「OT」⇒「View」を選択し、Inspectorから以下の値に設定
 Always Pixel Perfect ⇒ チェック
 Pixel Perfect Resolution ⇒ x : 854
  y : 480
 Custom Size ⇒ 240
20130812_2.png


ここまでで、基本の設定は終わりです。

次に使用する絵の設定です。

まずはAtlasを作成します。
私はこのAtlas作成には「TexturePackerGUI」というツールを使用しています。
TexturePackerGUIの使用方法はまたの機会で・・・

【絵のオブジェクトを表示】
TexturePackerで作成した、Atlasファイル(png)と、xmlファイル(構成表?)を
 適当なフォルダに突っ込みます
 あ、xmlファイルは、cocos2Dのフォーマットでお願いします。
20130812_3.png

②「Orthello」⇒「Objects」⇒「Sprites」⇒「SpriteAtlas」⇒「SpriteAtlas-Cocos2D」
 をHierarchyに追加
20130812_4.png

③②で追加したSpriteAtlas-Cocos2DのInspectorにて、Textureとして、①で配置したAtlasファイルを選択します
20130812_6.png


④「Orthello」⇒「Objects」⇒「Sprites」⇒「Sprite」をHierarchyに追加
⑤④で追加したSpriteのInspectorの、「Sprite Container」に③で設定したAtlasを指定します
20130812_7.png

これで絵を表示することが可能になります!
アニメーションを行う場合は、Spriteの代わりにAnimationSpriteを使用します。
Animationについては、次回書こうと思います!

今日はこんな感じ!アニメーション・iTweenでの移動に関してはまた今度です!

簡単に絵を表示することが可能です!
あとは、センス!誰かセンス下さい!
あと、絵書いてくれる方募集です m(_ _)m

ってことで、本日は終了っす!Orthelloによる2Dゲーム作成ネタとして
いいネタあるかた是非友達になりましょう!

Category: 開発日記(Unity)

Thread: 日記

Janre: 日記

Tag: Java  2Dゲーム  ゲーム  Android  Orthello  iTween  Texture 
tb 0 : cm 0