合計 昨日 今日

アバター
せんちゃ
 
記事: 50
登録日時: 2010年10月16日(土) 11:00
お住まい: 江別市東野幌町
日記: 日記を見る (0)
日記
- 2月 2014
仕事で体験したことがあるので (2)
   2014年2月06日(木) 19:30
Unityを覚える (3)
   2014年2月04日(火) 22:35
XperiaGX VS SFC (1)
   2014年2月01日(土) 17:43

+ 1月 2014
+ 12月 2013
+ 11月 2013
+ 10月 2013
+ 9月 2013
+ 8月 2013
+ 7月 2013
+ 6月 2013
+ 5月 2013
+ 4月 2013
+ 3月 2013
+ 2月 2013
+ 1月 2013
+ 12月 2012
+ 11月 2012
+ 9月 2012
+ 7月 2012
+ 5月 2012
+ 12月 2011
+ 10月 2011
+ 9月 2011
+ 8月 2011
+ 5月 2011
+ 4月 2011
+ 3月 2011
+ 2月 2011
+ 1月 2011
+ 12月 2010
+ 11月 2010
+ 10月 2010
カテゴリー
講座
5 記事
勉強
3 記事
プログラミング
1 記事
疑問
2 記事
フィード
次へ

仕事で体験したことがあるので

パーマリンクby せんちゃ on 2014年2月06日(木) 19:30

viewtopic.php?f=3&t=14583
DirectXではなくUnityで起きた問題で、Unity3.5から4.3へバージョンアップした際に
2の累乗ではないサイズ設定のテクスチャが実機で表示されないというバグがあった。
詳細に書けばTextureTypeをGUI設定に、WrapModeをRepeatにすると起こるらしいのだけれどAndroidでは端末依存で、
iPhoneだと全機種で発生するようです。

なんとなく気になったのでメモ程度に

コメント数: 2 閲覧数: 21418

Unityを覚える

パーマリンクby せんちゃ on 2014年2月04日(火) 22:35

今週から出向開始
今回のプロジェクトはUnityを使った開発になります。

私の会社でもUnityを使った開発はいくつかありましたが、このUnity、使い方に悩みます。
今日は会社の人と一緒に昼飯を食いに行きまして、そこで話題になったのはUnity。
「Unityって基本理念はコードをできるだけ書くな、らしいぜ」
これについ最近会社の人間全員が気付きました。

今まではC#でゴリゴリオブジェクト管理システムやらシーンマネージャやらシーン管理やらなにやらを全般を書いていましたが、
このやり方は違うな、と。

そもそもUnityでオブジェクト管理システムをプログラマが書く必要はない!
なぜならすでにマネージされているからです。
そう、それがすなわちGameObjectなのではないか、と。
GameObjectでペタペタ画面構成を作っていってそれをプレハブ化、あとは使いたいときに使いたいプレハブを生成するだけです。

そうなっていくとC#は本当に単なるスクリプトでのオブジェクト制御にすぎない。
ちょっとしたマネージャ層は作るだろうけど、基本はおそらくこれなのだろう。

これってUnityでの開発が当たり前の人達にとっては当たり前のことなのかもしれない
その一方でその方法論に行きつくまでに時間をかけていた自分達です。。。

いや、たしかにそのほうが効率的だよね・・

なのでUnityでの開発では
C#言語を使う!→×
C#スクリプトでゲームを制御する!→○
と考えたほうがいいのかもしれない。

しかし今度はプレハブとスクリプトの数が凄いことに・・・・
でもこれがUnityの使い方なのだろうかな
最後に編集したユーザー せんちゃ [ 2014年2月04日(火) 22:38 ], 累計 1 回

コメント数: 3 閲覧数: 21675

XperiaGX VS SFC

パーマリンクby せんちゃ on 2014年2月01日(土) 17:43

最近ファイナルファンタジー6のスマフォ版を購入しまして、
会社の行きと帰りが楽しみでならないせんちゃです。
実際にプレイしてみてグラは全部作り直しっぽいのですが音楽は原曲そのままっぽい感じがします。
いやはや懐かしい。

何を隠そう、私が生まれて初めてやったRPGはFF6なのです。
当時兄貴のゲームだったFF6のセーブデータを間違えてけしてしまったせんちゃ少年(9歳)は罰として消したところまで進めろやと言われ、
RPGを良く知らないながらに奮闘していた・・・
それからFF6にどハマり。
高校を卒業するまでの間に軽く100週はやったのではないでしょうか

ところでこのFF6、非常にバッテリーを食います。
端末が熱くなります。
熱くなるうちに動きがカクカクします。
処理落ちがすごいです。

まぁ携帯アプリってこんなもんなのかなって思うのですが
XperiaでこれだってんだからMediasとかRegzaとかで遊んだらどうなるのでしょうか・・・
しかしこの規模のゲームでもカクつくことに少し安心感。
いや、安心してはならーん、なるべく早く動かせるように頑張らなければ・・・
(グラ次第?)

なにはともあれ頑張ろう~
ではでは
最後に編集したユーザー せんちゃ [ 2014年2月01日(土) 17:51 ], 累計 1 回

コメント数: 1 閲覧数: 21147

PSDで画面配置!

パーマリンクby せんちゃ on 2014年1月23日(木) 23:05

