Powered by Google

2010年9月27日月曜日

創作活動日記 iPhoneアプリ開発編3

フレームワーク使用の前に、まだ知っておくべき事項があるので
今回は開発言語のObjective-Cの特徴について

新規プロジェクトを作成するとプロジェクト名.m、プロジェクト名.hというファイルが自動生成されます。

それぞれのファイルはデフォルトでコードが書かれていますので今までのプログラミング経験によって、人それぞれ、C言語に似ている、さっぱりわからん、などの感じ方は違うと思います。

拡張子「.h」ファイルは定義記述するヘッダファイルとなります。
拡張子「.m」ファイルは実際の処理を実装するファイルとなります。

Objective-Cソースコードには「@」という、他の言語では見慣れない記号があります。
これはコンパイラディレクティブというもので、クラスの宣言や実装をコンパイラに対して明示するために使用します。

@interfaceで始まり、@endで終わるというのが基本形式です。

用途別にコンパイラディレクティブは用意されていますが、たとえば

@interface ・・・ クラスやインターフェースの定義を開始
@implementation ・・・ クラス実装の開始
@protocol ・・・ プロトコル宣言の開始
@end ・・・ クラス、プロトコルの宣言・定義を終了

@private ・・・ インスタンス変数の有効範囲をクラス内に限定
@protected ・・・ インスタンス変数の有効範囲をクラス内と派生クラス内に限定
@public ・・・ インスタンス変数の有効範囲について制限なし

その他にも例外処理をサポートする@try、@throw、@catchなど排他処理の制御に@synchronizedなどあります。その辺りは実装する上で調べてみてください。

クラスの定義は次のような構造をとります。

@interface クラス名 : 親クラス名
{
インスタンス変数宣言
}
メソッド宣言
@end


クラスの実装については
@@implementation クラス名
メソッド定義
@end

のように実装します。

他にもメソッドの呼び出し方やプロパティについてなどの「-」記号によるインスタンスメソッドなどの理解が実装する上での前提条件として必要になります。

とりあえず今日はここまで。

2010年9月24日金曜日

ジガゾーパズル

うわさのジガゾーパズルをやってみました。

ジガゾーパズルは300ピースの組み合わせで地球上の誰の顔でも作れる画期的なパズルです。Village Vanguardにて1890円で購入しました。
パズルのピースにはうっすらと模様がプリントされています。このパターンがプリントされた解答図を見ながらパズルを組み立てることになります。

解答図はサンプルの6種類の他に、写メールを送ることで自分自身の顔など好きなパズルも作れます。
早速作ってみます。白と黒の汎用的なパターンの300種類のピースの組み合わせでどんな顔でも作れると聞くとワクワクします。

しかもビックリしたことに、300ピース全部使いきってパズルが完成します。

パズルはバラせば色んな画像で何度でも楽しめます。
完成まで30分くらい。このパズルが汎用的なピースだけでできてしまうとはオドロキです。

作ってみると分かるのですが、単純に濃度だけで計算して並べているのではなく、黒と白のグラデーションの境界をうまく利用して目や鼻のスジを表現しています。

そういえば、Flickrの写真をたくさん集めて一つの画像を作るという技術を見たことを思い出しました。アレと同じ技術ですね。スゴいっと思ったけれど枯れた技術ですね。

でも、モノとして出来上がる楽しさはかえがたいので、買って損ナシです。

次は自分の写真でやってみようかな。
Posted by Picasa

2010年9月20日月曜日

謎の技術

謎の技術

それはニコニコ動画に付けられるタグの一つである。

謎の技術とは (ナゾノギジュツとは)
謎の技術とは、どうやって作ったか分からないハイクオリティな映像作品に付けられるタグである。
また、コメントが不自然な動作をする動画にも付けられる。
誰か俺にも分かるように説明してくれ。
(ニコニコ大百科より抜粋)


