見出し画像

PICO-8で遊ぼう(3D:準備編

2D(というかドット絵)ゲームエディタで3Dをわざわざやらんでも…。
所謂、ロマンってことです。令和ロマン

本日の教科書

本日の教科書ですが、ちょっと古い情報でそのままだと動かなかったので変更を加えました。
またやったことも多いので、まずは準備編として3Dライブラリのダウンロードから外部エディタを使った開発環境をつくるところまでを記載します。

Gryphon 3D Engine Library

PICO-8公式掲示板に投稿されている3Dエンジンを使わせてもらいます。
上記サイトから教科書に書いてあるように3Dエンジン部分のCODEをコピペしても良いのですが、PICO-8の便利機能SPLOREを使ってダウンロードしてみます。

SPLORE

SPLOREと入力してenter
じゃーん

これはPICO–8公式掲示板にアップロードされているカートリッジをダウンロードして遊ぶことができる便利ツールで、ダウンロードしたカートリッジの中身を見ることもできます。
早速目的の3Dライブラリをダウンロードしてみます。

カーソルキーの左右で機能を選べます。
虫眼鏡アイコンを選択して34798(3Dライブラリの投稿No)と入力してenter。
表示された!ここでenter
RUN CART選択してenterで実行
くるくる回ってる猫ちゃん。
escでウィンドウがでるのでEXIT TO SPLOREを選択してenterするとSPLOREに戻る。
SPLOREに戻ってからさらにescでSPLOREを止める(出てる)
もう一回escでエディタ画面に戻ると3Dライブラリのコードがずらー!
SAVE 3DLIB(名前はなんでもいいけど)でローカルに保存。

外部エディタの導入

保存した3DライブラリをPICO-8のエディタ上で直接いじってもいいのですが、3Dライブラリのコードはかなり大きくて、小さなPICO-8のエディタでは見通しが悪くいじりにくいです。
そこで外部エディタを導入して快適な開発環境を作ってみます。

PICO-8は1ファイルでコード、ドット絵、サウンドの全てが入っています。
さらにそれをテキストエディタで開くだけで簡単に中身が見れて直接編集もできてしまいます。
そのファイルがどこに保存されているかは環境によって異なります。
標準設定では以下の場所にあります。

  • Windows: C:/Users/Yourname/AppData/Roaming/pico-8/carts

  • OSX: /Users/Yourname/Library/Application Support/pico-8/carts

  • Linux: ~/.lexaloffle/pico-8/carts

Visual Studio Code

外部エディタにはVisual Studio Code(VS code)を使用し、PICO-8の開発に便利な機能拡張を2つ導入します。

赤枠が導入した機能拡張。
pico-8-lsはハイライトと補完、pico-8-simple-putlineはアウトライン機能の追加。
pico-8-lsにもアウトライン機能はあるが変数まで拾ってくるので見通しが悪く使いにくい。
実際にpico-8のファイル.p8をVS codeで開いてるところ。補完(spr)も効いてる。

赤い立方体を表示してみる

3Dライブラリにあるデモ(くるくる回る猫ちゃん)は、複雑なオブジェクトを読み込んでいたり複数シーンの切り替えが出来たりと大変興味深い逸品なのですが、これをいじるにはコード量が多いですし複雑なので教科書にある赤い立方体を表示するごくごくシンプルなデモになるようにデモのコードを削り込んでいきます。

頂点リストと面リスト

頂点リスト(CUBE_V)と面リスト(CUBE_F

この3Dライブラリでは複数の三角形の組み合わせでオブジェクトを表現します。三次元空間上の三角形たちを表現するデータが、頂点リストと面リストです。
頂点リストは三次元空間上の点のリストで、面リストは頂点リスト中の頂点の番号のリストになります。面リストは貼りたい面の頂点3点を選んでリストにしますが、視点から見て反時計回りに並んだ頂点が作る面は表面になり、時計回りの場合は裏面になります。テーブル要素の番号は1から始まっています。面リストは5つ数値がありますが前半3点は頂点の番号、後半2点は面の色情報です。2色を組み合わせて中間色を表しています。ただしload_object関数の引数にK_MULTI_COLOR_…を指定したときのみ有効となります。

デモ部分の全コード
ババーン!

続く!

この記事が気に入ったらサポートをしてみませんか?