以前に調べていたPSDのファイルフォーマットからXMLデータを吐き出すツールを作ってみた。
仕組みは至って単純でフォトショップで配置する画像、もしくはレイヤーを指定していき設定をそのまま保存するだけ。
あとはそれをそのままツールを通して変換→実際に配置したいプロジェクトにファイルを生成といった手順

ツールには一応のルールがあり
psd設定ファイルのロケーションに使用するimgフォルダを作成しなければいけないこと、
imgに指定できるのはpngのみであることなど
画像ファイルのサイズを見て都合が悪い形式なら変換処理の段階でエラーを出すみたいな処理を入れてみるのもいいかもしれない。

ツールを起動させるとそのままimgフォルダの素材をプロジェクトにコピーするので楽ちん
そのかわり不必要な素材を判断して自動的に削除してくれるとかそういう機能はないので、余計なファイルの削除は手作業。

Loadのメソッドを呼ぶとそのままレイヤーを登録するのはいいものの、
レイヤーオブジェクトに対するテクスチャの貼り付けは手作業なので若干面倒くさい。
まだまだ仕事に実用させられるレベルではないのでとりあえず簡単に個人でゲームを作ってみて
必要そうな機能や仕組みを随時追加していきたいところ。
実用レベルを目指して頑張ろう~
添付ファイル
sencha.zip
(5.13 MB) ダウンロード数: 162 回

コメント数: 0 閲覧数: 21033

スクリプトの開発その2

パーマリンクby せんちゃ on 2014年1月18日(土) 03:23

いつまでもスクリプトだけ書いていても全く面白くないので
実際にDXライブラリと連携させながらその都度必要な機能を足していくことにする。
ゲームのシステム層もある程度仕組みが必要になってくるしね。

まず画像配置・オブジェクトの演出処理などはスクリプトに追い出したい

コード[C#]: 全て選択
1
2
3
4
5
6
7
8
9
10
11
12
13
    public class SceneTitle : SceneBase{
        public override void init(){
            base.init();
            loadAssembly( "resource/script/title/title.ss" );
        }
        public override void onUpdate(){
            base.onUpdate();
        }
        public override void onDraw(){
            base.onDraw();
            DX.DrawString( 0 , 0 , "Title" , DX.GetColor( 255 , 255 , 255 ) );
        }
    }

シーン側は読み込むリソースファイルだけ知っていれば良い感じにする
シーンクラスも継承しないで読み込むリソースファイルの対応表テーブルを作ってしまって
一か所にしてしちゃってもいいかもしれない。

シーン基底の処理では
コード[C#]: 全て選択
1
2
3
4
5
6
7
8
9
10
11
12
        public void onInit(){
            m_assemblyInfo  = null;
            m_lyt           = LayoutManager.Instance.CreateLayout( "SceneLayout" );
            m_nextScene     = 0;
            init();
            m_driver.execFunc( "init" );
        }
        public virtual void onUpdate(){
            if( m_driver == null ) return;
            m_driver.execFunc( "update" );
            m_driver.update_coroutine();
        }

といった感じにスクリプトを呼び出す


そしてスクリプト側の実装
コード[C]: 全て選択
1
2
3
4
5
6
7
int lyt;
void init(){
    lyt = Lyt_Get( "SceneLayout" );
    Lyt_LoadGraph( lyt , "resource/img/title/00.png" , "背景"   );
    Lyt_LoadGraph( lyt , "resource/img/title/02.png" , "射命丸"  );
    Lyt_LoadGraph( lyt , "resource/img/title/01.png" , "タイトルロゴ" );
    Lyt_LoadGraph( lyt , "resource/img/title/press_to_enter.png" , "ぷれすとぅーえんたぁ" );

Lyt_Get(),Lyt_LoadGraph()はシステムで定義された関数。
レイアウト参照を取得するのと指定のレイアウトにテクスチャをロードする。

コード[C#]: 全て選択
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        private void Lyt_Get( ss.SSDriver d ){
            string objectName = d.popMemory().string_value;
            for( int i = 0 ; i < LayoutManager.Instance.rootLayout.childCount ; i++ ){
                if( LayoutManager.Instance.rootLayout[i].ObjectName == objectName ){
                    d.Return( LayoutManager.Instance.rootLayout[i].HandleID );
                    return;
                }
            }
        }
        private void Lyt_LoadGraph( ss.SSDriver d ){
            Console.WriteLine( "Lyt_LoadGraph called!!" );
            string objectName = d.popMemory().string_value;
            string fileName   = d.popMemory().string_value;
            int    lytHandle  = (int)d.popMemory().value;
            LayoutObject  lyt  = LayoutManager.Instance.GetLayout( lytHandle );
            lyt.Lyt_LoadGraph( fileName , objectName );
        }

テクスチャを描画するオブジェクトもスクリプトから制御する

コード[C]: 全て選択
1
2
    bg = Lyt_EntryPictObj( lyt , "背景" );
    Lyt_SetPictPos( bg , 320 , 240 );

Lyt_EntryPictObjで指定のレイアウト参照に画像描画用オブジェクトを生成する。
Lyt_SetPictPosで画像の座標を変更
この画像の座標はそのうちPSDレイアウトのコンバータでも作って初期位置を定義した上で
オフセット座標を渡す感じで制御したいかもしれない。

と、システムAPIに頼りっぱなしだがこれだけでもとりあえず画像が制御できる。
まだまだ苛め貫かなければね

コメント数: 0 閲覧数: 21147

オンラインデータ

登録ユーザー: ターボ