このタグが付けられた(中には付いてないモノもありますが)動画の中で、映像的・技術的に興味を持ったものを備忘録をかねていくつか紹介したいと思います。



エイプリルフールに数学教師がやったジョーク

先日、映像を作成するための試みをやってみたりしたこともあり、こういう動画は気になります。
アイデアと根気があればこういう面白いのを作ってみたい。



Wii リモコンで頭の位置を認識する VR システム

画面の外の人間の動きに連動して3Dに動く画面がおもしろい。
任天堂3Dは外部機器無しでこういう感じに見えるのだろうか?



アッチの世界を覗ける窓を作ってみた

上記の関連動画。
こういう形にすれば大きなお友達がお金を落としてくれそうです。



ARToolKitで距離を表示してみた

AR系。表示がカッコ良い。
ActionScriptならARとセンサー類との連携が比較的簡単に出来るようなので、いずれこういうのも作ってみたい。
ARの欠点はカメラを通してでないと見れないこと。



【ARカプセル】ついにモニタから出てきてくれた (裸眼AR)

こちらもAR系。
制限や機器の準備は必要なものの、カメラを通さずに映像が見れるところが良い。



謎の技術「双方向レーザー」

猫が喜びそうなレーザー。
子供や年配の方でも遊べるゲームが作れそう。



炊き合わせ作ってみた【料理】

料理系。色々と感動したのでついでに張ってみる。


こういう動画を見ていると創作意欲が刺激されます。
個人的にはARを用いたモノを何か創ってみたいですね。
面白そうなアイデアありませんか?

2010年9月15日水曜日

手作りカードゲーム

本日、ついに自作のカードゲームが届きました。いかに少ないカードで簡単に面白いものが作れないか、お風呂で考えたのがこのカードゲームDeadCardでした。

トランプにシールを張って作った試作1号、ブランクカードを買ってプリンタで印刷した試作2号、どちらもゲームとして内容は完成していましたが、モノとしてのクオリティがどうしても工作レベルで止まっていました。

これまでも手作りでカードを制作したことは何度かあったのですが、いつも商品レベルに達することは出来ませんでした。

しかし、今回ついに、商品として買ってきたといってもおかしくない程のクオリティのものができました。
カードは moo.com で注文しました。

ここはミニ名刺を作れることで有名になったサイトですが、ミニ名刺以外にも、普通の名刺やステッカーも注文できます。

moo.com は、以前無料のキャンペーンもあったのですが、今はそれほど美味しいキャンペーンはありませんでした。

しかし、10枚8ドルのおためし注文は、私にはちょうどよいプランでした。10枚で遊べるカードゲームを作っていたからです。
9/1に注文して9/15に届いたので、約2週間かかりました。

イギリスからの郵送なのに、2週間で届き、8ドル。すごくお手頃です。また利用しようと思います。

2010年9月13日月曜日

青ひげとの戦い

突然ですが、皆さん青ひげはお好きですか?

私は嫌いです!!

顎の部分はいいんです。口の上の青ひげが許せないんです!!

長年、髭が濃い目の私は青ひげと戦ってきました。

奴は中々手強いです。ワンピースの白ひげ並みに手強いです。

剃っても剃っても奴らはニョキとちょっとだけ残って出ています。

ほんとニョキっと出る。

この戦いに勝利すべく対処法として思いついたのは

 ①超高級深剃りシェーバーで頻繁に剃る
 ②あきらめて髭をのばす
 ③脱毛をする


などなど。


検討:①について

とりあえずビックカメラで見てみると、
とにかく値段が高い

4万~5万はする。
この値段に見合う成果が本当にあるのか。


体験コーナーがあるので、わざわざ髭を伸ばして試してみました。

結果、自宅で使用しているシェーバーよりは、触った感触はるかに肌が ツルぺたになりました。しかし鏡で見るとやはり口の部分が薄青くなります。

この出来では、この値段に見合う結果とは思えず、購入は断念しました。

