2012年12月3日月曜日

Xcode4 with openFrameworks build


Xcode4 with openFrameworks

用意した Mac0SX10.6.sdk ディレクトリを/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs の中に置く

出典

2012年10月31日水曜日

バカアフター

http://baaaf.com/sample.html

AfterEffectsの機能のみで作成されたCG集がすごいことになっている。
でも基本的にopenGLだからこのくらいのことはできて当たり前なんだけども。すごい使いこみようや。

2012年10月30日火曜日

ずるいデザイン

ずるいデザイン
https://speakerdeck.com/ken_c_lo/zurui-design

ずるい線とか角丸四角形とかの使い方をレクチャー。
CSSも使えるようにならねばなー。

こういうデザインを定量化してる例を大量に仕入れておくだけで結構な引き出しになりそうな気がする。それをライブラリ化できないものかな。ただ、小手先だけのものになるけどね。

2012年10月27日土曜日

aftereffectsチュートリアルサイト集

水玉動画
http://www.mizutama.com/aetips_ex_library.html

AfterEffects style
http://ae-style.net/tutorials/e17.html


ayato
http://www.ayatoweb.com/ae_tips.html

2012年10月23日火曜日

titanium導入

appceleratorに登録
https://my.appcelerator.com/

自分のページが作成されるのでそこからtitanium studioをダウンロード
https://my.appcelerator.com/resources



まずここみました
http://www.infiniteloop.co.jp/blog/2011/04/titanium_mobile/
んでこっち
http://gihyo.jp/dev/serial/01/titanium/0001
PDFもおとしました

んでこれに従って設定してる
http://gihyo.jp/dev/serial/01/titanium/0016?page=2
androidSDKのパスを失敗してUserフォルダに色々入ってしまったけど、後からOF_AndroidのフォルダのSDKにパスを通し


参考になりそうなNAVERまとめ
http://matome.naver.jp/odai/2132938948175442001

titaniumの動画チュートリアル
http://dotinstall.com/lessons/basic_titanium


2012年10月15日月曜日

openFrameworksでムービーテクスチャを3Dで使う


なんでできないんやろうって思ってたら、update()関数でidleMovie()してなかったわ。
これが諸悪の根源。昨日時間かなり使ってしまった。

てゆーかこれ、すごい楽。今までかなり回りくどいことしてテクスチャ生成してたな。
これやったら普通の画像でもつかえるやないかい。

/*---------------------------------------
テクスチャをgetTextureReference()でもってくる。
これをbind()するだけで普通のテクスチャと同じように扱えます。
当然UV座標もリソースの左上が原点です。
---------------------------------------*/
ofTexture &tex = MN_video.getTextureReference();// ←ofVideoPlayer()のインスタンス
tex.bind();

glMatrixMode(GL_TEXTURE);
glPushMatrix();
glLoadIdentity();

ofTextureData texData = tex.getTextureData();
if( texData.textureTarget == GL_TEXTURE_RECTANGLE_ARB)
{
glScalef( tex.getWidth(), tex.getHeight(), 1.0f);
} else {
glScalef( tex.getWidth() / texData.tex_w, tex.getHeight() / texData.tex_h, 1.0f);
}
glMatrixMode(GL_MODELVIEW);


glColor4f(1.f, 1.f, 1.f, 1.f);

// UV座標が
// 0-1
// | |
// 3-2 というイメージ
glEnable(GL_TEXTURE_2D);
glBegin(GL_QUADS);
glTexCoord2d( 0.f, 0.f); glVertex3f( myPosition[3].x,  myPosition[3].y, myPosition[3].z);
glTexCoord2d( 1.f, 0.f); glVertex3f( myPosition[0].x,  myPosition[0].y, myPosition[0].z);
glTexCoord2d( 1.f, 1.f); glVertex3f( myPosition[1].x,  myPosition[1].y, myPosition[1].z);
glTexCoord2d( 0.f, 1.f); glVertex3f( myPosition[2].x,  myPosition[2].y, myPosition[2].z);
glEnd();
glDisable(GL_TEXTURE_2D);

MN_video.getTextureReference().unbind();

glMatrixMode(GL_TEXTURE);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);




2012年10月7日日曜日

UnityOSC

■[Unity][Unity3d]UnityでOSC(OpenSound Control)を使う方法
http://d.hatena.ne.jp/nakamura001/20110807/1312739099

