PYXEL GUIDE / はじめての方へ

Pyxelとは?使い方と始め方

公開日: / Pyxel 2.9.9 の公式ドキュメントとソースで確認

Pyxel(ピクセル)は、Pythonでドット絵のレトロゲームを作るための無料のゲームエンジンです。このページでは、Pyxelで何ができるのか、どうやって始めるのか、最初のプログラムをどう読めばよいのかを、順番にまとめます。

わかること
Pyxelの特長、3つの始め方、最初のコードの読み方、ほかのツールとの違い
前提
Pythonの変数・if・関数を少し触ったことがある
確認したバージョン
Pyxel 2.9.9(Python 3.11以上)
Pyxelで作ったゲーム「おばけ洗濯日和」の画面
このサイトの最初の講座「おばけ洗濯日和」。16色のドット絵で描かれた、Pyxelのゲーム画面です(元の完成版を自動操作したPyxel描画)。

Pyxelとは

Pyxel(ピクセル)は、Pythonで2Dのレトロゲームを作るためのゲームエンジン(ゲーム作りに必要な道具をひとまとめにしたもの)です。昔のゲーム機をお手本にして、使える色は16色、音は4チャンネルというように、あえて仕様を小さく決めています。そのぶん覚えることが少なく、1人でも「小さなゲームを1本完成させる」ところまで進みやすいのが特長です。

オープンソース(MITライセンス)なので、無料で使えます。作ったゲームを配ったり販売したりすることもできます。その場合は、Pyxelの著作権とライセンスの表示をゲームと一緒に入れておきます。

Pyxelの主な仕様

  • Windows・macOS・Linux と、Webブラウザーで動く
  • プログラムは Python で書く
  • 画面の大きさは自由に決められる(例:横160×縦120ドット)
  • 16色のカラーパレット
  • 256×256ドットの画像(イメージバンク)が3枚、256×256のタイルマップが8枚
  • 音は4チャンネル。サウンドを64個と、それを組み合わせた音楽を8曲作れる
  • キーボード・マウス・ゲームパッドで操作できる
  • 画像と音を作るツール「Pyxel Editor」が付いている

色・音のチャンネル・イメージバンクなどの数は、標準の値です。上級者向けの機能で増やすこともできます。

読み方は「ピクセル」

画面の小さな点を表す英語の pixel(ピクセル)と同じ読み方です。作者が個人で開発しているオープンソースのソフトウェアで、公式の情報は GitHubのPyxelのページにまとまっています。

Pyxelでできること・向いていること

Pyxelが得意なのは、ドット絵で表現する2Dのゲームです。アクション、パズル、シューティング、RPGのように、昔のゲーム機にあったジャンルなら、ほとんど作れます。このサイトでも、パズル・アクション・シミュレーションなど100本のゲームを、Pyxelで作る講座にしています。

Pyxelに向いていること・向いていないこと
向いていること向いていないこと
1人で小さなゲームを最後まで完成させたい写真のような高解像度の画面を作りたい
Pythonの練習を、目に見える形で楽しく続けたい本格的な3Dゲームを作りたい
ドット絵やピコピコした音の雰囲気が好きたくさんの色を使った細かい表現をしたい(基本は16色)
作ったゲームをブラウザーで遊んでもらいたいスマートフォンのアプリとしてストアで配信したい

スマートフォン用のアプリは作れませんが、Web版のPyxelを使えば、作ったゲームをスマートフォンのブラウザーで遊んでもらうことはできます。くわしくはPyxelで作ったゲームを公開する方法で説明しています。

Pyxelの3つの始め方

Pyxelを始める方法は、大きく分けて3つあります。目的に合わせて選びましょう。

Pyxelの3つの始め方
方法必要なものこんな人に
ブラウザーで試す
(Pyxel Code Maker)
ブラウザーだけ。インストール不要まずPyxelの雰囲気を知りたい人。ただし、ファイルを複数に分けたプログラムには対応していません
VS Codeの拡張機能を使うVisual Studio Code に拡張機能「Pyxel」を追加。PythonやPyxelのインストールは不要ふだんからVS Codeを使っている人
PCにPythonとPyxelを入れるPython 3.11以上と、pip で入れる Pyxelこのサイトの講座を動かしたい人、本格的に作りたい人

ブラウザー版の Pyxel Code Maker は、開くだけでコードを書いて実行できます。最初の1回だけ試してみるのにも便利です。

