スクラッチ、作るだけじゃないよ

久しぶりの、オリジナルiPhoneアプリが出来ました。

その名も「ScratchMaker
二枚の写真を重ね合わせて、オリジナルのスクラッチカードを作るアプリです。

似ようなアプリはStoreにありますが、このアプリのポイントは、作ったカードをメールでみんなに送れるところ。
あっと驚くスクラッチカードを作って、友だちや恋人を楽しませることができます。

ホントはTwitterでシェアできるようにしたかったんだけど、フォーマットが変換されるみたいで、うまくシェアできなかったのよね・・・。

それは宿題として、「ScratchMaker」。ぜひおためしください。

最速?

ちょっと前になりますが、自分が制作協力したiPhoneアプリがリリースされました。

その名も、「最速QR

「最速」なんて大層な名前がついちゃってますが、
・QRを読む
・URLならSafariを起動
・それ以外なにもなし
という尖った機能のため、確かに早くて快適です。

「それしか機能が無いなんて、なんに使うんだい?」
という声が聞こえて来そうですが、例えばアプリマガジンなどに乗ってるQRを読むのに便利とか、以外と使い道があったりします。

というわけで「最速QR」。是非お試しを。

「もしねこ」バージョンアップ

「わけのわからないアプリ」として、一部の方に人気がある「もしねこ」が、ねこを追加してバージョンアップ。

無料なので、皆様ぜひ。

CIDetectorで顔認識

あまり使われてないようだが、iOS5から顔認識機能が搭載されている。
ロック解除向けの認証という使い方は出来ないようだが、「顔」を認識するレベルはなかなか高い。より進化して、「認証」レベルに使えるようになると実用的になる。

さてその顔認識。SDKとしてAPIも提供されている。
それが「CIDetector」だ。

CIDetectorの使い方はいたって簡単。
例えば、カメラやアルバムなどImagePickerからのデータを利用するなら

-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSDictionary *detectorOptions = [[NSDictionary alloc] initWithObjectsAndKeys:CIDetectorAccuracyHigh, CIDetectorAccuracy, nil];
faceDetector = [[CIDetector detectorOfType:CIDetectorTypeFace context:nil options:detectorOptions] retain];
[detectorOptions release];

UIImage* originalImage;
originalImage = [info valueForKey:UIImagePickerControllerOriginalImage];

NSArray *features = [faceDetector featuresInImage:originalImage.CGImage];
for ( CIFeature *face in features ) {
 face.bounds.size.width これが幅
 face.bounds.size.height これが高さ
 face.bounds.origin.x  これが中心x
 face.bounds.origin.y  これが中心y
}

[faceDetector release];

上記のように、CIFeature型の配列が取得出来るので、1つ1つ情報を取得すればいい。
これを利用して、顔を置き換えているのが「もしねこ」というわけだ。


ちなみに、CIDetector Class Referenceを見ただけは書いてないのだが、featuresInImageの戻りは、CIFeatureを継承したCIFaceFeatureだったりする。
なので、
NSArray *features = [faceDetector featuresInImage:originalImage.CGImage];
for ( CIFaceFeature *face in features ) {
 face.bounds.size.width これが幅
 face.bounds.size.height これが高さ
 face.bounds.origin.x  これが中心x
 face.bounds.origin.y  これが中心y
 face.hasLeftEyePosition 左目座標ありなし
 face.hasRightEyePosition 右目座標ありなし
 face.hasMouthPosition 口座標ありなし
 face.leftEyePosition 左目座標
 face.rightEyePosition 右目座標
 face.mouthPosition 口座標
}
こんな感じで、顔のパーツ座標が取得出来る。
なのでこれを利用すると、結構色々なことができると思う。

つけまつげをつけてみたり、アヒル口にしてみたり。目と口のトライアングルはそう変わらないので、ある程度の顔認証に利用したり。
アイデア次第で、面白いアプリが作れると思うので、試してみてはどうだろうか?

また、Appleのサンプル「SqareCam」が、より実用的な使い方をしているので、参考になると思う。

数字画像をランダム表示

数字画像をランダム表示するiOSプログラム。

基礎と言えば基礎。
ツッコミ歓迎。

ねこになる?

「とにかく猫アプリ」シリーズ第2弾。

Icon2x
「もしあなたがねこになったら」略して「もしねこ」がリリースされました。
パチパチパチパチ。

なかなか早いリリースサイクルでしょ?

Screenshot_20120331_195855
使い方は簡単。アプリを起動して「ねこになる」ボタンを押して、顔が写るように撮影。


Screenshot_20120331_200941
すると、顔認識してくれて、猫に変身と言うしくみ。


Screenshot_20120402_104306
複数人も猫にしてくれるので、グループで撮影すると面白いですよ。

無料なんで、是非ダウンロードしてみてくださいね。


猫はいいよー。

はい。iPhoneアプリ宣伝の時間です。

Icon2x
ねこたっち」がリリースされました!

「とにかく猫アプリ」シリーズ第1弾と銘打って、ちゃんと第2弾も準備中(そこまでしか無いけどw)


アプリのルールは簡単。
Screenshot_game
画面左上で指定される「ねこ」と、同じ画像をタップして消して行き、全て消すとクリア。
指定される猫の順番は同じだから、記憶すればタイムアップが期待出来る。

というわけで、某アイドルアプリのリソースを入れ換えただけですなw。

こちらは無料(+ネコ課金)なので、まずはお試しを。


cocos2d-xメモ

iPhoneの画像リソースを使うことが多いと思われるcocos2d-x。

320x480、もしくは640x960のベースに、Androidに移植するには、
COCOS2DX_ROOT/任意のプロジェクト/android/jni/helloworld/main.cpp

view->create(480, 320);
を、有効にすれば良い。

縦画面の場合は
view->create(320, 480);
だ。

これで、画面を自動調整してくれるようだ。

SKEアプリ

すっかり紹介が遅くなったんですが、新しいiPhoneアプリ出てます。

Icon2xIcon2x_3Icon2x_4

名古屋を拠点に活動するアイドルグループ、「SKE48」のゲームアプリ。
TOUCH!SKE48 -チームS 選抜編-
TOUCH!SKE48 -チームK II 選抜編-
TOUCH!SKE48 -チームE&研究生 選抜編-

の3本が、リリースされてます。

推しメンの20種類の表情がパネルになって並んでいます
そのなかから指定された表情を、すばやく見つけてタッチ!
正しくタッチするとパネルが消えて、全て消すとクリア。
Game Center対応で、タイムを競えます。

ぜひ、ご購入下さい。

cocos2d-xメモ

忘れちゃうのでここにメモする。

縦固定にするのは
●AppDelegate.cpp
bool AppDelegate::applicationDidFinishLaunching()
{
// initialize director
CCDirector *pDirector = CCDirector::sharedDirector();
pDirector->setOpenGLView(&CCEGLView::sharedOpenGLView());

// enable High Resource Mode(2x, such as iphone4) and maintains low resource on other devices.
//pDirector->enableRetinaDisplay(true);

// sets portrait mode
pDirector->setDeviceOrientation(kCCDeviceOrientationPortrait); <--ここに追加


●RootViewController.mm(iOS)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// return UIInterfaceOrientationIsLandscape( interfaceOrientation );
return ( interfaceOrientation == UIInterfaceOrientationPortrait ); //縦向き

// switch to this line if you want to set portrait view
// return UIInterfaceOrientationIsPortrait( interfaceOrientation );
}

Andoridの場合は、manifestを変える必要ありかな?。


より以前の記事一覧

Ad


2017年4月
            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            

最近のトラックバック

無料ブログはココログ