↑クリックして拡大
↑クリックして拡大
↑クリックして拡大
↑クリックして拡大

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

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

どうやら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の記事はこちらからどうぞ

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


2021-05-14 14:21:41

WatchOSのwatchconnectivityのFiletransferの落とし穴。と、避け方。

AppleWatch 実機だと成功するんだけど、シュミレーターだと失敗するという、、、 昔作成してた時は成功してたのになーと思って調べると、どうやら昔は成功してたみたい。watchOS6以降は...

2021-05-06 14:04:37

LINEのアニメーションスタンプ制作の落とし穴、、、失敗談

ゴールデンウィークにLINEスタンプを作成してみました。 作り切って申請も通したんですが、意図したアニメーションと違う、、、、 LINEクリエーターの画面だと、アニメーションのプレビュー...

2021-05-01 18:05:35

久しぶりのAdmobをobjective-cに実装。コンパイルエラーだらけ。バーミッション不具合でエミュレータにインスコできない。

忘れないようにメモ エミュレータにアプリをインストールする際にパーミッション系のエラーがでた時、また、iphone実機にインストールする際にも権限系のエラーが出る場合。 ターゲット→ex...
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!