このサイトの講座は、3つ目の方法で動かします。公式の説明では pip install -U pyxel で最新版を入れますが、このサイトでは、作業するフォルダーごとに .venv(そのフォルダー専用のPythonの作業場所)を作り、動作を確かめた Pyxel 2.9.9 を入れる方法を案内しています。コマンドをコピーするだけで進められるので、はじめての方は「はじめる準備」から進めてください。

Windowsでの注意

Python公式サイトのインストーラーでPythonを入れるときは、最初の画面で「Add python.exe to PATH」にチェックを入れておきましょう。あとで pyxel コマンドを使えるようにするための、公式の注意書きです。

最初のプログラムを読む

「はじめる準備」で動かす、いちばん小さなプログラムです。紺色の画面に、白い文字で「Hello, Pyxel!」と表示します。

hello.py
import pyxel

pyxel.init(160, 120, title="My first Pyxel")

def update():
    pass

def draw():
    pyxel.cls(1)
    pyxel.text(20, 55, "Hello, Pyxel!", 7)

pyxel.run(update, draw)

1行ずつ、何をしているのかを見てみましょう。

最初のプログラムの読み方
コード意味
import pyxelPyxelを使えるように読み込みます。
pyxel.init(160, 120, title="My first Pyxel")横160・縦120ドットの画面(ウィンドウ)を作ります。title はウィンドウの名前です。何も指定しなければ、1秒間に30回画面を更新します。
def update():ゲームのデータを変える関数です。キー入力を読んだり、位置や得点を変えたりします。今は何もしないので pass と書いています。
def draw():画面を描く関数です。pyxel.cls(1) で画面全体を色1(紺)で塗りつぶし、pyxel.text(x, y, 文字, 色) で文字を描きます。
pyxel.run(update, draw)ゲームを動かし始めます。ここから先は、update と draw が1秒間に何十回もくり返し呼ばれます。
1. update

入力を読み、データを変える

2. draw

今のデータで画面を描く

3. くり返し

1秒に30回(初期設定)

座標と色の決まり

画面の左上が (0, 0) です。右へ行くほど x が、下へ行くほど y が大きくなります。色は 0〜15 の番号で指定します。たとえば 0 は黒、1 は紺、7 は白、8 は赤、10 は黄色です。pyxel.COLOR_WHITE のように、名前で書くこともできます。

update と draw を分けて考えるのが、Pyxelのゲームを読むときの基本です。くわしくは共通入門の入力・更新・描画を分けるで、実際に動かしながら確かめられます。

キーで四角を動かしてみる

次は、矢印キーでオレンジ色の四角を動かします。公式の説明と同じように、実際のゲームではクラス(class)にまとめて書くのがおすすめです。self.x と self.y が「今の位置」で、update で変え、draw で描きます。

move_box.py / 全文
import pyxel


class App:
    def __init__(self):
        pyxel.init(160, 120, title="Move the box")
        self.x = 76
        self.y = 56
        pyxel.run(self.update, self.draw)

    def update(self):
        if pyxel.btn(pyxel.KEY_LEFT):
            self.x -= 2
        if pyxel.btn(pyxel.KEY_RIGHT):
            self.x += 2
        if pyxel.btn(pyxel.KEY_UP):
            self.y -= 2
        if pyxel.btn(pyxel.KEY_DOWN):
            self.y += 2
        self.x = max(0, min(self.x, pyxel.width - 8))
        self.y = max(0, min(self.y, pyxel.height - 8))

    def draw(self):
        pyxel.cls(1)
        pyxel.rect(self.x, self.y, 8, 8, 9)
        pyxel.text(4, 4, f"X={self.x} Y={self.y}", 7)


App()

hello.py と同じフォルダーに保存して、次のコマンドで実行します。

Windows
.venv\Scripts\python.exe move_box.py
macOS / Linux
.venv/bin/python move_box.py
  • pyxel.btn(pyxel.KEY_LEFT) は、左キーを押している間ずっと True になります。押した瞬間の1回だけを知りたいときは pyxel.btnp を使います。
  • max(0, min(self.x, pyxel.width - 8)) は、四角が画面の外へ出ないように位置を制限しています。pyxel.width - 8 は「画面の幅 − 四角の幅」です。
  • 画面の左上に、今の位置を X=76 Y=56 のように表示します。f-string を使って、数字を文字の中に入れています。
1か所だけ変えてみよう

self.x -= 2 などの 2 を 4 に変えると、速く動きます。pyxel.rect の最後の 9(オレンジ)を 8(赤)に変えると、色が変わります。変える前に「どうなるか」を予想してから実行してみましょう。

覚えておくと便利なコマンドとキー

Pyxelを入れると、pyxel というコマンドも使えるようになります。よく使うものをまとめました。

