学生の頃にやってたネタではありますが、パックマンの3次元表示です。
当時はSONYのMSXパソコン「HitBit」でNTSC出力をビデオ録画して頑張ってました。
パックマンもどき2017秋 のデータを使って、まずはコースの部分だけ表示できるか試してみます。
$ mv rt_v52 rt_v53 $ cat v53.patch | ( cd rt_v53 ; patch -p1 ) $ cd rt_v53 $ make clean $ make
pac_dat.py を実行して、パックマンもどきのYAMLファイルのデータを生成します。
pac_dat.py を実行すると、まず内部で pac.sh が実行されます。
pac.sh を実行すると パックマンもどき2017秋 のソースとデータファイル、パッチを取得して pac/ 以下に最新版が用意されます。
pac_dat.py の以降の部分では、blk_balls.yaml blk_vars.yaml dots.yaml の3つのYAMLファイルを生成します。
YAMLファイルのロードでちょっと細工をして、インクルードを可能にしてみました。 ut.py に file_read_inc()なる関数を追加してます。 ut.py の yaml_load()関数から、file_read_inc()関数を使うようにして、 インクルードを実現しています。
pac.yaml が最上位のファイルになっています。
$ cat pac.yaml @include defs.yaml @include big_ball.yaml @include blk.yaml @include dot.yaml pac: - kind: exports exports: [ blk, dot ] m2g: - 'ax.slide([-21.0/2,-23.0/2,0])' - ax.zoom_y(-1) all: - kind: exports exports: [ big_ball, pac ] # EOF
てな具合にインクルード行が並びます。
例えば blk.yamlの 中身は
$ cat blk.yaml @include defs.yaml blk_ball: - kind: ball rtd: '*rtd_a' m2g: - ax.zoom_all(0.25) @include blk_balls.yaml blk_h: - kind: pipe rtd: '*rtd_a' m2g: - ax.slide_z(1) - 'ax.zoom([0.25,0.25,0.5])' - ax.rot_y(90) blk_v: - kind: pipe rtd: '*rtd_a' m2g: - ax.slide_z(1) - 'ax.zoom([0.25,0.25,0.5])' - ax.rot_x(-90) @include blk_bars.yaml blk: - kind: or args: - kind: exports exports: - blk_balls - blk_hs - blk_vs def_col: '*blue' # EOF
で、ここから pac_dat.py の実行で生成されたYAMLファイルをいくつかインクルードして、上位のpac.yaml に届かせてます。
また、file_read_inc()では超簡単な対処ですが、一応多重インクルードを抑制してます。 なので、そのファイルで直接使うものは、重複を気にせずどんどんインクルードしてもOKです。
$ chmod +x pac_dat.py $ ./pac_dat.py $ ./cg.py eyep=[0,0,0],[60,60,40],10 sec=20 yaml=pac.yaml data_name=all name=out_v53/pac_tst div=2 fps=4 : wh : 19200/19200(100.0%) : fin 2.85s frm : 80/80(100.0%) : fin 8m 3.21s estimated 16.11 hour at 640*480 30fps
$ ./cg.py eyep=[0,0,0],[60,60,40],10 sec=20 yaml=pac.yaml data_name=all name=out_v53/pac : wh : 307200/307200(100.0%) : fin 40.47s frm : 600/600(100.0%) : fin 12h 55m 20.99s $ ls -lt out_v53/ | head -rw-r--r-- 1 kondoh staff 3094628 6 22 11:48 pac_4.mp4 -rw-r--r-- 1 kondoh staff 3140605 6 22 11:48 pac_3.mp4 -rw-r--r-- 1 kondoh staff 3145227 6 22 11:46 pac_2.mp4 -rw-r--r-- 1 kondoh staff 3137667 6 22 11:45 pac_1.mp4 -rw-r--r-- 1 kondoh staff 13737785 6 22 11:44 pac.mp4 :
ちょっとコースを仕切る円柱が太すぎたかな。
パワーアップえさの球は点滅させる代わりに、 色を赤から黄色に2秒周期で変化させてみました。