3月 27

unity + spritestudio で2D格ゲー制作 #2


今回はphotonを使ってオンライン経由で相互にキャラクターの動きを同期できるようになりました。

3月 10

unity + spritestudio で2D格ゲー制作 #1

もう直ぐ対戦が出来るようになりそうです。
その際はα版として公開したいと思います。

2月 15

SS5PlayerForUnity 参照テクスチャーの差し替え

private Texture2D myTexture;
private Script_SpriteStudio_Root ss;

void Start()
{
    ss = gameObject.GetComponent();
    myTexture = Resources.Load("file_name", typeof(Texture2D)) as Texture2D;
    //指定するファイル名には拡張子を含まないように

    ss.TextureChangeTableMaterial(0,myTexture);
}

2月 08

unity + spritestudio で2D格ゲー制作 #0

http://sjc.sakura.ne.jp/test/unityChan/index.html
(読み込みに時間が掛かります)

しゃがみ無いのとジャンプが垂直なのは仕様です。
スマホとPCでのクロスプラットフォームネット対戦を予定してるので
操作はできるだけ簡素にしています。

基本的な動きだけ操作できるようになった。
しかし何故かキー入力から動くまでにラグがあるなぁ・・・ 改良せねば

1月 26

unityからspritestudioアニメーションの参照セルマップを変更

デモページ

■目的

この機能を使えば一つのアニメーションを複数のキャラクターで使いまわす事ができ大分作業量を減らせられますね。

個人的にはこういうところがSSの真骨頂だと思ってます。

 

SSのプロジェクトはアニメーションファイルが1つ

 

unity のhierarchyはこんな感じ

 

Viewにスクリプトを追加、内容は下記

using UnityEngine;
using System.Collections;
 
public class view : MonoBehaviour
{
    Script_SpriteStudio_Root unichan;
    int currentCellMapNo = 0;
 
    void Start ()
    {
        unichan = GameObject.Find("unitychan_3head").GetComponent();
        myCellMapChange(unichan, 1);
    }
 
    void myCellMapChange(Script_SpriteStudio_Root trgt, int cellNo)
    {
        Library_SpriteStudio.Control.CellChange[][] myCellMap;
        myCellMap = Library_SpriteStudio.Utility.TableCellChange.Create(trgt);
 
        Library_SpriteStudio.Control.CellChange[] before = myCellMap[0];
        Library_SpriteStudio.Control.CellChange[] affter = myCellMap[cellNo];
 
        for (int i = 0; i < before.Length; i++)
        {
            string partsName = before[i].DataCell.Name;
 
            for (int s = 0; s < affter.Length; s++)
            {
                if (partsName == affter[s].DataCell.Name)
                {
                    before[i] = affter[s];
                }
            }
        }
        trgt.CellMapChange(myCellMap);
    }
}

■問題

フレームの途中で参照セルを変更していたりすると対応できないので注意が必要です。

 

差し替え後のセルマップの状態を意識しながら行えば問題なくできます。

 

 

1月 05

sprite studioで昇龍拳を作ってみた

こちらは元素材の画像
bass

こちらの情報を参考に作成しました。
http://gamebiz.jp/?p=168358

12月 02

spritestudio + unity で当たり判定

まずはSSで簡単なアニメーションを作りパーツに当たり判定をつけます。
unityに持っていった時に利用可能なのは
・なし
・四角形
・円形(スケール影響なし)
だけなのでご注意を今回は四角を選択します。
当たり判定のパーツの参照セルには半透明な画像など割り当てておくと
unity上で目視で確認が出来るので楽です。
ss


作成したSSのデータをunityにインポート
方法は下記URLを参考に

Unityにアニメーションを表示する


gameobject-> 2dobject-> sprite 白い玉の2Dオブジェクトを追加
コイツをSSで作ったアニメーションに接触させます。
さらcolliderのComponentを追加
unity2


SSで作ったアニメーションのinspectorのisTriggerにチェックを入れる。
unity1


