Swift転職なら=>【LevTech】
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

頭痛が減ったので共有です!

rebuild.fmを応援しています!

HOME > 3Dでゲームを作ってみたい(#1)

3Dでゲームを作ってみたい(#1)

いままで3Dのゲームを作りたいと何度おもったことか、、、その都度失敗の連続。このサイトの機会にどうにかして作りたいと思い記事にしてお尻に火をつけた次第です。 毎日少しずつ学びながら進められればと思います。

目標

第一目標は、Wiiの最初の画面で自分の顔のモデリングが元気に動き回っているアレを、四角を6つ繋げて、顔の部分に画像がはりつけることができればゴールとします。 3Dゲームのサンプル画像

まず3Dをするには、、、単語の勉強です。調べているとたくさんでてきますね。見たことはあるけど、ちゃんと理解はしていなかった3D関連用語。
参考:iOS 8 Metal Tutorial with Swift: Getting Started
参考:Sprite Kit, GLKit, and Scene Kit: How Apple is shaping game development

というわけで、ひとまず以下の4つの3D関連の情報を調べてみます!

  • SpriteKit:
  • SceneKit:
  • Unity:
  • GLKit(OpenGL ES):

SpriteKit

どうやら2Dのゲームを作るためには便利なKitのようです。SpriteやTextのイメージレンダリングを最適化してくれるライブラリ群なのかなとの認識です。 今回は3Dですので、ひとまずこのキットはスルーしておきます。

参考(本家):SpriteKit
参考:SpriteKitでゲームを作ってみる
参考:SpriteKitを利用したサンプル等(Objective-C)
参考(英語):Latest 15 Updates

SceneKit

でました、iOS8からどうやら3Dを手軽につくれるフレームワーク。とのようです。JSのThree.jsの様なものと記載されていますが、Three.jsを私はわかりません、、、、ので調べてみました。本家サイトはここからthree.js。サンプルを見ましたが すごいの一言!3Dでぐるぐる動きます。Javascriptでここまでできるとは知りませんでした。さて、話は戻りますが、このSceneKitで同等のことができるようですので、進むのはこのKitなのかもしれません。ひとまず調査を続けます。

参考(本家):SceneKit Framework Reference
参考:SpriteKitでゲームを作ってみる
参考:[iOS 8] SceneKitで3Dゲームを作るー入門と概要編ー
参考(英語):Bananas: A simple SceneKit platforming game
参考(英語):Scene Kit sample code

サンプルがワサワサでてきますね。開発のヘルプが多いです!

2Dのグラフィクスの表示やアニメーションには、SprikeKitをつかったのだけれど、3Dではその代わりにSceneKitというフレームワークを使うらしい。説明を読むと、OpenGLなどと比べると、より上位のレベルで、シーンの中の物体とその動きを記述できるとのこと。早速、Swift+Playgroundの環境で使ってみたい。

こういった記述も。メモメモ。。。
参考:Swift + Playgraoundメモ 3 – SceneKitで3Dライブコーディング!

Unity

続きましてUnityです。これもよく聞くけど、よくわかっていなかったので調べてみました。まず本家サイトの日本語版にアクセスしただけで感じましたが、レベルの高い3Dをハイクオリティを求めるのであればUnityなのだと肌感覚で感じました。 あとライブラリではなく、3Dの開発環境でiOSで実行できるファイルを出力できる様ですね。あと無料じゃないんですね、、、、Unity PRO 16万となっていました!これは中年おっさんの財布には厳しいのでひとまずSceneKitにて作業を進めていこうと思います。

参考(本家):Unity3d.com
参考:UnityでiPhoneアプリ(iOS)向けにビルドする方法【初心者向け】
参考:Unity3Dのゲームの作り方講座

おや、、、「Unity3Dのゲームの作り方講座」のサイトにはどうやら「無料で3Dゲームが作れるソフトとも記載しているのでもう少し突っ込んで調査します。


参考:License Comparisons

どうやらUnity PROが有料で、Unityに関しては無料のようでした。比較のリストが上のリンクに記載されています。つきましては、SceneKitとUnityどちらも視野にいれても良さそうです。ただし、XCodeとは別の開発環境になるので、Unity-salarymanにしないと いけなくなりそうです。なので、ひとまずはSceneKitで進む流れになりそうです

GLKit (OpenGL ES)

こちらはiOS5から存在するライブラリのようです。少し古いのかな。2009年あたりでは2DならCocoa2D、3DならGLKitを検証するべしとの記載がありました。

参考(本家):GLKit Framework Reference
参考:OpenGL ES(GLKit)を使って動くエフェクトを作る(その1:GLKViewを使ってみる)
参考:GLKitの基本
参考:OpenGL (Wikipedia)

SceneKitとGLKitどちらも3Dなの?と考えていましたが、どうやら以下をみるとGLKitやCore Animationで要素を作成して、SceneKitはそれらをサポートするテクノロジー、と記載していました。

Integrate your app with other OS X technologies such as Core Animation and GLKit to add overlays and textures for the 3D objects in your scenes.

おそらく別途作成したアニメーション(2Dや3D)の要素をSceneKitにて管理するといった形でしょうか。

参考:Introduction to Scene Kit

まとめ

上記より、3Dの開発環境や2D/3Dのライブラリを混乱して理解していたようです。Unityはつっこんで作業するには有料なのかと思いますので、 SpriteKitは2Dですので、ひとまずSceneKitとGLKitを利用してSwiftのみで3Dを作成していく方向でひとまず進めてまいります!

まだまだ知らないことだらけなので、進みつつ学んでまいります


次の3Dの記事はこちらからどうぞ

↓こんな記事もありますよ!

Typealiasをどうやって活用するのか

Typealiasって言葉、なんだややこしく見て見ないふりをしていましたが、 先日別の記事を書いた際にTypealiasの記述がありましたので、あらためて確認してみようと思います。まずaliasですが、 Macでショートカットを作成した時に記載される「エイリアス」です。ショートカットのようなものですので、 Typeのショートカット的な感覚で調査進めてまいります。

UIActivityIndicatorView

iOSでローディングをする簡単な方法は標準のインディケータを表示する方法です。画面中央でぐるぐる回ります。

WatchKitでタイマーアプリを作成する。

簡単なアプリを作成しながらAppleWatchを学んでいきます。前回の記事で大まかな動きは理解できましたので、 つぎはAppleWatchとアプリとの連携をタイマー機能を利用して検証していきます
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!