クリエイター手抜きプロジェクト[504]IoT編 IchigoJamのPCG機能/古籏一浩

投稿:  著者:  読了時間:6分(本文:約2,500文字)



今回は、IchigoJamのPCG機能について説明します。

PCGとはProgrammable Character Generatorの略で、自由にキャラクタ(文字)の形状を定義できる機能のことです。

IchigoJamには、自由に図形を描いたりするグラフィック機能がありません。グラフィック機能がないということは、点を描画することはもちろん、線や円などの図形を描くこともできません。

15年くらい前のWebブラウザも、自由にグラフィック描画ができなかったので、似たようなものかもしれません。今ではHTML5のCanvas機能によって、自由にグラフィック描画できるので、多彩な表現が可能になっています。

IchigoJamは自由なグラフィックはできませんが、PCG機能を使うことで文字の形状を定義できるので、ある程度自由な表現が可能になっています。ただし、すべての文字の形状を定義できるわけではありません。





IchigoJamで扱える文字数は256です。どうして256文字かというと、2の8乗=256だからです。まあ、この説明は必ずしも正しいわけではありませんが、2のn乗であることには間違いありません(128文字でも64文字でもいいわけで)。

http://fukuno.jig.jp/app/IchigoJam/charmap.html

256文字のうち、自由に形状を定義できるのは32文字だけです。文字コードで#E0〜#FFまでです。10進数なら224〜255の文字コードになります。

これらの文字の形状は、メモリの#700〜#7FFに入っています。このメモリ内容を書き換えることで、文字の形状が変わります。

文字の形状を変更するというのは、論理演算の時にも多少扱いました。POKE命令を使って値を書き込めばよいのです。文字の形状を読み出す場合は、PEEK命令を使います。

文字の形状は1文字につき8バイト必要です。文字コードが#E0の場合、以下のメモリにある8バイトになります。

#700 文字の一番目のライン
#701 文字の二番目のライン
#702 文字の三番目のライン
#703 文字の四番目のライン
#704 文字の五番目のライン
#705 文字の六番目のライン
#706 文字の七番目のライン
#707 文字の八番目のライン

実際に文字の形状を定義してみましょう。まず、CLP命令を使って文字パター
ンを初期化します。その後、文字コード#E0の文字を表示しておきます。

CLP
?CHR$(#E0)

次に、POKE命令を使って形状を定義します。POKE命令は最初に書き込むアドレス、以後の値が書き込むデータになります。

`は以後に続く値が2進数ということを示します。

POKE #700,`10000000
POKE #701,`01000000
POKE #702,`00100000
POKE #703,`00010000
POKE #704,`00001000
POKE #705,`00000100
POKE #706,`00000010
POKE #707,`00000001

命令を実行するたびに、文字の形状が変わるのが分かります。ちなみに、以下のように連続して書き込むこともできます。

POKE #700,`10000000,`01000000,`00100000,`00010000,`00001000,`00000100,`00000010,`00000001

IchigoJamはメモリが少ないので、以下のように16進数にした方がメモリの節約にはなります。

POKE #700,#80,#40,#20,#10,#08,#04,#02,#01

次回はPCGを使ったスクロール処理について説明します。


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/

セーラー服おじさんに丁寧に解説してもらっても、しっくりこないのが、あの世界……。同じ場所に異なる状態が同時に存在する、というのを自分なりに理解したいなあと思って考えたんですが、まあネタなので……。

で、ネタなので「北斗の拳」─「北斗の拳 いちご味」、「賭博黙示録カイジ」─「中間管理録トネガワ」、「進撃の巨人」─「進撃! 巨人中学校」みたいな関係(笑う方)ということで。おかしさ無限大に振り切った方がいいんでしょうけど難しい……。(次はゾンビネタかタイムリープネタのつもり)

長野県で放送されている「フランダースの犬」が、そろそろ最終回。最終回は……見なければネロもパトラッシュも死なない……観測しなければ最終回は決定しないはずなので、このまま見ない方がいいのか……

・みんなのIchigoLatte入門 JavaScriptで楽しむゲーム作りと電子工作
https://www.amazon.co.jp/dp/4865940936/
[正誤表]
http://www.openspc2.org/book/error/ichigoLatte/

・After Effects自動化サンプルプログラム 上巻、下巻
https://www.amazon.co.jp/dp/4844397591/
https://www.amazon.co.jp/dp/4844397605/

・IchigoLatteでIoT体験
https://www.amazon.co.jp/dp/B06X3X1CHP/
http://digiconcart.com/dccartstore/cart/info/2561/218591/

・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/

・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/

・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/

・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/

・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/