基本的にここに習えば大丈夫。

ここにあがっている"osc_example"のどれかをダウンロードしてサンプルを起動
今回は"osc_example_221.zip"を使用した。
http://forum.unity3d.com/threads/16882-MIDI-or-OSC-for-Unity-Indie-users

OSCReceiver.js
これでOSC受信ができるっぽい。

出典"http://d.hatena.ne.jp/sc3onlinux/20110528/1306573637"
/*----------------------------------------

詳しく調べる気はないので、handler.SetAddressHandler("メッセージ名", 関数名);でOSCメッセージ名、関数を指定、OSCメッセージ値を関数内で変数に代入、Update関数でGameObjectのパラメータを更新させる。
という処理を丸パクリして、追加したゲームオブジェクトをいじってみる。うーむ、楽です。

----------------------------------------*/


【スクリプトの扱い方】
ここを見た
http://www.wisdomsoft.jp/35.html
http://www40.atwiki.jp/spellbound/pages/1313.html

monodevelop日本語化
http://d.hatena.ne.jp/nakamura001/20120306/1331046562

2012年7月31日火曜日

XCode4.4でのOFビルド

mac osx 10.6のSDKがなくなってしまった。 http://qiita.com/items/3980a9082a2631565065

2012年7月6日金曜日

webGL_test_01

四角形を描画する Canvasをサポートしているブラウザを使用してください。

2012年6月21日木曜日

2012年6月7日木曜日

2012年5月1日火曜日

application

テレビでアプリの紹介をしていた。

「テレビでアプリの紹介をするような時代になったのかー」と少し感慨深くなったけど(テレビ=ネット嫌いだという固定観念から来る)、結構おもしろく見れた。

制作者視点、開発者視点、ユーザー視点、の3つからバランスよく見ようと心がけるけど、まだまだ難しい。

アプリ=コンピュータの機能をオブラートに包んでユーザーに提案する、みたいな感覚なのかな。よくわからんけども。

コンピュータでできる事をユーザーに翻訳して伝えて、使えるようにしてもらう。これがアプリケーションの本質なのだと思う。
シンプルに、簡単に、複雑な事ができた時に、ユーザー体験は良質なものになるのだと思う。

2012年4月28日土曜日

openGLメモ

OpenGLプログラミングメモ
http://www21.atwiki.jp/opengl/
細かいところまで載っていそうなブログ

ミクミクダンス+webGL をやってる人のブログ
http://d.hatena.ne.jp/edvakf/20111020/1319083256


collada形式についてやってる人のブログ(移転した)
http://pr0jectze10.blogspot.jp/2011/11/collada.html
移転先
http://nullorempry.jimdo.com/


2012年4月17日火曜日

OFでKinectSDK1.0を使用する方法_01

今回はopenCV2.3.1を用いて表示させている

【インクルード関連】
// 追加のインクルードディレクトリ
C:\Program Files\Microsoft SDKs\Kinect\v1.0\inc
C:\opencv\include

// 追加のライブラリディレクトリ
C:\Program Files\Microsoft SDKs\Kinect\v1.0\lib\x86
C:\opencv\lib

// 追加の依存ファイル
Kinect10.lib
opencv_core231.lib
opencv_imgproc231.lib
opencv_highgui231.lib
opencv_objdetect231.lib


【testApp.h】

#pragma once
// Windows Header Files
#include <ole2.h>// ←COM 開発の基本となるヘッダー

// Kinect Header
#include <NuiApi.h> // ←Kinectの機能を使う際に読み込むヘッダー

// OpenCV Header Files
#include <opencv2\opencv.hpp>
// openFrameworks Header Files
#include "ofMain.h"

#define CAMERA_WIDTH 640
#define CAMERA_HEIGHT 480

class testApp : public ofBaseApp{

public:
void setup();
void update();
void draw();

void keyPressed  (int key);
void keyReleased(int key);
void mouseMoved(int x, int y );
void mouseDragged(int x, int y, int button);
void mousePressed(int x, int y, int button);
void mouseReleased(int x, int y, int button);
void windowResized(int w, int h);
void dragEvent(ofDragInfo dragInfo);
void gotMessage(ofMessage msg);
void exit();

INuiSensor *kinect;
};

【testApp.cpp】
bool capFlag = false;
HANDLE cameraEvent;
HANDLE cameraHandle;
std::string windowName;
IplImage *img_camera = 0;


