iPhone向け鬼ごっこアプリを作りながら人工知能(AI)について学んでいく連載。Appleが提供する「SpriteKit」「GameplayKit」の2つのフレームワークを使いながらゲームAIを作っていきます。
本連載『ゲームの「敵」キャラで分かる「人工知能」の作り方』では、iPhone向け鬼ごっこアプリを作りながら人工知能(AI)について学んでいきます。鬼の動きにAIを活用して、自動でプレイヤーを追い掛けるようなAIを作りたいと思います。
今回はAppleが提供する「SpriteKit」「GameplayKit」の2つのフレームワークを使いながらゲームAIを作っていきます。これらは下記のような特徴があります。
AIの実装に使うのはGameplayKitの「Agents, Goals, and Behaviors」という機能です。「Agents, Goals, and Behaviors」を使うと、ルールに従って移動するAgentを作ることができます。ルールは「特定のオブジェクトに向かって移動する」「特定の障害物を避ける」などさまざまなものがあります。
今回はそれを使うことで、プレイヤーを追い掛けるAIを作ってみようと思います。
まずはプロジェクトを作成します。Xcodeの新規プロジェクト作成画面から「Game」を選択します。
次の画面ではプロジェクト名などを入力します。
このまま進んでいくとプロジェクトを作成できます。この状態でビルドすると以下のようなサンプル画面が表示されるかと思います。
プロジェクトを作成すると、以下のようなファイル構成になっています。
今回は、この中の「GameScene.swift」というファイルを中心に編集します。
「GameScene」はSKSceneのサブクラスで、ゲームのメイン画面を管理するものです。「UIKit」を使ったアプリ開発と違い、SpriteKitでは「SKScene」というクラスが1つ1つの画面に相当します。その上にラベルやオブジェクトなど、「SKNode」のサブクラスを設置することで開発を進めます。
次にユーザーが動かすプレイヤーを作成します。ユーザーは、これを操作して鬼からできるだけ長時間逃げることを目標にします。
まずはサンプルのコードやオブジェクトを削除します。「GameScene.sks」を開き、真ん中にある「"Hello, World!"」と書かれたラベルを削除してください。
次に「GameScene.swift」を以下のように書き換えます。サンプルコードを削除して、プレイヤーを画面に設置する処理を追記しました。
import SpriteKit import GameplayKit class GameScene: SKScene { let player = SKShapeNode(circleOfRadius: 10) override func didMove(to view: SKView) { player.fillColor = UIColor(red: 0.93, green: 0.96, blue: 0.00, alpha: 1.0) addChild(player) } }
アプリを起動すると、以下ような表示になっています。真ん中にある黄色い点が、ユーザーが操作するプレイヤーです。
GameSceneのdidMoveメソッドはGameSceneがviewに設置されたときに呼ばれるコールバックメソッドです。画面に表示されたときに呼ばれるので、今回のように初期化処理を記述することによく使われます。
Copyright © ITmedia, Inc. All Rights Reserved.