.sio2ファイルを書き出すときに設定するオプションと、書き出されたファイルの形式について。(卒論に書けそうなのでネタとして記述w)
2010/09/30
2010/09/29
続・チャプター3
なんとか昨日の時点でテキスト通り、モデリングや照明効果を付け足すことが出来た。
それで完成したモノがこちら。
地球は青かった。。。テッカテカですがw
とりあえず、テカり防止とかの処理は後からやります。
とりあえずこの過程で勉強したことをさらっとまとめて、さっさと.sio2形式で書き出したいと思います。
2010/09/28
チャプター3
Saying Hello to the Blender / SIO2 / iPhone World
前のチャプターの「A simple OpenGL Demo」については後日(もしくは今日?)、先生と話しながら読み進めていきます。
なんせOpenGLだけではなく行列の知識も不足しがちなので1人じゃどうしよもないんです。
という訳で!!
今日は実際にBlenderに触れながらSIO2の使い方を勉強していきます。
2010/09/27
チャプター2
Introducing Graphics Programming in SIO2
そういや前回チャプターのタイトル書いてなかった。
これが有るか無いかではかなり分かりやすくなりますわなw
今後、気をつけます。
それと、ブログの記事の本文を分ける仕様にしてみました。
投稿が増えてくると重たくなりそうなので。。。
これも一種のユニバーサルデザイン?w
さて。
余談はこれくらいにしておきますか。
そういや前回チャプターのタイトル書いてなかった。
これが有るか無いかではかなり分かりやすくなりますわなw
今後、気をつけます。
それと、ブログの記事の本文を分ける仕様にしてみました。
投稿が増えてくると重たくなりそうなので。。。
これも一種のユニバーサルデザイン?w
さて。
余談はこれくらいにしておきますか。
チャプター1まとめ
前回の投稿が中途半端だったのは、その日にメンド臭くなって途中放棄したわけではない。
…まぁウソなんだが。
ひとまず、チャプター1で記述してある内容についておさらい&まとめてみようと思います。
このチャプターはXcode、Blender、SIO2というiPhoneで3Dアプリケーションを作成する際の三種の神器の紹介。このソフトはこうっいたもので云々と、大まかな説明とインストール方法について記述してある。
XcodeとBlenderはすでに知識として知っているところがほとんどなので、ここでは特に取り上げません。日本語のサイトでもココなんかよりよほど秀逸なサイトが勢ぞろいなのでそちらを参照してね。
オレにとって重要なのはSIO2の記述。
SIO2ってのはBlenderで作ったモデルをiPhone上で動かすエンジンで、更に搭載されているライブラリを用いることで、そのモデルに様々物理計算や特殊効果も適用できちゃうスーパーなツールらしい。
そして、SIO2を使って開発するためには公式サイトからDLしたSIO2のファイルに含まれる「テンプレート」と呼ばれるXcodeのプロジェクトににゴリゴリとコードを記述していくとすげー楽ちん。
なぜなら、そのテンプレートには既にSIO2で使える様々なライブラリが追加されていて、「Other Source -> template.mm」にコードをゴリゴリ記述するだけでそのライブラリを使えてしまうからだ。つまり、プロジェクトのメインループとなるのがtemplate.mmなのだ。
この本では主に、このtemplate.mmにコードを記述してく手法で開発プロジェクトのサンプルを紹介するそうだ。
他にもSIO2のファイル群には実行するだけで起動するアプリケーションも数多く含まれていて、それだけでもSIO2のスゴさを確認することが出来るそーな。
確かに、赤いお猿さんや炎が出てきたり、仮想空間を移動できたりとなかなかすげーよSIO2。
ひとまずこんな所でチャプター1は終了。
画像使ってないから見にくい!とか言わないよーに。あくまで個人メモなので。
あ、質問とかあればコメント欄に書いてくだしあ。
出来るかぎり応対させていただいきます。
2010/09/25
イライラ棒をiPheneで、しかも3Dでやることになってしまった。
とりあえず、どこから説明しようか。話せば長くなる。
イライラ棒を画像をちょこちょこ動かすことで作ろうとしてた。
↓
中間報告で、イライラ棒とは!?的な議論と自分の現状(コースの絵の色で当たり判定出来るようになりましたー。)これから付けていきたい機能(色々なセンサーあるからそれ使うとオモロイと思いますぅ。)について発表。
↓
副査の先生より「3Dでやったら面白くね?^^」とご指摘。
↓
3Dでやることになったよー!!!!!!!
今までやったこと意味あったのかwwwwwwwwww
そういう訳で。
夏休みに入り、いかにiPhoneで3Dやるか検討開始。
3Dてなんだよ?
iPhoneで3DっていったらOpenGL ES?
調べていくうちにわかったこと。
OpenGLだけでイライラ棒のようなコースを描写するのは無理なんじゃね?w
不可能ってわけではないけど、コードだけそんなモノ記述したくねぇwwww
さて。
やはりモデリングソフトとやらを探してみなきゃいけないようです。
そしてさらに調べていくと、捜査線上にあるソフトの名前が。それが「Blender」。
この辺ですでに夏休み4分の1終了のお知らせ。
他にもレポートとかあって、そこまで時間割けなかったと言い訳させてくだしあ。
で、米国の教授にここまでの進捗を報告。
すると、あるテキストを紹介するあるメールが届いた。
それがコチラ。どん
はい出た英語テキストー。
でも仕方ない。オレがやりたい事のすべてが載ってるんだものっ。てかSIO2ってナンだよ。
やっぱり日本語のテキストは後手後手なんだよね。。。
今までの集大成として頑張りますかということで3D開発が本格的にスタート。
それ以降、夏休み中はひたすらBlenderの基本的な使い方や、今まで勉強してなかった行列やベクトルについて、あるいは3Dってナンだ?ってとこから勉強してました。
今まで授業でさえも3Dなんて扱ったことないから勉強する項目が盛り沢山。。。(MikuMikuDanceは遊びで数十分だけいじったことあるんだがね。)
そして今日。
ようやく全体的に勉強がキリいいとこ(その定義は定かではないが英語から逃げる時効)になったので、本腰入れて読み始めることにした。
一章
主にソフトウェアのインストール方法やそれに関する説明。
iPhone SDKやある程度勉強してるBlenderの説明も含まれているのでその辺はショートカットして読んでいける。
で、はじめましてSIOさん。
まず、SIO2ってのはBlenderで作ったオブジェクトをiPhoneで読み込み&動作させる3Dエンジンらしい。そのために.sioって形式に変換して動かすんだと。
ほう。
そうなのかとしか言えない。
んでもって、開発をするときには「テンプレート」ってのにガシガシ自分のコードを追加していっていくらしい。このコードの追加が開発の肝なんですな。
「テンプレート」にはその他に、いろんな計算や処理に用いるライブラリも含まれているので、単純なメソッドの記述だけでそういったものを用いることが出来る。
8ページ。
間違いなく教授にはSIO2ってナンだ。ってツッコミ入れられそうだけど。。。
1つ1つのファイルについて研究しろとか言われそうでビビッてます。
このへんはもう少し読んでいかなきゃいけないらしい。
イライラ棒を画像をちょこちょこ動かすことで作ろうとしてた。
↓
中間報告で、イライラ棒とは!?的な議論と自分の現状(コースの絵の色で当たり判定出来るようになりましたー。)これから付けていきたい機能(色々なセンサーあるからそれ使うとオモロイと思いますぅ。)について発表。
↓
副査の先生より「3Dでやったら面白くね?^^」とご指摘。
↓
3Dでやることになったよー!!!!!!!
今までやったこと意味あったのかwwwwwwwwww
そういう訳で。
夏休みに入り、いかにiPhoneで3Dやるか検討開始。
3Dてなんだよ?
iPhoneで3DっていったらOpenGL ES?
調べていくうちにわかったこと。
OpenGLだけでイライラ棒のようなコースを描写するのは無理なんじゃね?w
不可能ってわけではないけど、コードだけそんなモノ記述したくねぇwwww
さて。
やはりモデリングソフトとやらを探してみなきゃいけないようです。
そしてさらに調べていくと、捜査線上にあるソフトの名前が。それが「Blender」。
この辺ですでに夏休み4分の1終了のお知らせ。
他にもレポートとかあって、そこまで時間割けなかったと言い訳させてくだしあ。
で、米国の教授にここまでの進捗を報告。
すると、あるテキストを紹介するあるメールが届いた。
それがコチラ。どん
![]() |
3D for iPhone Apps with Blender and SIO2 Your Guide to Creating 3D Games |
はい出た英語テキストー。
でも仕方ない。オレがやりたい事のすべてが載ってるんだものっ。てかSIO2ってナンだよ。
やっぱり日本語のテキストは後手後手なんだよね。。。
今までの集大成として頑張りますかということで3D開発が本格的にスタート。
それ以降、夏休み中はひたすらBlenderの基本的な使い方や、今まで勉強してなかった行列やベクトルについて、あるいは3Dってナンだ?ってとこから勉強してました。
今まで授業でさえも3Dなんて扱ったことないから勉強する項目が盛り沢山。。。(MikuMikuDanceは遊びで数十分だけいじったことあるんだがね。)
そして今日。
ようやく全体的に勉強がキリいいとこ(その定義は定かではないが英語から逃げる時効)になったので、本腰入れて読み始めることにした。
一章
主にソフトウェアのインストール方法やそれに関する説明。
iPhone SDKやある程度勉強してるBlenderの説明も含まれているのでその辺はショートカットして読んでいける。
で、はじめましてSIOさん。
まず、SIO2ってのはBlenderで作ったオブジェクトをiPhoneで読み込み&動作させる3Dエンジンらしい。そのために.sioって形式に変換して動かすんだと。
ほう。
そうなのかとしか言えない。
んでもって、開発をするときには「テンプレート」ってのにガシガシ自分のコードを追加していっていくらしい。このコードの追加が開発の肝なんですな。
「テンプレート」にはその他に、いろんな計算や処理に用いるライブラリも含まれているので、単純なメソッドの記述だけでそういったものを用いることが出来る。
8ページ。
間違いなく教授にはSIO2ってナンだ。ってツッコミ入れられそうだけど。。。
1つ1つのファイルについて研究しろとか言われそうでビビッてます。
このへんはもう少し読んでいかなきゃいけないらしい。
2010/01/12
Source File Organization
6章からは、もともと1つのファイルに記述していたファイルをクラス毎に複数のファイルに分割する手法を紹介している。
この要素はイライラ棒を作る上で非常に重要な要素になる。以前手を付けていたイライラ棒はmain.m1つに全てのコードを記述していたため、とても見づらいものになっていた。そこでiPhone Dev Centerで配布しているようなサンプルコードのようにクラス毎にファイルを分割して見やすいプロジェクトにすることを検討した。
しかし、サンプルコードのようにうまくコードを分割することができずにいたため、 こういった勉強をしたいと感じていたところだった。
そんな前置きはさておき。。。
まずはこのように記述されているTireクラスとEngineクラスを以下のようにそれぞれ分割していく。
このように@interfaceを含む宣言部を.hファイル、@implementを含む実装部を.mファイルとして2つのファイルに分けて記述する。
この2つのファイル間の関連のことをDependenciesという。
ここでのコツは.hファイルにでCocoa.hをインポートし、.mファイルで.hファイルをインポートすることでスーパークラスのNSObjectとCocoa.hを継承させるということだ。同じクラスの宣言と実装を違うファイルで行ったとしてもこのような継承をしっかりすれば問題ない。
また、この組み合わせは常に.hファイルと.mファイルが1対1である必要はない。例えば1つの.hファイルを100個の.mファイルでインポートしても問題はない。その逆もアリだ。
他にも、File1.hでFile2.hをインポートしてさらにFile2.hでFile3.hをインポートするというように、.hファイル内でさらに.hファイルをインポートすることも可能だ。
このとき最上位のFile3.hに変更があると、Xcodeはそれをインポートしている2つのファイルを再コンパイルする。そのためコンパイルには時間はかかってしまうが、そこで形成された繋がりは切れる事はない。
こういった所でInheritanceの概念が活用されている。
この要素はイライラ棒を作る上で非常に重要な要素になる。以前手を付けていたイライラ棒はmain.m1つに全てのコードを記述していたため、とても見づらいものになっていた。そこでiPhone Dev Centerで配布しているようなサンプルコードのようにクラス毎にファイルを分割して見やすいプロジェクトにすることを検討した。
しかし、サンプルコードのようにうまくコードを分割することができずにいたため、 こういった勉強をしたいと感じていたところだった。
そんな前置きはさておき。。。
まずはこのように記述されているTireクラスとEngineクラスを以下のようにそれぞれ分割していく。
Tire.h
Tire.m
Engine.h
Engine.m
このように@interfaceを含む宣言部を.hファイル、@implementを含む実装部を.mファイルとして2つのファイルに分けて記述する。
この2つのファイル間の関連のことをDependenciesという。
ここでのコツは.hファイルにでCocoa.hをインポートし、.mファイルで.hファイルをインポートすることでスーパークラスのNSObjectとCocoa.hを継承させるということだ。同じクラスの宣言と実装を違うファイルで行ったとしてもこのような継承をしっかりすれば問題ない。
また、この組み合わせは常に.hファイルと.mファイルが1対1である必要はない。例えば1つの.hファイルを100個の.mファイルでインポートしても問題はない。その逆もアリだ。
他にも、File1.hでFile2.hをインポートしてさらにFile2.hでFile3.hをインポートするというように、.hファイル内でさらに.hファイルをインポートすることも可能だ。
このとき最上位のFile3.hに変更があると、Xcodeはそれをインポートしている2つのファイルを再コンパイルする。そのためコンパイルには時間はかかってしまうが、そこで形成された繋がりは切れる事はない。
こういった所でInheritanceの概念が活用されている。
登録:
投稿 (Atom)