2012年4月10日火曜日

oscpack 導入

oscpackの導入のメモ書き

oscpackのダウンロード
http://www.rossbencina.com/code/oscpack
Latest stable release, version 1.0.2をダウンロードする


魚拓
http://d.hatena.ne.jp/dairi_san/searchdiary?word=%2A%5B%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%5D

久しぶりにOSCをつかってみたら少し手間取ったのでメモ書きを残しておく。
0.osc関連ファイルはすべてプロジェクト内にコピーする。
1.ip/win32フォルダにあるcppをすべてipにコピーする
プロパティを開き以下の操作を行う
2.構成プロパティ->C/C++プリプロセッサに「__WIN32__」を追加する。
3.構成プロパティ->リンカ->入力の追加の依存ファイルに「ws2_32.lib」と「winmm.lib」を追加する。
おわり

ここで、__WIN32__ではなく”OSC_HOST_LITTLE_ENDIAN”とする。


/**** skeltalviewerへの適応 ****/
1.インクルードパスの設定
これは

と一連のファイルをソリューションに追加して、追加のインクルードディレクトリを設定する


※.cppファイルの中に"ip/........"というふうにインクルードする記述があるのでそれを注意する。


2.プリコンパイル済みヘッダーを使用しない
構成プロパティ→C/C++→プリコンパイル済みヘッダー
の"プリコンパイル済みヘッダー"のタグを"プリコンパイル済みヘッダーを使用しない"にする。
※この設定をしないとエラーが出てしまう。(未解決)


ここまでで一応通る。


3.ソースコード

/*------------------------------------------------
OSCセットアップ
------------------------------------------------*/
/**** ここから ****/
// インクルードファイル
#include "OscOutboundPacketStream.h"
#include "UdpSocket.h"
#include "IpEndpointName.h"

// アドレスとポートの設定
#define ADDRESS "localhost"
#define PORT 8000

#define IP_MTU_SIZE 1536

// ソケットを用意する
UdpTransmitSocket socket( IpEndpointName( ADDRESS, PORT) );
// 送信するパケットを用意(たぶん)
char buffer[IP_MTU_SIZE];
osc::OutboundPacketStream p( buffer, IP_MTU_SIZE);

/**** ここまで ****/


/*------------------------------------------------
OSCの送信関数
------------------------------------------------*/
void OscSender()
{
int temp = 123454321;
p.Clear();
p << osc::BeginMessage( "/test" )
<< (int)temp   //←ここに送信する値を入れる
<<osc::EndMessage;
socket.Send( p.Data(), p.Size() );
}

2012年4月2日月曜日

iOS SDKに関する記事

iOS Developper University Programで実機でアプリを動作させるまで
http://www.media.t-kougei.ac.jp/kuhadoku/doku.php?id=blog:ios_university_program%E3%81%AE%E6%B5%81%E3%82%8C


iOS Developper Programには大きく分けて3つのライセンスがある。個人、企業、教育機関。
https://developer.apple.com/jp/programs/start/ios/

2012年3月30日金曜日

2012年3月19日月曜日

2012年3月4日日曜日

unityでスプライト【QuadUI】

魚拓です。。。

【Unity】にわとりを集めるゲームを開発してみる2

Unity[http://unity3d.com/japan]
QuadUI[http://blog.equals-equals.com/quadui]
SpriteManager[http://www.unifycommunity.com/wiki/index.php?title=SpriteManager]
作成中のゲーム(最新版)[にわとりゲーム」 ルールはまだない!!!!!

今回の更新では、背景のスクロールを入れたのと
お邪魔キャラとしてさまざまなトラップがあるのでそれの管理処理を作成しました。
まだゲームの体をなしてはいません(笑)。

トラップ1セットでひとつのPrefabを作成して、それをランダムでひとつ作成するような仕組みにしています。
それをエネミー管理オブジェクトの子として作成し、エネミー管理オブジェクト側からトラップ処理の終了待ちを監視し、終了次第、次のトラップを作成する流れになっています。
このゲームは「プレイヤー」「トラップ(敵)」「仲間キャラ」の3要素しかないですが、まずはトラップのシステムが完成しました。
次はプレイヤーの入力操作周りを作成して行こうかと思っています。

そういえば個人的に結構お世話になっているQuadUIについて何の紹介もしていなかったのでこの場で少し紹介します。

QuadUIですが、主にボタンやトグルなどのメニュー系UI向けのフリーのミドルウェアで
ドローコールの回数を抑えてたスプライト機能を提供してくれます。
以前の記事でも書きましたがGUITextureはドローコールが多く、これでUIを組むとスマホでかなりパフォーマンスが落ちるので
スマホを考慮する場合は代替となるスプライト機能を使用する必要が出てきます。
QuadUIやSpriteManagerはその中のひとつです。

導入方法はこんな感じになります。
1.記事のトップのQuadUI公式サイトからQuadUIパッケージを落としてきてそれをインポート
(GetTheBetaをクリックすれば落とせます2012/02/03現在)
2.アルファチャンネルでアルファを指定した画像データを新規で作成したMaterialに設定する
3.MaterialのシェーダーをQuadUI->2DBackfaceCulledに設定
20120203_00.png 
4.メニューのWindow->QuadUI Editerを選択
5.Cameraタブを選んで、Generate 2D Cameraを選択
自分の場合はこんな感じ、CullingMaskで設定したレイヤーが2DCameraでの表示対象になるので
Spriteなどのレイヤーを追加してそれを割り当てると便利です。
20120203_01.png 
6.2DCameraのCameraのDepthを設定してあげる
20120203_02.png 

後は、Sceneビューでカメラの領域が視覚化されているので
その領域内にオブジェクトを配置してあげれば表示されます。

ちなみにスプライトを作成する場合はこんな流れ
1.QuadUI EditerのQuadタブを選択してMaterialの項目に、先に作っておいたMaterialを設定
2.各種パラメータを設定
PivotPointが画像の中心点の位置の設定、
Calssにはいろいろありますが、アニメーションがある場合はSpriteを、ない場合はNoneにしておけば問題がありません。
また、Spriteに設定した場合はFrameごとにuvを指定してあげる必要があります。
uvを指定する際には、Editer右側にあるツール(↓の画像)を使用すると便利です。
20120203_03.png 
上から選択範囲、範囲移動、拡大、縮小、アルファチャンネル、選択範囲をグリッドにクリップ、です。
クリップ機能を使うと指定が簡単です。グリッドのサイズを変える場合はSettingsタブのGridSizeで設定できます。
3.Bake!をクリックするとProjectのPrefabsフォルダ内にプレハブが作成されHierarchyにオブジェクトが追加されます。
4.先程作った2DCameraの領域内にオブジェクトを配置すれば画面に表示されるようになります。

これで一応表示がされます。
他にもQuadUIは、QuadUIコンポーネントを使用することでスクリーンサイズのリサイズに合わせて
カメラの設定を変えてくれる機能があったりしてWebPlayerで作る際には結構便利だったりしますが
そのあたりはまた後ほど紹介しようかと思います。