//--------------------------------------------------------------
void testApp::setup()
{
int nCount = 0;
HRESULT hr = S_OK;
hr = NuiGetSensorCount(&nCount);
hr = NuiCreateSensorByIndex(0, &kinect);
//kinectの初期化
hr = kinect->NuiInitialize(NUI_INITIALIZE_FLAG_USES_COLOR);
hr = S_OK;
if(hr!=S_OK){
std::cout << "failed NuiInitialize\n";
while(1){};
exit();
}
cameraEvent = CreateEventW(0, TRUE, FALSE, 0); // ←CreateEvent()のままだと通らないので、直接CreateEventW()を呼び出す必要がある(名前空間の関係か)
hr = kinect->NuiImageStreamOpen(NUI_IMAGE_TYPE_COLOR, NUI_IMAGE_RESOLUTION_640x480,
0, 2, cameraEvent, &cameraHandle);
if(hr!=S_OK){
std::cout << "failed NuiImageStreamOpe\n";
exit();
}

//OpenCVの初期設定
img_camera = cvCreateImage(cvSize(CAMERA_WIDTH, CAMERA_HEIGHT), IPL_DEPTH_8U, 4);
cvNamedWindow("Camera View", CV_WINDOW_AUTOSIZE);


long angle = 0;
kinect->NuiCameraElevationSetAngle(angle);
}

//--------------------------------------------------------------
void testApp::update(){

}

//--------------------------------------------------------------
void testApp::draw(){
HRESULT hr = S_OK;
capFlag = true;
while(capFlag == true){
WaitForSingleObject(cameraEvent, INFINITE);

NUI_IMAGE_FRAME pImageFrame;
hr = kinect->NuiImageStreamGetNextFrame(cameraHandle, 0, &pImageFrame);
if(hr!=S_OK){
std::cout << "failed NuiImageStreamGetNextFrame\n";
exit();
}
INuiFrameTexture *pTexture = pImageFrame.pFrameTexture;
NUI_LOCKED_RECT LockedRect;
pTexture->LockRect(0, &LockedRect, NULL, 0);
BYTE* pBuffer = (BYTE*)LockedRect.pBits;
memcpy(img_camera->imageData, pBuffer, img_camera->imageSize);
cvShowImage("Camera View", img_camera);

kinect->NuiImageStreamReleaseFrame(cameraHandle, &pImageFrame);
int key = cvWaitKey( 10 );
        if ( key == 'q' ) {
            capFlag = false;
}
}
exit();
}
//--------------------------------------------------------------
void testApp::exit()
{
capFlag = false;
kinect->NuiShutdown();
CloseHandle(cameraEvent);

cvReleaseImage(&img_camera);
cvDestroyAllWindows();
}

2012年4月14日土曜日

Corelocationあれこれ


iPhoneアプリで位置情報と地図を使う
ための基礎知識


http://www.atmarkit.co.jp/fsmart/articles/geoios01/01.html

OFxiPhoneでデジタルコンパス
http://openframeworks.jp/forum/topic.php?id=26



2012年4月12日木曜日

ofxSimpleGuiToo導入

ofxAddons
http://ofxaddons.com/
上記のサイトから
ofxSimpleGuiToo
ofxMSAInteractiveObject
の2つのアドオンを入手。

追加のインクルードディレクトリの操作。


するとエラーが出る
fatal error C1083: include ファイルを開けません。'cairo-features.h': No such file or directory

'cairo-features.h'をインクルードしてあげる。
パスは
of_preRelease_v007_vs2010\libs\cairo\include\cairo


2012年4月11日水曜日

http://wisdomsoft.cloudapp.net/203.html 魚拓

C++ アプリケーションから Kinect を制御するプログラムを開発するために、この場では Visual Studio を使ったビルドのための設定方法を紹介します。
注意:この文書は古いバージョンです。 この文書は Kinect for Windows SDK Beta 2 を解説しています。Kinect for Windos SDK 1.0 の記事はこちらです。

ヘッダとライブラリの設定

