mieki256's diary



2019/02/01(金) [n年前の日記]

#1 [movie] 「マッドマックス 怒りのデス・ロード」を視聴

NHK-BSで放映された版をようやく視聴。

凄いな…。どうやってこんな映像を作ったのか…。

関連情報をググってみて、完成までに遭遇したトラブルの数々を知り、ますます凄いなと。よくもまあ、こうして完成させたものだなあ…。

2019/02/02() [n年前の日記]

#1 [pc] 最も普及していたレトロPCってどれなんだろう

ふとなんとなく、日本国内で最も普及していたレトロPCって何だろうなあ、てなあたりが気になったわけで。まあ、海外なら、どうせ Apple II だろうけど、日本国内ではどの機種だろうなと。

Wikipedia で、販売台数 or 出荷台数を眺めれば、おおよそ見当がつくのではないかしら。と思って眺めてみたけれど、その手の台数が載ってない機種が多くて…。これだけではちょっと分からんなと。

一応、データを見かけたのは、以下の機種ぐらい。

_PC-8000シリーズ : 25万台
_PC-6001 : 15万台
_FM-7 : 22万台
_MZ-80K + MZ-80C + MZ-80K2 : 10万台
_M5 : 10万台 + α
_ぴゅう太 : 国内4万台 + 海外8万台
_X68000シリーズ : 13万台
_FM TOWNSシリーズ : 50万台
_MSX : 国内200万台、海外200万台、HB-F1XD + FS-A1F で22万台、PC-8801シリーズは100万台未満

「シリーズ全体で何万台」というデータと、「特定機種が何万台」というデータが混在してることに注意。MSXなんて多数のメーカから色んな機種が出てたから、どの機種が何万台売れていたか、そこまではよく分からないなと…。

当時、 _8ビット御三家 の一つとして扱われていた記憶もある MZ or X1 は、販売台数がほとんど不明なあたりが気になったりもして。もしかして他のPCと比べたら、実態はさほど売れてなかったのではないか、濃いユーザが多かったから若干目立ってただけなのでは、という疑念が…。だからデータが残っていないのでは…。

JR-100、JR-300、JR-800、ベーシックマスター、SMC-70、SMC-777、パソピア、あたりは、どのくらい売れていたのだろう…。

こういうソレは、当時印刷された文献を探さないと分からないのだろうな。

海外で一番普及していたのは Apple II ではないらしい。 :

海外では Apple II が一番売れていたのかなと思い込んでいたけれど、そうではないらしい。 Wikipedia の情報によると…。

_Apple II - Wikipedia : 500万台
_コモドール64 - Wikipedia : 1700万台

販売総数は1993年の販売終了までに1250万から1700万台とされ、単一機種としては最も販売台数の多いパーソナルコンピュータであり、今もこの記録は破られていない。

コモドール64 - Wikipedia より


コモドール64が、最も普及したレトロPCだったのか…。だからあちこちで名前を見かけるのね…。

#2 [pc][cg_tools] 若干丸みを帯びた箱を作ってみたものの

_PC-6001のペーパークラフトを作ってみた ものの、角ばってるあたりがどうにも気になっていて、もうちょっと丸みを帯びた形にできないものかと試行錯誤していたのだけど。

papercraft_ss_01.jpg

papercraft_ss_02.jpg

一応、糊付け不要で、かつ、多少は丸みをつけることができたものの…。正直、コレでは、丸みがついていても、ついていなくても、さほど変わらんなと…。努力した甲斐はほとんど無かった…。ということで、これまでの試行錯誤は無駄でした、という扱いにして作業を終えようかなと。

せめて、pdf だけでも置いときます…。何かに使えそうなら、自由に使ってください…。

_box_layout_take6.pdf

それにしても、何故 PC-6001 は丸い印象を受けるのだろう。どのあたりの形状がポイントなのかなあ…。

#3 [tv] 「トクサツガガガ」実写ドラマ版第3話を視聴

NHK総合で放送されている、実写ドラマ「トクサツガガガ」第3話を視聴したのだけど。途中でちょっと気になるシーンがあって、そこから色々考えてしまったので、そのあたりをメモ。思考メモ。

以下、若干ネタバレ。

前提。 :

このドラマでは、日常風景の中に、突如特撮ヒーローが現れるシーンが時々出てくるのだけど。それらのヒーローは、あくまで、「ヒロインの妄想世界に出現しているキャラ」という位置付けで。故に、周囲に居る人物には特撮ヒーローの姿が見えていない、という光景として描かれていて。

例えば、1話においては…。
  • 冒頭、電車内にいきなり出てきたヒーローの姿を、周囲の乗客はガン無視している。
  • カラオケボックスの中でウロウロしているヒーローと怪人の姿を、ヒロインと同席していた職場の同僚達はガン無視している。

「ヒロインには見えている、これらのヒーローや怪人は、第三者から見えていませんよ」「何故ならコレは、妄想の産物ですから…」と視聴者に説明している描写なわけで。

気になったシーン。 :

ところが、第3話では、そのルールが破られる。ヒーローの姿を、たまたま通りかかった警官が目撃して、更には、ヒーローの頭をペシッと叩いてツッコミまで入れてしまう。

個人的には、そのシーンを見た瞬間、「あっ。それはやっちゃいけない」と思ってしまったわけで…。制作側のメタなお遊びということは分かるのだけど、そこまでやっちゃうとルールが変わる ―― 「作品世界の法則が乱れる」のだよなあ、と。

発生する矛盾と作品崩壊の危険性。 :

今後、ドラマの中で描かれている「リアル」を「番組内現実」と呼称するとして。

「番組内現実」で生きている、ヒロイン以外の登場人物達が、ヒロインの「妄想内存在」であるはずのヒーローを、第3話の警官のように視認できるのだとしたら…。

その場合、1話の各シーンは矛盾したシーンになってしまう。本来であれば…。
  • 電車内の乗客は、突如出現したヒーローの姿に驚き、スマホを取り出してカメラで撮ってネットにアップするだろうし。
  • カラオケボックス内の同僚達は、ヒーローと怪人の登場に驚き、これどんなイベントなの、誰が仕掛けたのよ、いやあ凝ってるなあ、と騒ぐだろう。
でも、そんな描写はしてなかった。1話の描写はおかしい、矛盾してる、という話になる…。

