スクラッチは基本的に2Dゲームをブラウザ上で楽しむことができるものですが、ペンという拡張機能(公式、ワンクリックでインストール可能)を使えば3Dゲームを作ることが可能です。
今回は3Dゲームをスクラッチで作るための基本的なノウハウについてまとめておきます。
なお、ハイレベルな3Dゲームの作り方やパフォーマンスチューニング、3D空間にアイテムや敵を配置して主人公との当たり判定などを実装する方法は別途まとめてあります。
ミニマップを作る
まずは2Dのミニマップを作ります。このマップを使って、のちほど3D化していきます。
コスチューム
自由にマップを作ってください。通路になる部分は透明にしておきます。一番楽しいところw
コーディング
ここはめちゃシンプルです。
中央に配置して透明化しているだけです。このマップ自体は視認できる必要はありません。だから幽霊効果をつけています。ただし、スプライトを物理的に「隠す」にしてしまうとレンダリングする際に困ってしまうので、幽霊にしておく必要があります。CSSでいうところの、display:none と opacity:0 の違いみたいなもんです。
プレイヤーを作る
次に主役となるプレイヤーを作ります。
コスチューム
4 X 4の正方形をセンターに作ってください。ちゃんとセンターのアンカーにスナップされるように配置する必要があります。
コーディング
2Dマップを動き回る四角形を作るイメージで動きを作っていきます。まだ3D化はしません。
緑の旗が押されたとき
定義「動く」
レイキャスターを作る
3D化にはレイキャスティングという手法を採用します。スプライト「レイキャスター」を用意していきましょう。
コスチューム
プレイヤーと同じ4 x 4の正方形をセンターに作ってください。
### コーディング
レイキャスティングを実装していくので、少し複雑になっていきます。
緑の旗が押されたとき
メッセージ「距離を調べる」を受け取ったとき
定義「距離を調べる」
ペンを作る
レンダリングを担当するスプライトを作っていきます。ここでは拡張機能のペンを有効化しておいてください。スクラッチエディタの画面左下からカンタンに有効化出来ます。
なお、コスチュームは必要ありません。
コーディング
リストの中身をペンで描画する処理を作ります。
メッセージ「描画する」を受け取ったとき
定義「描画する」
まとめ
これでスクラッチプログラミングで3Dゲームを作る下地ができました。
これをゲームエンジンの礎にして様々なゲームが投稿されているので、みなさんも是非ゲームを作ってみてください。
実際に動くスクラッチ3Dゲーム完成品をこちらで公開しています。
もっとハイレベルなチュートリアルも公開しているのでチェックしてください。