Viewにスクリプト(View.cs)を追加します。
内容は下記

using UnityEngine;
using System.Collections;
 
public class View : MonoBehaviour
{
    GameObject Ball;
    GameObject anim;
    // Use this for initialization
    void Start()
    {
        Ball = GameObject.Find("Ball");
        anim = GameObject.Find("anim");
        anim.GetComponent<Script_SpriteStudio_Root>().FunctionColliderEnter = OnColliderEnter;
    }
 
 
    void OnColliderEnter(Script_SpriteStudio_Root InstanceRoot,string PartsName,int PartsID,Collider Self,Collider Pair)
    {
        //接触したパーツの名前をログに出す
        Debug.Log(PartsName);
    }
 
    // Update is called once per frame
 
    void Update()
    {
        //キー入力があったら白い玉を動かす
        Vector3 before = Ball.gameObject.transform.localPosition;
        int add = 10;
        if (Input.GetKey("a"))
        {
            before.x = before.x - add;
        }
        if (Input.GetKey("d"))
        {
            before.x = before.x + add;
        }
        if (Input.GetKey("w"))
        {
            before.y = before.y + add;
        }
        if (Input.GetKey("s"))
        {
            before.y = before.y - add;
        }
 
        Ball.gameObject.transform.localPosition = before;
    }
}

そして実行
青色の当たり判定に白玉が接触すると左にログが出てます。

おわり。

5月 11

テーブルの存在を確認する方法 SQLite4Unity3d

private SQLiteConnection _connection;
 
if (_connection.GetTableInfo("User").Count <= 0){
   Debug.Log("テーブルはありません");
}

GetTableInfoの戻り値(List型)の要素数が0ならテーブルはないものと判断
もっと他にスマートな方法があるのかも・・・知ってる方教えてください。

4月 25

unity3dでsqliteを使う(無料) SQLite4Unity3d

なにかと情報が少なくてちょっと苦労した。
備忘録がてら基本的な関数の使い方とか書いてみる。

GuitHub

https://github.com/codecoding/SQLite4Unity3d/
取り敢えずダウンロードしてExampleをunityで開いてみよう。
基本的な使い方は下記

挿入

_connection.Insert(new Person{
				Id = 1,
				Name = "Tom",
				Surname = "Perez",
				Age = 56
			});

削除

_connection.Delete (1); 
//ID1を削除

アップデート

_connection.Update(new Person{Id = 1,Name = "Tom2"});
//ID1のNameをTom2に変更

複数条件で抽出

_connection.Table<Person>().Where(x => x.Age > 24 && x.Age < 30 );
//Ageが24より大きく30より少ないのを抽出

しかし情報が少ないなーなんでだろう

8月 05

unityでsprite studioのファイルをプログラムから動的に読み込む

①事前にAssetsStoreでss5playerをダウンロードして
プロジェクトにインポートしておく

②AssetsフォルダにResourcesというフォルダを作る。
動的読み込むファイルの類は必ずここに置いておく必要があるみたい

ProjectタブのAssets > Resourcesをクリックして選択した状態で
image2
トップメニューのTools > SpriteStudio > import SS5 と展開して
ssjファイルを指定して読み込む。
※メニューにToolsの項目がないときはuniyを再起動してみる

④どこでもいいので下記のスクリプトを作成する

public class TestClass : MonoBehaviour {
	private GameObject prefabs;
	void Start()
	{
		Vector3 pos = new Vector3(0, 0, 0);
		string filePath = "NewProject/Prefab/NewAnimation";
		prefabs = Instantiate(Resources.Load(filePath), pos, Quaternion.identity) as GameObject;
		prefabs.transform.parent = this.transform;
	}
}

⑤ProjectタブのAssets > SpriteStudio > Camera にあるCamera2D Pixelを
Hierarchyにドラッグする。
Hierarchyに置いたCamera2D Pixel > view に先ほどのスクリプトをAdd Componentする。

以上、実行すれば動的読み込みに成功しているはず

古い記事へ «