また、番組内現実の登場人物が、妄想内存在に対して、ツッコミという肉体的接触を行うことが可能だとすれば、逆もまた然り。妄想内存在でしかなかったはずのヒーローが、番組内現実に対して物理的に何かを行うことだって可能ですよと、視聴者に説明するシーンになってしまう。第三者がヒーローを叩けるのだから、ヒーローが第三者を殴ることもできるだろうと、誰でも無意識に思ってしまうよなと。

例えばの話、ヒロインの同僚のチャラ男が登場した際、ヒロインが「ウザい! 消えろ!」と思ったら、ヒロインの妄想内ヒーローが出現して、赤青黄の三位一体必殺技を繰り出してチャラ男を消し炭にする…。ヒーローにツッコミを入れるシーンがアリならば、ヒロインにとって邪魔な存在をヒーローが消去して回る展開だってアリになってしまう。

しかし、そんな展開が出てきたら、何のためにヒロインが番組内現実と ―― ヒロインが言うところの「リアル」と戦っているのか分からなくなる。作品のテーマが根底から崩れてしまうわけで。

何故そんなシーンを挿入したのか。 :

しかし、何故、作品を台無しにしかねない、そのような危険なシーンをスタッフは挿入してしまったのか…。

もしかすると、3話の後半、ヒロインと少年が妄想世界を共有するシーンを見せるための下準備だったのかな、と思えてきたりもして。

本来、ヒロインの妄想世界も、少年の妄想世界も、他者が覗き見ることはできない。しかしそれでは後半のクライマックスが描けない。ここは基本ルールを逸脱せねばならないが、いきなりそのシーンだけで逸脱を始めたら違和感が残ってしまう。

であれば事前に、「このドラマにおいて妄想世界は他者と共有することが可能」というルールも提示しておく必要があるのではないか。みたいなことを、脚本家さん、もしくは監督さんが考えたのかなあ、と。

てなことを一瞬思ったりもしたのだけれど。よく考えてみたら後半のシーンは、妄想世界を共有してないのかもしれないよなーと思えてきたりもして。

アレはあくまで、ヒロインだけが見ていた妄想世界なのではないか…。少年は少年で、もっと違う妄想世界を見ていたのではあるまいか。例えばの話、少年側の妄想世界では、イケメン若手俳優が演じる、成長した少年の姿がそこにあったりしたのではないか…。

となると、件のシーンの描き方も変えられる。少年が台詞を喋る時、イケメン若手俳優がそこに映っていて。ヒロインが台詞を喋る時、子役の少年がそこに映っていて。てな見せ方もできたかもしれない。大筋では双方似たような妄想をしているけれど、それぞれ細部は異なる妄想世界を見ているのだ、何故なら二人は、お互い共感できるところはあるけれど、やはり別々の人間なのだから、という伝え方も可能だったように思えてきたり。 *1

しかしそうなると、警官がヒーローにツッコミを入れるシーンは、やはり意味不明になる。せめて、このシーンはお遊びですよ、深く考えないでね、と分かりやすくする記号が必要だったのではないか…。例えばそのシーンだけ通常は出てこないフレームが追加される、等々、何かしらやり方はあるよなと。

などと考えていくと、あの警官のシーンを挿入したのは、脚本家さん、もしくは演出家さんの考えが浅いんじゃないかな、と思えてくるわけで…。それとも、自分が読めていない、もっと深い考えがあって、挿入されたシーンなのだろうか…。

そこまでの話ではないのかも。 :

などとモヤモヤ考えてしまったけれど。もしかすると、単に原作漫画にちょこっと載ってたやり取りだった可能性もあるよなと…。

漫画の場合、登場人物がコマの枠外の原作者と喧嘩を始める、なんてノリもアリだったりするし。そして、原作漫画でここまでやってるのだから映像版でもアリだろう、と判断してもおかしくないし。その程度の話なのかもしれない…。

漫画の場合、小ネタを小さいコマで描いたり、コマの隅っこにちょこっと描いたりして、「これは小ネタですよ」「メインストーリーに絡むほどのネタじゃないですよ」と伝えることができるのが美味しいよなと。映像作品はフレームサイズが変わらないので、小ネタもマジネタも等価に受け止められてしまう。

漫画の見開きページのような拡大方向は無理だとしても、フレームを小さくするぐらいなら、映像作品でもできるのではないか、と思ったりもするのだけど…。まあ、そういう見せ方をしているアニメを稀に見かけたりもするけれど。担当したコンテマンが、漫画の強みについて自分なりに考えたことがあるから、そういうコンテを描けるのだろうな…。これがフツーのコンテマンだと、どんなネタも、同じフレームサイズで見せちゃう…。子供の頃から浴びるように漫画作品を読んでいるはずなのだから、少し考えを巡らせば、漫画独自の表現に気づいてアレンジできそうな予感もあるのだけど…。

ルール無用にするためのルールも必要。 :

個人的には、メタ描写は避けるべきとは欠片も思ってないし、妄想世界を第三者が目撃できるルールでも、目撃できないルールでも、どちらでもいいよな、どちらが正解というわけでもないだろう、とも思っていて。このあたり、単に、「この作品世界ではこういう法則が働きます」てなあたりを決めといたほうがいいよね、ぐらいの話でしかなく…。

例えば、「ガルパン(ガールズ&パンツァー)」の世界では、戦車に砲弾が当たっても、乗ってる少女達は絶対に命を落とさない。どう見てもおかしい描写だけど、「この作品はそういうルールですよ」と言われたら、視聴者も、「そういうルールなのね」と受け止めて楽しめるわけで。ところが、死なないはずの少女達が、回によって、突然脚本上の都合で命を落としたりすると、視聴者は「???」になってしまう…。まあ、そういう展開は出てこないから、ガルパンは最初から最後までちゃんと楽しめるわけですが。

各作品には、どんなルールを設定してもOKで。だけど、設定したルールは守らないと、作品が台無しになっちゃう。その場のノリで思い付きをガンガン入れちゃう、そんな自由な作りをしたいなら、それが可能なルールも最初から決めておかないといかんのだろうな、という話でしかないのですが。

「コミカルな作品だから、ギャグ作品だから、何をやってもいいよね」と捉えていたとしたら、それは浅いよなと。何をやってもOKにするためのルールを設定しておく必要があるよなあ、そこをサボっちゃダメだろうなあ、みたいな。

