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

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

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

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

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

前回の記事#4よりSceneKitのチュートリアルを進めていきます。
改めてですが、Beginning Scene Kit TutorialにあるGetting Startedセクションの「starter pack」からダウンロードできる「CarbonVisualizer-Starter.zip」を利用しています。

目標

前回と同じく、以下のような四角がくるくる回る形の作成を検証してみます。 3Dゲームのサンプル画像 3Dゲームのサンプル画像

チュートリアル続き

SceneKitフレームワークはnode型のようで、親のSCNSCeneにSCNNodeをそれぞれ追加していく形です。SCNNodeにはそれぞれのカメラやライト、物質の機能が組み込まれているようでそれを多数利用することで複雑な3Dを使用できるようにしているようです。

3Dゲームのサンプル画像

Appleの公式サイトリファレンスより

基礎工事

まず、親となる土台のSNScenceを作成します。そこに、SCNNodeと関連させる物体のSCNBoxを追加します。その後に、StoryBoard上にあったSCNView(sceneView)と関連させます。このサンプルサイトには、
@IBOutlet weak var sceneView: SCNView! が宣言されています。


 override func viewDidLoad() {
   super.viewDidLoad()
    
    //まずは基本となるSCNSceneを追加します。これが無いと始まりません
    let scene = SCNScene()
    
    //SCNNodeを追加しますが、このSCNNodeに物体としてのSCNBoxを作成して関連づけます。
    let boxGeometry = SCNBox(width: 10.0, height: 10.0, length: 10.0, chamferRadius: 1.0)
    let boxNode = SCNNode(geometry: boxGeometry)
    scene.rootNode.addChildNode(boxNode)
    
    sceneView.scene = scene
    

3Dゲームのサンプル画像

まだ真っ白の表示のままです

SCNViewを見やすいようにする

上のコードにライティングを追加するには以下の一行でそれっぽく大変身。Photoshopのドロップシャドウの内側を実施したような感じになりました。 SceneViewの上に全体表示されたSCNBoxが画面一面に表示されているので平面に見えますが、箱を真横からみている状態です。


        sceneView.autoenablesDefaultLighting = true;
    

3Dゲームのサンプル画像

この状態でカメラ機能を追加してみる

たったこれだけですが、この状態でカメラ機能をコードで追加するだけでマウスカーソルにそってぐるぐる動き出します。


    sceneView.allowsCameraControl = true;
        

3Dゲームのサンプル画像

数行だけですが、ここまで簡単に3Dの四角がつくれるようでした。これを円にしたりライティングをあてたりすることも容易にできるようです。その際はあらためて Beginning Scene Kit Tutorialを確認すればサンプルソースも揃っています。私の方はここに顔と体をつけていきたいので、 「四角」をSwiftのSceneKitでくるくる回す目標は完了。次記事からこの表面に顔を表示する方法を考えてまいります。

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

Pintoを1年利用してほんとにプログラマーの背筋がピンとなった(P!nto)

猫背どうにかならないかな、、、、。プログラマーとしての職業上日中8割9割は画面と押し問答している私は、 熱中すればするほど画面に食い入り知らず知らずに前のめりの姿勢に。姿勢が悪い、、、、分かってるんだけど、やめられない。

UIActivityIndicatorView

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

UIToolBar

画面の端っこに追加できるツールバーコントロール。アプリにピリッとアクセントを付けます。機能を追加したい時に便利です
このエントリーをはてなブックマークに追加
右側のFacebookのLikeをクリック頂けると記事更新の際に通知されますので宜しければご利用下さい!