Twitterで「javaでアニメーション作るの難しいよお(´・ω・`)」ってつぶやいてたら
「cocos2dxかAndEngine使った方がいいよー」
って教えてもらえたので、よく聞くcocos2dxの方をぼくも今後使っていくことにしてみました。
まずは導入ってことで、「cocos2d-xによるiPhone/Androidアプリプログラミングガイド」って本を参考にしながら構築してみたんだけど、AndroidNDKが先月r9にバージョンアップしてて、そこでハマったり他にもあちこちで躓いたりしてやり方を残しておかないと次また構築するとき大変そうだったから、そのメモも兼ねてWindows環境での構築方法を書いておきます。
その0.だいたいの流れ
windows環境で使うには以下のものをインストールする必要があるみたい。
ダウンロードするもの
- cocos2d-x
- Eclipse(ADTの方がやりやすかった。というか普通の方ではぼくはできなかったです)
- AndroidSDK
- Java
- AndroidNDK,Revision 8e(今でてるRevision 9だとエラーが出ます。詳しくは後述)
- Cygwin(インストール時にmakeも一緒にインストールしないといけないみたい)
- Python
その後のおおまかな手順
- PathにPython及びCygwinのディレクトリを追加
- コマンドプロンプトでプロジェクトを作成
- Eclipseの設定
- Eclipseにプロジェクトの追加
まあ多分これだけなんですけど、書くより結構大変でした(´・ω・`)
ということで以下順を追って書いていきます。
その1.cocos2d-xのダウンロード
まずは肝心のcocos2d-xをダウンロードしますね。
http://www.cocos2d-x.org/projects/cocos2d-x/wiki/Download
ぼくは「cocos2d-xによるiPhone/Androidアプリプログラミングガイド」に書いてあったって理由で「cocos2d-2.1rc0-x-2.1.2-hotfix.zip @ Apr.08, 2013」にしました。でも多分最新版でも(α版でなければ)いいのかも。
その2.Eclipse(ADT)、Java、AndroidSDKのダウンロードとインストール
まあこれに関してはあちこちに書かれてるので割愛。
ただぼくの場合、最初に使ってたEclipseではうまくいかなかった(症状は後述)。対処法として、AndroidSDKをダウンロードしたときに入ってるADTで構築するとうまくいきました。今後はそれでやっていくことになるのかな。
一応のリンク。
Java(JDK)
http://www.oracle.com/technetwork/java/javase/downloads/index.html
AndroidSDK
http://developer.android.com/sdk/index.html
※SDKの中にEclipseも入ってる
その3.Pythonのダウンロード及びインストール
cocos2d-xでプロジェクトを作成する際に必要みたい。多分ここはそんな躓かない。
ただcocos2d-xのwikiに2.7.3を使用してる例があるみたいだから(参考:「cocos2d-xによるiPhone/Androidアプリプログラミングガイド」)、2.7系を入れたほうがいいのかも。
Python
http://www.python.jp/
インストールしたら「コンピュータ」→環境設定のPathにインストールしたフォルダを通せば完璧。
コマンドプロンプトでやる場合は
みたいに書くだけでおk。
(ただ間違えたら全消しして泣いちゃうから気をつけてね。一度あるけど本当に泣いちゃうよ)
その4.Cygwinのダウンロード及びインストール
linuxのshellスクリプトをwindows上で使えるようにするツールみたいです。色々と必要みたいだからとりあえずインストールしとく。
Cygwin
http://cygwin.com/install.html
上記URLにあるsetup-x86.exeを(64bit版の場合はsetup-x86_64.exeですね)ダウンロードしてだぶるくりっく。するとどこかに接続しようとするんで(多分ミラーサイトかな)、適当な部分を選んで接続させると更に色々とダウンロードしてインストールが始まる。
途中「select pakages」という画面がでるんで、そこで「Search」にmakeって入れて検索し、「Devel」というパッケージを開いて、中にある「make: The GNU versionなんたら」って書いてあるやつを選択して「次へ」を押すと、ごにょごにょなってインストールされる。
これもPathを通しておく。多分Cドライブにフォルダがあるんで、そこのbinフォルダを通せば大丈夫と思う。
コマンドプロンプト
その5.AndroidNDK(Revision 8e)をダウンロード
最後のダウンロードとして、AndroidNDKをダウンロード→解凍しとく。
AndroidNDK
http://developer.android.com/tools/sdk/ndk/index.html
ただ、今はAndroidNDK(Revision 9)がリリースされてて、上からは通常のやり方だとそれしかダウンロードできないっぽい。
でもまだcocos2d-xではAndroidNDKr9だと問題がおきちゃうみたいなので、以下の方法でRevision 8eをダウンロードした。
- 上記のAndroidNDKのページへ行く
- Downloadsからお好みのを選択
- 右クリックしてURLを取り出す
- そのurlの「ndk-r9」の部分を「ndk-r8e」に変更して、ブラウザにドーンする
これで無事ダウンロードできました。
もしかしたらr9でも動くのかもしれないですけど、ぼくは力不足でした。
ちなみに、こんな感じのエラーがでます。
cocos2d-xの中でエラーが起きちゃって、先に進めないみたいな。
その6.コマンドプロンプトでプロジェクト作成
ここからやっとプロジェクト作成できる。コマンドプロンプトでやるみたいなんで、コマンドプロンプトで「(cocos2d-xのフォルダ)/tools/project-creator/」まで移動し、以下のように入力する。
するとごにゃごにゃ始まって、「(cocos2d-xのフォルダ)/projects/」の中にプロジェクト名のフォルダが作成され、色々入ります。
その7.Eclipseの設定
とりあえず必要なのはインストールできたから、次はEclipseの設定をしていく。
ここが一番大変だった(´・ω・`)
リンクリソースにcocos2d-xを追加
Eclipse上の[Window]→[Preferences]画面へ行き、左にある[General]→[Workspace]→[Linked Resources]を選択。そこに出てくる「Linked Resources]画面にある[New]ボタンを押して、以下のように入力
「Name:COCOS2DX」
「Value:(cocos2d-xのフォルダ)」
C/C++の環境設定にAndroidNDKを登録
次は[C/C++」→[Build]→[Environment]を選択。・・・なんだけど、最初のEclipse JUNOにはなぜかその項目がなかった(´・ω・`)
C/C++のビルドにはコンソールとロギングしかないでござる。ぼくのエクリプスだけ?
多分ヘルプから新規ソフトウェアのインストールをすれば何とかなるんだろうけど、小一時間くらい格闘して挫折。
というわけで、AndroidSDKにあったeclipse(ADT)にはなんかEnvironmentがいたから、そっちを今後使っていくことに。
そこで、以下のものを登録。
AndroidNDKのディレクトリ
「Name:NDK_ROOT」「Value:(AndroidNDKのフォルダ)」
Cygwin
「Name:CYGWIN」「Value:nodosfilewarning」
Shellopts(多分名前からしてシェルスクリプトのオプション)
「Name:SHELLOPTS」「Value:igncr」
するとこんな感じに仕上がります。
コード解析でエラーが吐き出されるのを抑止
「cocos2d-xによるiPhone/Androidアプリプログラミングガイド」によるとそれも必要みたいなんで、やっちゃいます。
[C/C++][Code Analysis(日本語だとコード解析)]を選択し、画面で[Syntax and Semantic Errors]のチェックボックスを全部はずすといいみたい。
cocos2d-xをEclipseに登録
次にはEclipseにcocos2d-xのディレクトリをプロジェクトとして登録する必要があるみたい。
[File]→[New]→[Project…」を選択し、「Select a wizard」画面で「Android Project from Existing Code」を選択する。日本語だと「既存コードからのAndroidプロジェクト」ね。
すると「Import Projects」画面がでてくるので、ルートディレクトリにcocos2d-xライブラリプロジェクトのディレクトリを指定する。
そのライブラリプロジェクトは
「(cocos2d-xのフォルダ)/cocos2dx/platform/android/java」となる。
インポートすると、プロジェクトのリストに「libcocos2dx」っていうのが追加されます。
自分のプロジェクトをインポート
次に、さっきコマンドプロンプトで作成した自分のプロジェクトもインポートします。
同じ手順で、「Import Projects」画面にて作成したプロジェクトのフォルダをインポートしましょ。
「(cocos2d-xのフォルダ)/projects/(プロジェクト名)/proj.android」
が、android用のフォルダになるみたい。
最初、cpp全部をインポートするせいかとっても時間かかります。
このときにCygwinのPathを通さなかった場合、以下のエラーが吐き出されちゃいます。ええ、吐き出されました。
bashってlinuxではよく見るやつですね。でもこれwindowsだからeclipseたん残念だねぇなんて言ってても始まらないからcygwinのpathを通そう。
ビルドしてみる
これでようやく全部構築完了\(^o^)/
さっそくビルドして実機でテストしてみようと、実行ボタンをポチッ
・・・。
プロジェクト名の根本部分が見つからないとか言われてできない(´・ω・`)
もしかしてAndroidManifest.xmlに記載されてないのかな?とか思ってみていてもちゃんと入ってた。いくら探しても同じようなエラーが起きた記事が見つからず(きっとあると思うけど、ぼくの検索能力じゃ無理ぽ)、1時間くらい格闘の末以下のようにするとできた。
Javaビルドパスの「順序およびエクスポート」でAndroid2.2とか全部にチェックを入れる
あ、格闘途中に英語がうっとうしくなったから日本語化しちゃいました。多分英語だと「Build Path」とか書いてると思います。
なぜかチェックが外れてたんで、入れたら無事に起動した。
・・・なんか・・・すごくずれてる気がするけど気のせいかな。。
まあ、でも多分構築できた\(^o^)/
cocos2d-xってC++で作っていくそうで、ぼく今までC++使ったこと一度もないけどまあやりながら覚えたらいいでしょってことで、明日から使っていこー。
補足(2013/08/07) EclipseにCocosDenhsionのパスを通す
どこにも書かれてないから本来は多分デフォルトでちゃんとなってるのかなって思うんだけど、ぼくが設定した時はCocosDenshionがどこにもいない人になっちゃってた。
効果音やBGM再生やJavaとの連携とかに必要みたいだし、色々いじってたら通せたんでそのやり方をメモしときます。
インクルードの設定
プロジェクトファイルを右クリックし、「プロパティ」→「C/C++一般」→「パスおよびシンボル」を選択。
インクルードの部分に以下の2つを入れる
「${ProjDirPath}/../../../CocosDenshion」
「${ProjDirPath}/../../../CocosDenshion/include」
(もしかしたら1つでもいいのかも。プロジェクトのファイルからCocosDenshionのフォルダを指定する感じ)
ソースロケーションの設定
これだけだとエラーがでちゃったから、次はソースロケーションを設定する。
プロジェクト名のを選択し、「フィルターの編集」を押して「CocosDenshion」を追加
追加するとき「相対パス書けや」っていわれるけど、フォルダ名をいれとけばいいみたい。
これでいいのかはよくわからないけど、とりあえずCocosDenshionの中のが使えるようになったから多分いいのかな。
ちょっと怖いけど・・・。
設定エラーもなくできました。ありがとうございます。AndroidNDK最新版を入れてみました。同じようなエラーがでましたら、コメント再度させていただきます。
kakuさん
返信が遅くなってすみません。AndroidNDKの最新版でももう大丈夫になってるみたいですね。
いろんなサイトを参考にしましたがどこも成功せずここにたどり着きました。
どのサイトにも言えるのですが初心者は肝心な細かいところの説明がないと
戸惑ってしまいます。しかしここは丁寧に流れが書いてありwindows環境でエラーもなく導入することが出来ました。ありがとうございました。