ルールを決めない、というルールを設定した作品としては、「深夜天才バカボン」あたりを思い出すなと。なんでもありだから、その分、展開も滅茶苦茶に。毒を食らわば皿まで、ならぬ、メタをやるなら…何だろうな。とにかく、メタをやる時は、そのぐらいの覚悟で挑んでほしい、てなところもちょっとあるなと。

まあ、回やネタごとにルールは変わります、というルールを設定することも可能ですが。「おそ松さん」あたりはそんな感じだったけど、皆フツーに楽しんでたし。

てなことを思ったりしたのでメモ。

実写作品の枠に囚われない意欲的な表現が時折出現するドラマでもあるが故に、こういうアレコレを考える機会を与えてくれたりもするわけで。そういう意味でも、件のドラマ、なかなか面白いな、これは興味深い作品だなと、感心しながら視聴しております。NHK、やりますなあ…と。

妄想世界の共有。 :

考えてみたら、「妄想世界の共有」というネタは、使い道がありそうだなと。「アキバレンジャー」はソレを基本設定にしていたし、「千年女優」もソレを見せ方の柱にしていたし。

一つの作品を成立させるための基本設定として活用できる、それだけのポテンシャルを、「妄想世界の共有」というネタは持っているのだ…と捉えることができそうな、そんな気もしてきたり。

*1: 本編中、ヒロインの妄想世界内で、ヒロインが抑圧されていた少女時代に戻ってる描写もあったのだから、少年が自身の成長した姿を妄想するのもアリだろう、とも思えるし。あるいは、視聴者から、「アレ? これもしかしてトッキュウジャーのオマージュ?」的ツッコミを貰えた可能性も…? いや、ちょっと無理があるか…。

2019/02/03() [n年前の日記]

#1 [python][pyxel][tic80] Pyxelはどうして人気があるのだろう

ふとなんとなく。 _Pyxel はどうして人気があるのだろうなと。 _TIC-80 も Pyxel も、どちらも無料で使えるし、やれることはさほど違わないけれど、Pyxel ばかりが各blog等で取り上げられてる印象が…。何故。


TIC-80 のほうが良さそうに思えるのだけど、皆さん、どうして TIC-80 をガン無視して、Pyxel をもてはやすのか。

てなわけで、そのあたりが気になって Pyxel を紹介してる各記事を眺めてみたのだけど。もしかして Pyxel が人気なのは、Python で書けるという点が大きいのかなと。ほとんどの記事が、「機械学習の分野で人気がある Python」「その Python を使ってゲームが作れる」と謳っていて。

TIC-80 は、Lua で書くからなあ…。「Lua で書けるよ」がメリットに感じられるかというと、おそらくビミョーなのだろう…。 *1

Pyxel は作者が日本人、という点も大きいのだろうか。と思ったのだけど、海外記事ではそのへん関係無いよな…。

Pyxel もブラウザ上で動けば凄いのだけど、そもそも Pythonスクリプトをブラウザ上で動かすことはできるのだろうか…。
*1: まあ、TIC-80 は JavaScript でも書けるらしいけど。と言っても、自分はそっちで書いてみたことがないので、実態がよく分からんのだけど。

2019/02/04(月) [n年前の日記]

#1 [linux] Linux Mint機を19.0から19.1にアップグレード

TV台の下に置いてある薄型PCの、Linux Mint 19.0 を 19.1 にアップグレードした。とメモ。

19.0のパッケージを全て更新してから、スナップショットを取って、19.1 にアップグレード。各種設定ファイルは、そのまま残ってくれたっぽい。おそらく、19.x から 20.x になる時は、ごっそり初期化されそうな気もするけれど…。

以下の記事が参考になった。ありがたや。

_Linux Mint その103 - Linux Mint 19からLinux Mint 19.1へアップグレードするには - kledgeb

#2 [python][pyxel] pyxeleditorを試用

現行版の _Pyxel には、pyxeleditor という、ドット絵、タイルマップ、サウンド、ミュージックが編集できるエディタが同梱されているらしいので、試用してみたり。今回はドット絵編集とマップ編集を試してみた。環境は Windows10 x64。

機能豊富なツールというわけではなかったけれど、Pyxelのデフォルト解像度は低いから、このぐらいの簡易編集ができればそこそこ充分かもしれない。ドットエディタやマップエディタを別途用意しよう、となるとハードルが微妙に上がってしまうけど、最初から入ってるよ、となればハードルは下がるので、PICO-8 や TIC-80 もそうだけど、こういう構成は賢いなと思えてきたりもして。

でも、選択範囲内の反転機能ぐらいは欲しい気もする…。まあ、その場合は、既存のドットエディタを使ってください、みたいな話になるのかな。

2019/02/05(火) [n年前の日記]

#1 [pyxel] PyxelがWindows8.1タブレットPC上で動かなかった

手持ちの Windows8.1 タブレットPC、DELL Latitude 10 で Pyxel を動かせないか試していたのだけど。Python 3.7 だの Pyxel だのをインストール後、サンプルを動かそうとしたらエラー発生。

C:\Users\hoge\Documents\prg\pyxel\pyxel_examples>py 01_hello_pyxel.py
Traceback (most recent call last):
  File "01_hello_pyxel.py", line 20, in <module>
    App()
  File "01_hello_pyxel.py", line 8, in __init__
    pyxel.run(self.update, self.draw)
  File "C:\Python37-32\lib\site-packages\pyxel\app.py", line 255, in run
    main_loop()
  File "C:\Python37-32\lib\site-packages\pyxel\app.py", line 248, in main_loop
    self._draw_frame()
  File "C:\Python37-32\lib\site-packages\pyxel\app.py", line 477, in _draw_frame

    self._border_color,
  File "C:\Python37-32\lib\site-packages\pyxel\renderer.py", line 119, in render

    self._draw_shader.set_uniform(name, "1i", i)
  File "C:\Python37-32\lib\site-packages\pyxel\gl_wrapper.py", line 45, in set_u
niform
    getattr(gl, "glUniform" + param_type)(loc, *params)
  File "C:\Python37-32\lib\site-packages\OpenGL\error.py", line 232, in glCheckE