Kinect for Windows SDK には C++ で開発するネイティブの Windows アプリケーションのためのヘッダファイルとインポートライブラリである LIB ファイルを含んでいます。これらのファイルをプロジェクトに設定し、適切にリンクさせることで Kinect デバイスの機能にアクセスできます。
Kinect for Windows SDK がインストールされているフォルダは環境変数 %KINECTSDK_DIR% に設定されています。自分の環境では、なぜか \ 記号が重複している部分があり正しいパスになっていなかったため、手動で環境変数を修正しました。パスがわからない場合、インストール先(標準で C:\Program Files\Microsoft SDKs\Kinect\v1.0 Beta2)直接開けばパスを確認できます。
この Kinect for Windows SDK がインストールされたフォルダ内に、各種ヘッダファイルが配置されている inc フォルダと LIB ファイルが配置されている lib フォルダがあります。これらのフォルダのパスを Visual Studio に設定する必要があるので、覚えておいてください。
まず、この場では最も単純なコンソールアプリケーションを例に設定します。Visual Studio のファイルメニューから「新規作成」→「プロジェクト」を選択し、「新しいプロジェクト」ダイアログボックスを表示してください。左側の「インストールされたテンプレート」リストから「Visual C++」項目を選択し、中央に表示されているリストの「Win32 コンソールアプリケーション」を選択します。プロジェクトの種類が違っても、後述する設定手順は同じです。
図1 Win32 コンソールアプリケーションの新規作成
Win32 コンソールアプリケーションの新規作成
「名前」テキストボックスに任意のプロジェクト名を入力して「OK」ボタンを押してください。
続いて「Win32 アプリケーション ウィザード」ウィンドウが表示されるので、左側の「アプリケーションの設定」ラベルをクリックし、表示された設定項目のうち「追加のオプション」内の「空のプロジェクト」チェックボックスをチェックしてください。物事を単純にするために、ファイルが何もない状態の空のプロジェクトとして作成します。
図2 アプリケーションの設定
Win32 コンソールアプリケーションの新規作成
「完了」ボタンを押してプロジェクトの準備は終了です。
続いて、プロジェクトに Kinect for Windows SDK のヘッダファイルとインポートライブラリの参照設定が必要です。作成されたプロジェクトのプロパティを開いてください。左側のツリーから「構成プロパティ」→「VC++ ディレクトリ」項目を選択します。
図3 ディレクトリの追加
Win32 コンソールアプリケーションの新規作成
ビルド時にコンパイラやリンカが検索するディレクトリを設定できるので「インクルード ディレクトリ」コンボボックスの「<編集...>」項目を選択し、「インクルード ディレクトリの設定」ダイアログボックスで Kinect for Windows SDK のヘッダファイルが配置されているパスを追加します。
図4 インクルード ディレクトリの設定
Win32 コンソールアプリケーションの新規作成
同様に「ライブラリ ディレクトリ」にインポートライブラリのパスを設定します。
図5 ライブラリ ディレクトリの設定
Win32 コンソールアプリケーションの新規作成
Kinect for Windows SDK の lib フォルダ内には x86 フォルダと amd64 フォルダがあり、32 ビットでコンパイルする場合は x86 フォルダ内の LIB ファイルを、64 ビットでコンパイルする場合は amd64 フォルダ内の LIB ファイルをリンカに設定します。Visual C++ は既定で x86 コンピュータ用の(32 bit ネイティブ)コンパイラが用いられるため、Kinect for Windows SDK も x86 用の MSRKinectNUI.lib ファイルを使いましょう。
以上の設定が終われば、次に MSRKinectNUI.lib インポートライブラリを隣家に設定します。再びプロジェクトのプロパティに戻って「構成プロパティ」→「リンカー」→「入力」を選択してください。表示された設定項目の「追加の依存ファイル」コンボボックスを開いて「<編集...>」項目を選択してください。
図6 インポートライブラリの設定
Win32 コンソールアプリケーションの新規作成
「追加の依存ファイル」ダイアログボックスが表示されるので、テキストボックス内に MSRKinectNUI.lib と入力します。
図7 追加の依存ファイル
Win32 コンソールアプリケーションの新規作成
以上で Kinect for Windows SDK を C++ アプリケーションで利用するための設定は終了です。あとは、実際にコードを書いてビルドするだけです。

http://wisdomsoft.cloudapp.net/231.html 魚拓

ヘッダとライブラリの設定

