BlogKLabは、多くのスマートフォン向けゲームを開発・提供しています。スマートフォン向けゲームの開発と運用は、Webソーシャルゲームと比べて格段に複雑で、またコンシューマゲーム開発とも異なったノウハウが求められる領域もあります。このブログでは、KLabのゲーム開発・運用の中で培われた様々な技術や挑戦とそのノウハウについて、広く紹介していきます。〜準備編〜プログラマのfmystBです。普段3D関連のプログラミングをする事が多いのですが、様々な局面でちょっとしたテスト用のモデルが欲しくなる事があります。アーティストに頼むほどでもない・・・。そんなときBlenderが使えると便利でして、日頃とてもお世話になっています。毎日のように仕事でBlenderに触れているうちに、内部の仕組みを知りたくなって来たのでコードリーディングにチャレンジしようと思います。宝が星の数ほどBlenderには数多くの3DCG技術が集約されているので、コードを読んで楽しい場所はたくさんあるはずです。Modifiersや物理シミュレーション部分のコードには特に興味があります。オブジェクトの形状を便利に編集できるModifiers機能には高度な幾何学が使われていると思いますし、物理シミュレーションにはプリレンダリングの技術が使われているのでリアルタイムレンダリングとは違ったアルゴリズムを知る事が出来るでしょう。他にも、マシン環境によっては有効となるCUDAオプションのコードを追いかけてみるのもGPGPUプログラマにとっては面白そうですし、Pythonハッカーな人はスクリプト機能の部分に興味があるかと思います。こんな注意書きがあります。once.」Blenderは規模が大きいだけに、一度に全てを知ろうとすれば泥沼にはまるようですね。興味がある部分に絞って理解を深めていくのが長続きするポイントのようです。この連載でも気の趣くままに、面白そうな部分だけピックアップして紹介していきます。環境としてはMacのXcodeを使い、ソースを読むだけではなくブレイクポイントを張りながら実行する事で動作を確認していきます。(後の記事でも触れるつもりですが、Blenderはいたる所で関数ポインタを使っているのでステップ実行せずに読み進めるのはキツいです><)ソースコードの管理はGitが使われており、ダウンロードからXcodeプロジェクトの生成まではこちらに書かれている通りです。コマンドラインのみでビルドする方法も書かれていますが、今回はXcodeでビルドしてBlenderを起動する事が目的なのでそこまでの設定が出来れば大丈夫です。ここで書かれている事の他に、Blenderは頻繁に更新されてしまうのでコードリーディング用のブランチをtagから作成しておくと便利です。この記事を書いている時点では2.74が最新安定板なので、「v2.74」というtagからブランチを作成してしばらくそこでコードリーディングを進めていきます。