rror
    baseOperation = baseOperation,
OpenGL.error.GLError: GLError(
        err = 1282,
        description = b'\x96\xb3\x8c\xf8\x82\xc8\x91\x80\x8d\xec',
        baseOperation = glUniform1i,
        cArguments = (18, 0)
)

Hello World すら実行できないのか…。まあ、Pyxel のみならず、TIC-80 も動作しなかった環境なので、「ああ、やはりそうなるか」てな印象なのだけど。

Dell Latitude 10 のスペックは以下。 また、 _OpenGL Extensions Viewer で、OpenGL への対応状況を確認したところ、OpenGL 2.1 までの対応だった。一応、OpenGL Extensions Viewer 上なら、四角い箱が滑らかにクルクル回る様子は表示できた。

Pythonその他のバージョンは以下。
エラーメッセージを眺めた感じでは、glUniform1i を使おうとしてエラーが出ているように見えたけど。 _OpenGL 2.0 から _glUniform が使える はずだし、対応してる OpenGL のバージョンが古過ぎて、というわけではないように思える…。 _shaders.py は、 _GLSL の version 120 を指定してるから、OpenGL 2.1 が前提で書かれてる気配もあるし…。

メインPC、Windows10 x64 + GPU : NVIDIA GeForce GTX 1060 上ではフツーに動いてるんだよな…。よくわからん…。

まあ、Atom Z2760 は、「PowerVR系の Windows10用ビデオドライバが用意できないから Windows10 へのアップグレードはできません」と切り捨てられたぐらいにダメなCPUだし。そもそも Intel は腐ったビデオドライバを出すことで有名なので、「内蔵GPUを使ってる環境なんて知らんがな」と切り捨てちゃうのもアリかもしれない…。と言っても、その場合はノートPCの類までごっそり切り捨てることになりそうな。

つくづく、OpenGL は鬼門。

DELL Latitude 10のOpenGL対応状況。 :

一応、 _OpenGL Extensions Viewer から保存したログを置いときます。

_glreport_delllatitude10.txt

スクリーンショットも貼っておこう…。役に立つのか立たないのか、分からんけど…。

dell_latitude10_opengl_ss01.png

dell_latitude10_opengl_ss02.png

2019/02/06(水) [n年前の日記]

#1 [pyxel][cg_tools] ドットエディタEDGE/EDGE2及びGIMPで使えるPyxel用のパレットファイルを作成

_Pyxel を触っているうちに、ふと、ドットエディタ、 _EDGE / _EDGE2 で使えるPyxel用のパレットファイル(*.pal)があったら作業が楽になるのではと思ったわけで。

ということで、一応作ってみたりして。ついでに、GIMP用のパレットファイル(*.gpl)も作成。使えそうなら自由に使ってください。

_pyxel_palette_data_20190206.zip

中には以下のファイルが入ってます。
一応、テキスト形式のファイルも、そのまま置いておこうかな…。EDGE/EDGE2用パレットファイルはバイナリファイルっぽいからそのまま置けないけど…。

_Pyxel.gpl.txt
_pyxel_palette.csv.txt
_pyxel_palette.txt

しかし、作った後で気がついた。

Pyxelのパレットデータは、PICO-8と同じだから、Web上のあちこちで既に公開されてる、PICO-8用のパレットファイルを使えば済んだのだな…。わざわざ、GIMPパレットファイルを新規に作る意味は無かった。無駄な作業をしてしまった…。

#2 [cg_tools] ドットエディタEDGE/EDGE2のパレットファイルは謎

EDGE / EDGE2 のパレットファイルを作ろうとした際に、なんとなく思ったけれど。今時バイナリファイルでデータを持つのってどうなんだろうなと。このくらいのデータ量なら、GIMPのパレットファイル(.gpl)のように、テキストファイルで持ったほうが、別途編集しやすいような…。

まあ、EDGE / EDGE2 の、パレットファイルのフォーマットが謎というかクローズドなので、変換ツールの類を作るのが面倒で、せめてテキスト形式だったら良かったのに、などと思ってしまった、それだけの話だったりするのだけれど。

また、EDGE には、パレットデータのRGB値をテキストファイルで出力したり、逆にテキストファイルから読み込んだりする機能があるのだけれど。出力したソレが、入力用として使えないあたりも謎で。どうして同じ形式にしておかなかったのか…。読み込むためのデータを作る際、フォーマットが不明だからちょっとハマってしまったり。出力形式と同じなのだろうと思い込んでテキストを作って読み込んだら、妙な色になっておかしいなと。只のカンマ区切りを読み込ませるのだな…。

まあ、EDGE は既に開発完了したツールだから、今更そのあたり考えてみてもしょうがないのだけど。

#3 [pyxel] Pyxelをもう少し試したり

以前、Windows10 x64上で、 _Pyxel をインストールして、サンプルファイルを動かすところまでは試してみたことがあるのだけれど。

_mieki256's diary - Pyxelを試用してみたり

せっかくだから、自分も何かしら書いて、動かしてみようかなと。

そんなわけで、まずは Hello World を。 _TIC-80 で、new をした際に作られる雛形と同等の処理をするソースを記述。

helloworld_pyxel_ss01.gif

_helloworld.py
"""
Pyxel Hello world.

Windows10 x64 + Python 3.7.1 32bit
"""

import pyxel


class App:
    def __init__(self):
        w, h = 160, 120
        pyxel.init(w, h, caption="Hello World", fps=60)

        pyxel.load("assets/helloworld.pyxel")

        self.x = pyxel.width / 2
        self.y = pyxel.width / 2
        self.counter = 0

        pyxel.run(self.update, self.draw)

    def update(self):
        if pyxel.btnp(pyxel.KEY_Q):
            pyxel.quit()

        if pyxel.btn(pyxel.KEY_LEFT):
            self.x -= 1
        if pyxel.btn(pyxel.KEY_RIGHT):
            self.x += 1
        if pyxel.btn(pyxel.KEY_UP):
            self.y -= 1
        if pyxel.btn(pyxel.KEY_DOWN):
            self.y += 1

        self.counter += 1

    def draw(self):
        # clear screen
        pyxel.cls(0)

        # draw image
        x, y = self.x - 8, self.y - 8
        u, v, w, h = 0, 0, 16, 16
        img = 0
        colkey = 10
        pyxel.blt(x, y, img, u, v, w, h, colkey)

        # draw text
        col = self.counter % 16
        pyxel.text(56, 16, "Hello World!", col)