Kinect for Windows SDK には C++ で開発するネイティブの Windows アプリケーションのためのヘッダファイルとインポートライブラリである LIB ファイルを含んでいます。これらのファイルをプロジェクトに設定し、適切にリンクさせることで Kinect デバイスの機能にアクセスできます。
Kinect for Windows SDK がインストールされているフォルダは環境変数 %KINECTSDK10_DIR% に設定されています。パスがわからない場合、インストール先(標準で C:\Program Files\Microsoft SDKs\Kinect\v1.0)を直接開けばパスを確認できます。
この Kinect for Windows SDK がインストールされたフォルダ内に、各種ヘッダファイルが配置されている inc フォルダと LIB ファイルが配置されている lib フォルダがあります。これらのフォルダのパスを Visual Studio に設定する必要があるので、覚えておいてください。
まず、この場では最も単純なコンソールアプリケーションを例に設定します。Visual Studio のファイルメニューから「新規作成」→「プロジェクト」を選択し、「新しいプロジェクト」ダイアログボックスを表示してください。左側の「インストールされたテンプレート」リストから「Visual C++」項目を選択し、中央に表示されているリストの「Win32 コンソールアプリケーション」を選択します。プロジェクトの種類が違っても、後述する設定手順は同じです。
図1 Win32 コンソールアプリケーションの新規作成
Win32 コンソールアプリケーションの新規作成
「名前」テキストボックスに任意のプロジェクト名を入力して「OK」ボタンを押してください。
続いて「Win32 アプリケーション ウィザード」ウィンドウが表示されるので、左側の「アプリケーションの設定」ラベルをクリックし、表示された設定項目のうち「追加のオプション」内の「空のプロジェクト」チェックボックスをチェックしてください。物事を単純にするために、ファイルが何もない状態の空のプロジェクトとして作成します。
図2 アプリケーションの設定
Win32 コンソールアプリケーションの新規作成
「完了」ボタンを押してプロジェクトの準備は終了です。
続いて、プロジェクトに Kinect for Windows SDK のヘッダファイルとインポートライブラリの参照設定が必要です。作成されたプロジェクトのプロパティを開いてください。左側のツリーから「構成プロパティ」→「VC++ ディレクトリ」項目を選択します。
図3 ディレクトリの追加
Win32 コンソールアプリケーションの新規作成
ビルド時にコンパイラやリンカが検索するディレクトリを設定できるので「インクルード ディレクトリ」コンボボックスの「<編集...>」項目を選択し、「インクルード ディレクトリの設定」ダイアログボックスで Kinect for Windows SDK のヘッダファイルが配置されているパスを追加します。
図4 インクルード ディレクトリの設定
Win32 コンソールアプリケーションの新規作成
同様に「ライブラリ ディレクトリ」にインポートライブラリのパスを設定します。
図5 ライブラリ ディレクトリの設定
Win32 コンソールアプリケーションの新規作成
Kinect for Windows SDK の lib フォルダ内には x86 フォルダと amd64 フォルダがあり、32 ビットでコンパイルする場合は x86 フォルダ内の LIB ファイルを、64 ビットでコンパイルする場合は amd64 フォルダ内の LIB ファイルをリンカに設定します。Visual C++ は既定で x86 コンピュータ用の(32 bit ネイティブ)コンパイラが用いられるため、Kinect for Windows SDK も x86 用の MSRKinectNUI.lib ファイルを使いましょう。
以上の設定が終われば、次に MSRKinectNUI.lib インポートライブラリを隣家に設定します。再びプロジェクトのプロパティに戻って「構成プロパティ」→「リンカー」→「入力」を選択してください。表示された設定項目の「追加の依存ファイル」コンボボックスを開いて「<編集...>」項目を選択してください。
図6 インポートライブラリの設定
Win32 コンソールアプリケーションの新規作成
「追加の依存ファイル」ダイアログボックスが表示されるので、テキストボックス内に Kinect10.lib と入力します。
図7 追加の依存ファイル
Win32 コンソールアプリケーションの新規作成
以上で Kinect for Windows SDK を C++ アプリケーションで利用するための設定は終了です。あとは、実際にコードを書いてビルドするだけです。

Kinect sdk もろもろ情報

【SDK_2012】

定さんが作ったkinectをOFで使うアドオン
https://github.com/sadmb/ofxKinectNui
インストール後、addonの中に入れて、名前を"ofxKinectNui"に直す。





Kinect for Windows SDK Beta AudioCaptureRaw チュートリアル (C++)


http://www.facultyresourcecenter.com/curriculum/TH/pfv.aspx?ID=8924&c1=th-th&c2=TH
Audioを使う場合のための情報。