お薦め度は5段階で2というところでしょう。


検討:②について
髭をのばしてわ?ということで考えましたが、私の髭の生え方に問題がありました。

それは鼻の真下あたりは髭が薄いということです!!

きれいに生えそろいません。うーん。これはかっこ悪い。


かっこよく髭をのばせるなら青ひげともわざわざ格闘する 必要もないなとおもったのですが。

そこで、プロピアの付け髭なるものがあることを知り、購入。これはいいかも。

早速付けてみました。 爆笑!!

自分の顔をみて爆笑してしまいました。似合わない。

これは無理だとあきらめました。私は髭が似合う顔立ちではないらしいです。

しかし髭の似合う方でしたら、伸ばすか、この付け髭など使えばいい感じには
なると思います。お薦め度は 5段階で3くらいあるでしょう。

検証:③について

レーザ脱毛という手段は思いついたのですが、そこまでして
青ひげ何とかしたいか?と言われ、少し逡巡。

費用もバカ高く、病院でやってもらいヒゲとなると10万以上はかかるらしい。
そんなお金はさすがにない。。。


では自宅で出来るようなレーザ脱毛マッシーンはないか探してみましたがヒゲに効くような強力なものはないようです。

もう多少の青ひげは我慢してマメに剃っていくしかないかなと思っていたときに凄いものを発見!!

それはビックカメラで男性用シェーバをみて、ふと女性用コーナーを見たときにありました。

女性用除毛シェーバの「ソイエ」(写真参考)です!!

本来は女性の手足のムダ毛処理用のもののようです。

こいつでいいんじゃないの?

と思いました。

注意書きには肌の弱い箇所のご使用は避けてください となっているのでヒゲはやヴぁいんじゃないの?と思いつつも、好奇心に負けて購入して試してみました。

こいつは毛を剃るんではなく、毛をひっこぬきます。

グリングリン回る先にヒゲをあてるのには勇気がいりました。
しかし青ひげに勝利するには勇気が必要です。えいやっ精神であてました。

ぎゃー!!!

めちゃめちゃ痛いです。というか初回は血だらけになりました。w 
口の上の部分全て除毛するには相当根性がいります。

しかし、その結果といったら驚嘆です。肌は触ってもツルぺた。あの青かった部分もほぼ青くない。
毎日髭剃りが必要だったのが、皮膚したのヒゲから抜くので3日程度は持つようになりました。

最初の3回くらいは血だらけになって、抜いた後は腫れてえらいことになります。

でも1ヶ月くらいして慣れてきますと痛みも大したことなく(それでも痛いですが)、血も出ず抜けやすくなります。今では抜けやすくなったんで、普通の毛抜きで手で抜いています。(既に1年以上前から)

お薦め度は5段階で5です。


私はPnasonicの回し者ではないですが、青ひげでお悩みの方にはPanasonicの「ソイエ」はかなり強力なツールといえます。

ヒゲ剃りようではなく、しかも女性用ということで皆さん使用されているような方はあまりいないでしょうが4,5万もする深剃シェーバーを買うよりは、はるかにコストパフォーマンスはいいでしょう。
※肌の弱い人はよく考えた方がいいかと思います。

青ひげでお悩みの方。上記参考にして頂いて、青ひげとの戦いの健闘を祈ります。

2010年9月6日月曜日

創作活動日記 iPhoneアプリ開発編2

iPhone SDKの導入について

ハードウェア環境が用意できたので、次は開発用ソフトウェアのiPhoneSDKを
インストールします。

まずは Apple developer 登録を行います。

http://developer.apple.com/programs/register/

にアクセスして、手順に従って入手します。

実機を使った動作検証にはiPhoneデベロッパプログラムへ登録が必要と
なりますが、年単位でのライセンスのようなものであり、有効期間があるため、 開発がある程度完了し、実機検証となる直前に登録するのが賢いです。