App()

Pyxel用のリソースファイル(*.pyxel)を読み込んで処理するので、以下のファイルも入手・解凍して使わないと動かないです。

_helloworld_pyxel_20190206.zip

ファイルの配置は以下のような感じに。
.
|-- assets
|   `-- helloworld.pyxel
|
`-- helloworld.py

実行は、以下。
python helloworld.py

解説。 :

簡単に解説。

Pyxel を使う時は、import pyxel と最初のあたりに書いておく。

pyxel.init(w, h, caption="Caption", fps=60) で、Pyxelの初期化をする。fps= を指定しないと、30FPSになる模様。

pyxel.load(".pyxelへのパス") で、Pyxelのリソースファイル(.pyxel)を読み込む。
  • .pyxel には、画像、タイルマップデータ、サウンドデータ、ミュージックデータが一つにまとまっている。
  • .pyxel は、Pyxel に同梱されている pyxeleditor で作ることができる。

pyxel.run(更新処理関数, 描画処理関数) で、更新処理、描画処理をする関数を渡して、メインループを回し始める。

キー入力は、pyxel.btn(pyxel.KEY_LEFT) のような感じで調べられる。押されっぱなしなら True。押されていなければ False。キー定義の一覧は、 _pyxel/constants.py at master - kitao/pyxel を参考に。

pyxel.btnp(pyxel.KEY_xxx) で、キーを押した瞬間を調べられる。

画像の描画は、pyxel.blt(x, y, img, u, v, w, h, colkey) を使う。
  • x, y が描画位置。
  • img が画像バンク番号。
  • u, v, w, h が、画像のどの位置から、どのサイズで画像を取得するか。
  • colkey が、透明色扱いにする色番号。

画像を反転描画したいときは、w や h にマイナス値を与える。x, y, u, v はそのままでいい。

文字列の描画は、pyxel.text(x, y, "文字列", 色番号) を使う。フォントサイズは…1文字が4x6ドットだろうか…。3x5ドット+余白が縦横1ドット、みたいな感じ。

これだけ分かっていれば、2Dゲームっぽい画面表示ができるのではないかと。

アニメGIFとしてキャプチャできない。 :

Pyxelのドキュメントには、
* Alt(Option)+3
画面キャプチャ動画 (gif) をデスクトップに保存する (最大30秒)

pyxel/README.ja.md at master - kitao/pyxel より

と書いてあるのだけど。どうも動作してくれない気配が。

Windows10 x64 + Python 3.7.1 x86 + pyxel 1.0.1 で試したところ、Pyxel のウインドウが応答無しになってしまって…。放置しておけばキャプチャできたりするようだけど、キー入力をしてスプライト相当を動かしながらキャプチャしようとすると、全然撮れていない状態に。そのうちスプライト相当もウインドウ内から消えてしまったりして…。何故。

ググってみた感じでは、もしかすると Mac上ならキャプチャできるのかなと…。Windows上では不具合があるのかもしれない。不便。

仕方ないので、今回は、 _GifCam というツールを使ってキャプチャした。

ちなみに、この GifCam というツールは、ググると、作者さんとは全然関係ない悪質なサイトがトップに出てきて、アドウェア入りのソレをダウンロードする羽目になるので、作者さんのサイトからDLすること。現在の最新バージョンは 5.5 なので、「GifCam 2.0 - ダウンロード」なんてリンクは絶対にクリックしないように。

pyxeleditorは墓場かもしれない。 :

pyxeleditor を使ってドットを打った後で気がついたけど。もしかすると、現状では、pyxeleditor はリソースの墓場かもしれないなと。ドットを打っても、別途、他のツールで利用できる画像として取り出せないなと…。他のツールで作った画像を、D&D(ドラッグアンドドロップ)して、インポートすることはできたのだけど、エクスポートをする手段が用意されてない雰囲気。

TIC-80 のように、画像だけでもエクスポートできれば助かる場面もありそうな予感。

でもまあ、Pyxel から画像データへのアクセスはできるようだし、必要ならば自前でツールを作ることも可能ではあるのかな…。

でも、コマンドラインオプションを指定すると画像をエクスポートできます、みたいな仕様が入ってたら、助かりそうだなと…。

2019/02/07(木) [n年前の日記]

#1 [cg_tools][pyxel] ドットエディタGrafX2が更新されてた

256色画像を編集できる、無料で使えるドットエディタ、 _GrafX2 の新しい版が公開されていたようなので、2.4.2035 から 2.6.2538 にアップデートしてみたり。環境は Windows10 x64 version 1803。

_Downloads - GrafX2

Windows版の場合、3つのセットアップファイルがあるけれど。 それぞれ、GDI使用、SDL2使用、SDL使用で実装されているらしい。今回はGDI版の grafx2-win32-2.6.2538.win32.exe をダウンロードした。

実行すると、インストーラが起動する。任意のフォルダにインストール。

GrafX2 に、Luaスクリプトで色々な機能を追加してくれる、DB's TOOLBOX も、1.3 から 1.4 に更新されていたので、それもダウンロード。

_Pixel Joint Forum: DB's TOOLBOX V1.4 (GrafX2)

GrafX2 へのインストールの仕方は、 _2017/10/11のメモ を参考に。一応、ショートカットキー割り当ての手順が分かる画像も貼っておこう…。

grafx2_ss01.png

以前のベータ版は、画像のセーブができないという致命的な不具合があったけれど。今回の版を少し触ってみた感じでは、ちゃんと画像は保存できた。もっとも、他に何か不具合がありそうな予感も。

PICO-8/Pyxerl用のパレットデータも用意されていた。 :

DB's TOOLBOX V1.4 を追加すると、パレットのプリセットを選べるようになるのだけれど。その中に、PICO-8用のパレットも含まれていた。

grafx2_ss06.png

呼び出し方は…。
  • DB's TOOLBOX のメニューを開く。
  • >PALETTE
  • >PRESETS
  • Custom Palettes (p)
  • 2. PICO-8、の右側にチェックを入れて、OKボタンをクリック。
参考画像も貼っておこう…。

grafx2_ss02.png

grafx2_ss03.png