C++ アプリケーションから Kinect を制御するプログラムを開発するために、この場では Visual Studio を使ったビルドのための設定方法を紹介します。
http://wisdomsoft.cloudapp.net/231.html
ネイティブでsdk1.0を使う場合は、これがいいかも。ちょっと試してみようと思う。





【SDK_2011】


KINECT for Windows SDKをVC++ Nativeで使う(基礎)


http://blogs.msdn.com/b/hirosho/archive/2011/06/27/kinectsdkwithvcppnativebasic.aspx
なんか使えそうな情報かもしれない。

と思ったが、旧バージョンのSDKやないか!!!

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月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で作る際には結構便利だったりしますが
そのあたりはまた後ほど紹介しようかと思います。

2012年2月19日日曜日

なんかいろいろ記事

失敗しない映像コンテンツの作り方
http://blog.media.teu.ac.jp/2012/02/18/1469/

70年代から「セクシーロボット」を描く空山基の個展、ナンヅカにて開催! 
http://white-screen.jp/?p=6860

2012年2月8日水曜日

ざっき

このアイデアいいかなって思って調べてみたら絶対同じような事はもう既にやられている。

そういうものから差別化を計ろうとすれば、学術的要素もしくは圧倒的なセンス、巧みの技みたいなのが必要になってくる。

何かと何かの組み合わせによるイノベーションとかもあるかなー。

だったら組み合わせてみるかー。



うーむ。

とりあえずは、テンプレとモデル動かすシステムを作るのが先決かなー。

システムの概要だけ見せて「だったらこんな事ができるんちゃうかな」という大枠を掴む。今まで通り。

可能技術の最低範囲を広げておきたい。



やっぱ明確な完成像をアイデア段階で想像するのは難しいなぁ。

いいアイデア出てもテクニカルな部分がネックになってくるからなー。

それが全然できない。

完成像のイメージングとコンセプトメイキングはやっぱり苦手だな。

脳はデザイナータイプではなく、エンジニアタイプなのかもな。


でも、考えるの好きやから楽しみながらアイデア練れるっていう性分なのが唯一の救いやな。

2012年1月25日水曜日

2012年1月5日木曜日

JobHunt

今の心境を少し。


ポートフォリオ作ってて単純に思う事。

「俺って何がしたいんやろう」というよく就活生が口にしがちな言葉が出てくる。

自己分析が足りないと言われるかもしれないが、自己分析なんて一人でやっても答えなんて出てきやせんでしょ。



今まで、「ある環境に身を置いて、そこで自分の力を発揮していく」という感じで色んなものに手を出してきたと思う。

つまり「予め課題や問題や依頼があって、それに合わせて作っていく」というスタイルになると思う。


だから、今回もそうしようと思う。簡単なことだ。

早く作って色んな人に見せて、フィードバックをガンガン入れていくっていうスタイルの方が自分に絶対合ってる。

現段階のポートフォリオは、やってきた事をつらつらと総ざらいしたものなので、これを他人に見てもらって、そこで得られる意見とか生まれる会話の中からどんどんフィードバックしていけばいいと思う。

いいポートフォリオを作るためではなく、これからの就活の方向性を決めるために。

自分のやっている事をうまくしゃべるための練習にもなるんじゃないかな。

「ポートフォリオ作ったんですけど、見て頂けませんか?」とか
「○○という企業に応募するんですけど、こんなんで大丈夫ですか?」とか

「作ってみたんですけど、正直何がしたいんかよくわかんないんすよね」みたいな感じでもいいんじゃないかな最初は。
いっそ「こんなんでひろってくれるとこありますかね?」みたいなんでもいいんじゃね笑

自分の場合、映像業界かWEB業界かゲーム業界あたりが目標になるから、最終的には戦略的にならなあかん。

けちょんけちょんに言われて精神的にまいってしまう事もあるかもしれんけど、そんときはそんとき。もっかいやり直せばいい。不屈の精神力で頑張る。根性だけは誰にも負けたくない。



人の意見を取り入れて、問題を見つけて改善していく。ただそれだけのシンプルな事。

周りには優秀な人がたくさんいるのだから、ガンガン意見を拝借して自分の形を作っていこうと思う。


わりとスッキリとした答えになった。考えるよりはまず行動せねば。

軽快なフットワークと拙速。これが大事。