ちなみに年間参加費は ¥10,800- です。
※英語ページでは$99 と表示されています。。。
 現状のような円高だと損した気分になります。



「Get started」をクリックする。











登録には「Apple ID」が必要なので、持っていない場合は「Create an Apple ID 」を、 既に持っている場合は「Use an existing Apple ID」を 選択し、指示に従って登録処理を進めます。







Dev Cente の iPhoneをクリックします。









Xcode.3.0.2 and iOS SDK4.0.2 をクリックしてダウンロードします。
ダウンロードした .dmg ファイルをダブルクリックするとPDFファイルと.mpkgというファイルが表示されるので.mpkgをダブルクリックすることでインストールが開始します。






インストーラが起動すると画面の指示に従ってインストールを行うだけです。
完了すれば開発環境の構築が完了です。ついに開発に着手できます。


Xcode and iPhone SDK for SnowLeopard をクリック。
画面の指示に従ってインストールします。









 インストール完了です。











iPhoneSDKパッケージをインストールするとXcodeCocoaTouchInterface Builder
というものが基本的にインストールされます。


Xcodeというのは、アプリケーションを開発するための総合開発環境(IDE)です。
CocoaTouchは、iPhoneのマルチタッチ技術用のフレームワークです。

InterfaceBuilderは、GUIを使用するアプリケーションのインタフェース作成ツールです。

まずはXcodeから使いこなせませんと、開発の一歩を踏み出せませんので
Xcodeから覚えていく必要があります。

Xcodeでは

 ・プロジェクトの管理(ファイルやリソースの世代管理)
 ・コンパイラ
 ・デバッガ
 ・エディタ


が主な機能(私の理解の範囲では)としてあります。


Xcodeを起動しますと左記のような画面となり、
「新規Xcodeプロジェクトを作成」を選択し、プロジェクトを作成します。










新規プロジェクトを作成すると左記のような画面となります。
Xcode以外のその他の総合開発環境(IDE)を使用したことのある方であれば、直感的に操作できるではないかと思います。
画面左側がプロジェクトのグループファイルリスト。
右側上部がグループファイルリストで選択したフォルダ内のファイルリスト。その下が各ソースファイルなどを編集するエディタ部分です。


新規プロジェクトのフォルダ構成としては
Classes、OtherSources、Resources、Frameworks、Products
の5つに分かれています。

それぞれは

「Classes」:
クラスのヘッダーファイルやソースファイルが含まれていて、必要に応じて追加することができます。

「OtherSources」:
プリコンパイルされているヘッダーファイルとmain.mが含まれています。
main.mはアプリケーション実行時に最初に呼ばれるプログラムのことです。

「Resources」:
自動で生成されるXlibファイルが含まれています。
画像や音などiPhoneアプリで使用するリソースをここに配置します。

「Frameworks」:
iPhoneアプリで使うフレームワークが含まれています。必要に応じて追加できます。
          
「Products」:
ビルドして生成された実行ファイルがここに置かれます。




とりあえず、「ビルドして実行」 をクリックしますとiPhoneシミュレータが起動します。
iPhoneシミュレータはiPhone実機そのもののように扱うことができ、左記のようにブラウジングもサクッとできちゃいます






iPhoneアプリを開発するには「Objective-C」という言語を使用します。
しかしながら、Objective-CはC言語を基に作られたオブジェクト指向言語のためiPhone独自のAPIを使うような部分以外についてはC言語(またはC++)で記述することも出来ます。
C言語での開発をされたことがある方にとっては言語的なハードルは、ほとんどないと思われます。


私の方ではC言語での開発経験があるため、Objective-CとC言語の基本構文の違いなどはあまり気にせず、開発を進めながら理解していきたいと思います。


今日はここまで。


iPhoneアプリの醍醐味を味わうためには、CocoaTouchフレームワークを使い倒して覚えていく必要があると考えていますので、次回はその辺りを使用しての実際のソースコードを組んでいく作業を書いていきたいと思います。