grafx2_ss04.png

grafx2_ss05.png

Pyxel も PICO-8 と同じパレット値なので…。「GrafX2 は、Pyxel用の画像も作れますよ」と言えそうな気がする。

ただ、GrafX2 2.4.2035 上で、このパレットを選ぶと、グリッド表示ができなくなるなと…。パレットの255番目に白っぽい色を設定すると表示されるようだけど。グリッド表示が255番目の色を必ず使うように実装されているのかもしれない。ちなみに、GrafX2 2.6.2538 では、そういう状態にはならなかった。

不具合発見。 :

触ってるうちに不具合を見つけた。Brush Effects が使えない…。「FX」が点線で囲まれたアイコンをクリックすると、本来なら Brush effects のダイアログが開くのだけど、表示されないか、もしくは一瞬表示されて消えてしまう。

GrafX2 2.6.2538 SDL2版も試してみたけれど、こちらも症状は同じ。Brush effects ダイアログが正常に表示されない。

一つ前のバージョンの、GrafX2 2.6.2475 GDI版を試してみたら、こちらは Brush effects ダイアログが表示された。しかし、今度は DB's TOOLBOX に Alt + 1 を割り当てることができない。Alt + 0 と表示されてしまう上に、Alt + 2 でも Alt + 3 でもメニューが表示されてしまう。また、アイコンにカーソルを乗せてもステータスバーに説明メッセージが表示されない。

やはり何かしら不具合が残っているなと…。GrafX2 2.4.2035 を使っておこうかな…。

2019/02/08(金) [n年前の日記]

#1 [cg_tools][tic80] DB16パレットとは何だろう

TIC-80の標準パレットデータは、DB16 という名前がついているのだけど。

_palette - nesbox/TIC-80 Wiki
_DawnBringer 16 Palette

DB16 とは何だろう? そういう名前のレトロPCが、かつて存在していたのだろうか?

ググってみたら、どうやら DawnBringer さんという方が作ったパレットデータらしい。なるほど、それで DB16 なのか…。

_Pixel Joint Forum: DB16 - DawnBringer's 16 Col Palette v1.0

上記スレッドには、GIMPパレット(.gpl)、GrafX2パレットファイル(.pal)、GraphicsGaleパレットファイルのデータも投稿されている模様。

32色版もあるらしい。

_Pixel Joint Forum: DB32 - DawnBringer's 32 Col Palette V1.0

ちなみに、TIC-80 のGIMPパレットファイルについては、以下でも公開されていた、とメモ。

_TIC-80 初心者講座: マップ・スプライト画像を画像ソフトで描いて取り込もう - Qiita

2019/02/09() [n年前の日記]

#1 [zatta] 三点リーダーは2つ並べるらしいのだけど

自分は普段、何かしらの文を書く際、最後に「…」(三点リーダー)をつけるのが癖になっていて。ちょっと自分の書いてること、思っていることに、ビミョーに自信がない時に、ついついつけてしまう傾向があるというか。

しかし、改めてググってみたら、「…」は必ず2つ並べて「……」にすること、という決まりが存在するらしく。例えば小説を投稿したりする場合、「…」や「・・・」が原稿に書かれていると、それだけでも編集者は投稿作を没にする、てな話まで言われてるようで。

そのあたりを気にする人が多いなら、自分もその流儀に従っておくか。と思って、ここ数日、何度か「……」を打ってみたのだけど。コレは……なんか違う……。そこまで長い無音にしたいわけじゃないというか、書いてる内容にそんなにも自信が無いわけでもなく。コレは気分的に長すぎる……。

かといって、「…」を一切つけないのも、かなり違う。これが正しい、間違いない、絶対の自信がある、と思って書いてるわけでもないし……。

ということで。何度書いてもどうにもしっくりこないので、今まで通り「…」が1つの書き方も、自分の中ではアリにしたいなと。

もし、どうしても気になる人が居るなら、「…」を「……」に変換するフィルタの類でも書いたほうがいいのだろうか…。

#2 [anime][neta] 歳を取ったらグロへの耐性が無くなってきた気がする

「魔法少女特殊戦あすか」というアニメを見ていたら、少女への拷問シーンがあり。その凄惨さにゲンナリして、視聴中止を決定・今後の録画予約を消去してしまったのだけど。少し経ってから考え込んでしまったり。

自分、子供の頃は、「イデオン発動篇」をわざわざお金を出して見に行ったぐらいの属性だったのに。今回、あの程度(?)のシーンを直視できないって、どういうこと? みたいな。例えば、「ボイスラッガー」の腕なども「スゲー」と苦笑しながら(!)見ていた記憶もあるので、昔は気にせず見ていた節があるのだけど。 *1

しかし、そんな自分も、どうも歳を取るに従って、グロへの耐性が無くなってきている気がするわけで。さて、何故だろう?

そういえば、富野監督も、「キングゲイナー」を作ってた際、脚本家さんから提案されたグロいネタを「もうそういうのはいい」と却下した、という話をどこかで聞いた記憶もあるような。あの富野監督ですら歳を取るとそっち系はウンザリゲンナリするのだから、人間にはそのように変化していくメカニズムがあるのではないか、とも思えてきたりもして。

余談。 :

完全に余談だけど。件の作品には深見真氏という作家さんが絡んでるあたりも個人的に困っていて。 *2 「PSYCHO-PASS」シリーズで名前を知って、なんだか気になっていた作家さんではあるのだけれど。考えてみたら、あの作品も、その手のシーンが満載だったなと。もし、そういう描写がとにかく好きで好きで堪らないタイプの作家さんだとしたら、今後、彼(彼女?)の参加作品は最初から視聴しないと決めておいたほうがいいのかもしれない、みたいなことを思ったわけで。

いや、そういうわけにもいかない。件の作家さんは谷口監督の「revisions」にも参加してるのだよな。谷口監督作品は是非とも一応見ておきたいわけで。さあ、困った。

まあ、全作品がそういう方向に走るわけでもない、てな展開を期待するしか。それに、演出家さんによっても、その手のシーンの描き方は違ってくるし。「revisions」には優秀な演出家さんが参加していることを期待しよう。そうしよう。 *3