pyxelコマンドの一覧
コマンドできること
pyxel run ファイル.pyPythonのファイルを実行します。
pyxel watch フォルダー ファイル.pyフォルダーの中のファイルを保存するたびに、自動で実行し直します。止めるときは、ターミナルで Ctrl+C(Macも control+C)を押します。
pyxel edit ファイル.pyxresPyxel Editor を開いて、画像・タイルマップ・音・音楽を作ります。
pyxel package フォルダー ファイル.pyゲームを1つの .pyxapp ファイルにまとめます。
pyxel play ファイル.pyxapp.pyxapp ファイルのゲームを遊びます。
pyxel app2html ファイル.pyxappブラウザーで遊べるHTMLファイルに変換します。
pyxel app2exe ファイル.pyxapp実行ファイルに変換します(PyInstaller が必要です)。
pyxel copy_examples公式サンプルを pyxel_examples フォルダーにコピーします。
.venv を使っている場合

このサイトの手順のように .venv に Pyxel を入れたときは、pyxel の代わりに .venv\Scripts\python.exe -m pyxel(macOS / Linux は .venv/bin/python -m pyxel)と書くと、そのフォルダーの Pyxel で実行できます。たとえば公式サンプルのコピーは .venv\Scripts\python.exe -m pyxel copy_examples です。

ゲームを動かしている間に使えるキー

ゲーム実行中に使える特別なキー
キーできること
Escゲームを終了する
Alt(Macは Option)+ 1スクリーンショットをデスクトップに保存する
Alt(Option)+ 3画面の録画(最大10秒)をデスクトップに保存する
Alt(Option)+ Rゲームをリセットする
Alt(Option)+ Enter全画面表示を切りかえる
Alt(Option)+ 0動作の速さ(FPSなど)の表示を切りかえる

スクリーンショットや録画は、作ったゲームを人に紹介するときに便利です。

Pygame・Scratch・Unityとの違い

ゲームを作る道具は、Pyxelのほかにもたくさんあります。よく比べられる3つとの違いを、ざっくりまとめました。

表は横にスクロールできます。

Pyxel・Pygame・Scratch・Unityの比較
PyxelPygameScratchUnity
書き方Python(文字で書く)Python(文字で書く)ブロックを組み合わせるC#(文字で書く)
画面小さなドット絵の画面。基本は16色解像度や色を自由に決められるステージの大きさが決まっている2D・3Dどちらも。高解像度も
絵や音画像・音のエディター付き別のツールで用意する絵や音のエディター付き素材は別のツールや、素材のストア(Asset Store)で用意する
ブラウザーで公開公式のコマンドでHTMLにできる別の仕組みを使うScratchのサイトで共有できるWebGL向けに書き出せる
向いている人Pythonで小さなゲームを完成させたい人Pythonで自由度の高い2Dゲームを作りたい人プログラミングがはじめての人本格的な2D・3Dゲームや、スマホ向けのゲームを作りたい人

どれが優れているというより、目的によって選ぶものです。「まずPythonでゲームを1本完成させたい」ならPyxel、「Pythonで解像度や色を自由に使いたい」ならPygame、「将来は3Dゲームやスマホアプリを作りたい」ならUnity、という選び方がわかりやすいでしょう。

Pyxelで身につけた「入力を読む → データを変える → 画面を描く」というゲームの考え方は、ほかのエンジンに移っても、そのまま役に立ちます。

各ツールの機能や対応環境は変わることがあります。くわしくは、それぞれの公式サイトで確認してください。

次に何を作る?

Pyxelの雰囲気がつかめたら、実際にゲームを1本作ってみましょう。このサイトでは、次の順番で進めるのがおすすめです。

  1. はじめる準備

    PythonとPyxelを入れて、最初の画面を出します。

  2. おばけ洗濯日和の作り方

    いちばんやさしい講座です。キャラクターの移動・当たり判定・得点を、5つのステップで作ります。

  3. 学習順と教材の選び方

    作りたいテーマに合わせて、次の講座を選びます。

この記事で確認したこと

Pyxel 2.9.9 の公式ドキュメント(ユーザーガイド・APIリファレンス・Web版の使い方・よくある質問)とソースコードで、仕様の数字・コマンド・キー操作・初期設定のFPS(30)・色の番号を照合しました。

move_box.py は、Pyxelの代わりに入力と描画命令を記録する模擬モジュールで、キー入力による位置の変化と、画面の外へ出ない処理を確かめています。実際のPyxelのウィンドウでの表示確認と、Pygame・Scratch・Unity の実機での比較は、この記事の作成時には行っていません。