*1: 他にも、某企画では人間爆弾ネタを盛り込もうとしてディレクターさんからゲンナリした顔で却下されたし。学生時代は、可愛い○○が頭からガブリと食べられちゃう漫画を描いてサークルの先輩達からドン引きされた記憶も。
*2: 「あすか」の該当回は小太刀右京氏の脚本だったので、深見氏に対する判断材料としてはどうなのか、というところもあるけれど。
*3: 「あすか」も、拷問してる部位を直接アップで見せてないし、直接見せる時はロングで見せる、ということをしていたので、ある意味それなりに優秀な演出家さんの仕業、と言えそうな気もするのだけど。このあたり、下手な人が処理すると、全部直接見せちゃって、放送時は白い光や黒い影が画面を覆うので、そういう事例と比べたらまだ比較的上手な見せ方、だったのかもしれないなと。

2019/02/10() [n年前の日記]

#1 [pyxel][python] Pyxelを使って簡単なゲームを書いてみたり

せっかく _Pyxel を触ってみたことだし、試しに簡単なゲームを書いてみたり。

newtototone_pyxel_ver_ss02.gif

_mieki256/newtototone_pyxel_ver

Windows10 x64 + Python 3.7.1 + Pyxel 1.0.1 で動作確認した。

内容は、以前、 _TIC-80 用に書いたソレと同じ。

_Play NEWTOTOTONE in TIC-80
_mieki256's diary - TIC-80でゲームっぽい何かを書いてみた
_mieki256's diary - TIC-80のサイトに作成したプログラムをアップロードしてみたり

ソースリストは、github で眺められるので、何か参考に…なるのかな。どうかな。分かりませんが。

_newtototone_pyxel_ver/newtototone.py at master - mieki256/newtototone_pyxel_ver

何はともあれ、Pyxel を使うと、こういうものが簡単に作れるようですよ、ありがたや、ということで。

Pythonでグローバル変数を奇麗に扱う方法が分からず。 :

各オブジェクトから、スコアを加算したり、別オブジェクトを発生させたりするあたりで悩んだり。グローバル変数にアクセスしないと目的が果たせないような気がする。でも、一般的には、グローバル変数なんて使うな、と言われてしまうわけで。じゃあどうするの。シングルトンパターンか。でもソレ、結局はグローバル変数と似た状況になるんじゃないのか。

今回は面倒臭くなって、結局、一部の変数をグローバル変数にしちゃったのだけど。本来、Python では、そのあたりどのような書き方をするのが妥当なのだろう。

#2 [pyxel] Pyxelのサウンドエディタの使い方が少し分かってきた

Pyxel に同梱されている、pyxeleditor には、ドット絵エディタ、タイルマップエディタの他に、サウンドエディタ、ミュージックエディタも含まれているけれど。

当初、使い方がさっぱり分からなかったけど。Pyxel のサウンドクラスについての説明を眺めながら触ってるうちに、なんとなく少しだけ分かってきた。

サウンドエディタと呼んでいるけれど、実質、シーケンスエディタ(パターンエディタ?)+エフェクト指定エディタ、みたいなものらしい。ピアノロールで音符の並び(メロディ相当)を指定して、各音に、波形種類、音量、スライド or ビブラート or エンベロープ相当を、文字で指定していく、みたいな。

そうして作ったシーケンス、というかパターンの番号を、ミュージックエディタ上で並べていくことで、BGMデータになる模様。

また、再生速度をめちゃくちゃ速くすれば(SPEEDの数値を小さくすれば)、メロディが効果音っぽく聞こえるので、たしかにサウンドエディタと言えなくもないなと。

波形種類その他についてメモ。 :

画面構成は、以下のような感じ。

pyxeleditor_sound_ss01.png

波形種類(音色)は、サウンドエディタの下のほうにある「TON」(TONE)の欄に、T、S、P、N の文字のどれかを打って指定する。
  • T : Triangle (三角波? おそらく正弦波の代替波形。ちなみに、ノコギリ波ならSawと記述するはず。)
  • S : Square (矩形波)
  • P : Pulse (パルス波。おそらく、矩形波とはduty比が違うのだろう。)
  • N : Noise (ノイズ)
以下のページや動画が参考になりそうな予感。

_矩形波?パルス波?三角波とは?ファミコン風の音色をめちゃくちゃ簡単に説明してみた(動画) | さまようけんばん

「VOL」には、音量を指定する。0〜7の数字を指定できる。

「EFX」には、スライド or ビブラート or エンベロープ相当を指定できる。
  • N : None (効果無し)
  • S : Slide (スライド。音程が滑らかに変化する)
  • V : Vibrato (ビブラート。音程が細かく上下に揺れる)
  • F : FadeOut (フェードアウト。音量が減衰していく)

例えば…。
  • EFX に F (Fadeout) を指定すると、「ピー」が「ピンッ」に変わったり。
  • EFX に S (Slide) を指定すると、「ピーポーパー」が「ピュウイーン」に変わったり。

ドラムパートを入力する際の、コツというか定番の技も一応メモ。TON で N (Noise) を、EFX で F (Fadeout) を指定して、「タッ」という音にしつつ、更に音程を、低いほうと高いほうで交互に鳴らせば、バスドラム(「ドッ」)とスネアドラム(「タッ」)の違いぐらいは匂わせることができる。

休符は、ピアノロールの一番下をクリックすると、そこが青くなって、「ココは休符だよ」という扱いになるらしい。

また、ピアノロール上で、Deleteキーや Backspaceキーを叩くと、現在位置の音符(?)がどんどん消えていく模様。

SPACEキーは、再生のショートカットが割り当てられているっぽい。となると、空白を入力するにはどうしたら。とりあえず、EFX なら N (None) を入力すればいいのかな。

ピアノロールの鍵盤部分をクリックして、キーボードの Z,S,X,D,C ... Q,2,W,3,E ... あたりを叩くと鍵盤と対応した高さの音が鳴る。更に、それらのキーを押しながらEnterも押すと、その音程でノートが挿入されて、現在位置が右に進む。休符の入力は、A + Enter。ソースコードを眺めて把握した。

左側の灰色のバーは、キーボードを押した際に入力される、音程の範囲を示している。マウスでドラッグして変更することもできるけど、Page Up、Page Downキーで変更することもできる模様。

操作の様子を動画キャプチャしてみた。 :

動画で見たほうが分かりやすいかもしれない。試しにキャプチャして、YouTube にアップロードしてみた。

_Pyxel - pyxeleditor sound and music tutorial - YouTube



5分ほどの動画だけど、雰囲気は伝わるだろうか。

#3 [pc] TortoiseGitを更新

Windows10 x64上で、久々に TortoiseGit を使おうとしたら、リポジトリ作成後にファイルの追加ができなくて。未登録ファイルの一覧が表示される際に、エラーダイアログが表示されて、何のファイルもでてこない。

ググってみたら、インストールしてあるバージョンが古いとそういう状態になるので最新版をインストールせよ、みたいな話が。

とりあえず、TortoiseGit をアンインストール・OS再起動をしてから、TortoiseGit-2.7.0.0-64bit.msi をDLしてインストール。また、Git-2.20.1-64-bit.exe もDLしてインストールしてみた。

ファイルの追加で、エラーが出なくなった。助かった。

#4 [anime][neta] ウルトラマンの出現シーンが気になる

思考メモ。

「ウルトラマンR/B」の放送が終わってから、これまでのウルトラマンシリーズの映像が、特選再放送っぽい感じで放送されていて。作業時のBGVとして一応眺めていたりするのだけど。OPで、ここ最近のウルトラマンが出現する際のカットが次々に出てくるあたりを目にして、ちょっと考え込んでしまったり。

あのカット、本来は、小さい人間が巨大なヒーローに変化する様子を映像的に示そうとしていたカット、なのではないかと推測するのだけど。

当時は技術的な問題で、極端にパースをつけた人形を撮影して、光学合成を駆使して該当カットを作っていたけれど。今の技術や感覚なら、もっとリアルな、本当にあり得そうな巨大化カットにできそうな気もするなと。

例えば、仮面ライダー1号2号も、当時は変身シーンを上手に見せる技術が無かったので、モンタージュ技法を利用して、かつ、ベルトの風車がアニメーションで回転するようなカットを作って、「チビッ子達よ。これで変身していると思いねえ」と、ウルトラマンと同様に、「記号カット」を見せて済ませていたわけだけど。

現代では更に凝った映像が作れるようになったので、平成ライダーはスタスタ歩きながら変身したり、全力で走りながら変身したり、世界がグルンと回転しながら変身したり。とにかく色々な変身カットを提示して視聴者を楽しませているわけで。ライダーシリーズは、昭和の頃の、あの映像を、今では見せたりしないよなと。もっとカッコイイ見せ方をモノにしているよなと。

それと比べると、ウルトラマンシリーズは、「型さえ守ってればいいじゃないか」的ノリを若干感じるわけで。その代表事例が、あの変身カットのような気がしてきたり。もちろん、細部の表現、使ってる道具は変わっているはずなのだけど、大筋では昭和の頃の記号的映像から変わってない印象が。

このあたり、日本人の悪い癖が出ている気配も。一度何かしらの型ができてしまうと、何のためにその型を考案したのかを忘れてしまい、他に適した方法はないかと考えることを止めてしまって、型を守ることが目的になってしまう ―― そんなところがあるよなと。

もっとも、ウルトラマンシリーズの場合、着ぐるみ+ミニチュアで撮影するから予算はかかってしまうだろうし。となると、既に文句を言われない型が存在するのに、それ以外の見せ方なんて、予算とスケジュールの問題でそうそう実験できないだろうなと。

また、「ウルトラマンと言えばこういう変身でしょ」と視聴者側が完全に思い込んでいるだろうから、違う見せ方を提示すると叩かれそうでもあるし。褒められるならまだしも、叩かれる可能性が高いなら、わざわざ新しいことなんて誰もしたくないはずで。実写に比べたら自由度が高いはずのアニメ版「グリッドマン」ですら、あの出現映像を再現してたし。「巨大ヒーローの出現カットと言えばコレでしょ」と皆が思い込んでる証拠だろうなと。 *1

そういう事例と比べると、平成ライダーや戦隊シリーズは、毎回何かしら少しずつ、どこかしらで新しい試みをしているわけで。その点だけでも、あのスタッフは凄いよなと。 *2

変身ヒーローなんだから変身映像にこだわらなくてどうするの、という気もするのだけど、まあ、難しいよなあ…。ウルトラマンシリーズは、ずっと新作が拝めない時期もあったので、今現在の、比較的定期的に新作が出てくる状況だけでも感謝しないと…。

てな感じのことを思ってしまったのでなんとなくメモ。思考メモ。

飛行ポーズも気になってきた。 :

考えてみたら、飛行ポーズもなんだかアレだなと。ウルトラマンシリーズの飛行ポーズと言えば、両手を前に突き出した、水泳の飛び込みっぽいアレだけど。例えばスカイダイビングをするとき、あんなポーズをするだろうかと。てなあたりを考えていくと、不自然なポーズだよなと。

まあ、飛行ポーズに関しては、「板野サーカス」で有名な板野一郎氏が、一時期、ウルトラマンシリーズに参加してくれた際、理詰めで新しいポーズを提示してくれたりしていたのでアレだけど。しかし、あのポーズ、定着しなかったな…。「ウルトラマンの飛行ポーズと言えばこうでしょ」という強固な思い込みが、視聴者側にも作り手側にもあり過ぎる、ということなのだろうか。

例えば「スーパーマン」あたりは、随分前から色んなポーズで飛んでるような印象があるけれど。それと比べると、ウルトラマンシリーズは、色々と昭和のままで止まってる、と言えてしまいそうな気もしたり。

と思ったけれど、例えばウルトラマンゼロは、八の字ポーズで飛んでるイメージがあるな…。実はそれなりに定着したのだろうか。「ウルトラマンの飛行ポーズと言えばコレ」とすっかり思い込んでるのは自分、というトホホなオチかも。

*1: と言っても、アニメ版「グリッドマン」は実写版の続編的な扱いらしいので、好き勝手できない面もありそうだし。実写のアレコレを、アニメで再現すること自体が、ある種のチャレンジでもあったろうから、この場合例に出すのはおかしいのかもしれない。
*2: いやまあ、ウルトラマンシリーズも、企画内容や設定面に関しては、新しい試みをしてる印象もあるのだけど。そのあたりは毎回感心しながら視聴していたり。

以上、10 日分です。

過去ログ表示

Prev - 2019/02 -
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project