2019年02月02日

LÖVE (Love2D) プログラム:空飛ぶサイ

 「LÖVE サンプルプログラム集」に1つ追加しました。「空飛ぶサイ」。なんでサイが空飛ぶねん。

 YouTube のコメントにも書きましたが、飛んでくる野菜を食べるゲームだからね、よけるゲームとちゃうからね。自分で見ても、下手すぎて笑ってしまう。うちの家族が、以前出した「さかなは踊る」の動画を見て「ヘタすぎ!」と大笑いしていたらしい。いや、あんまりウマすぎても可愛げがないやろ、しょぼいゲームにはしょぼいプレイ動画がお似合いなんや、と負け惜しみを言ってみたりする。

 おバカなゲームの割には、制作に一週間ぐらいかかってしまった。「さめがめ」のアニメーションの時もそうだったけど、状態遷移が今ひとつスマートに書けてないんだな。やたらとグローバル変数が増殖してしまう。

posted by toshinagata at 22:53| 日記

2019年01月25日

999人が読めない山月記

 「文章を読めない子供たち」で知られる新井先生のツイートに、脊髄反射している人が多々おられるようで。

 このツイートに出てくる「999人が読めない『山月記』を死守している」という表現が、前後の文脈なしではわかりにくい。「『山月記』を公教育で取り扱う理由として、その教育を受けた中から1000人に1人ぐらい次の文学を生む可能性がある、という主張は不適切だと(新井先生は)思っている」という文脈で出てきている文章です。

 上のツイートだけ取り出すと、「山月記を999人が読めないってどういうこと?」とまず思いますよね。「読めない」という表現が、なんとも粗雑に使われている。だから、こういう大事な話を、ツイッターみたいな雑なプラットフォームでやっちゃだめなんですよ。前後の文脈が切り取られないように、ちゃんとまとまった記事として書かないと。もしかしたら、わざと煽るような書き方をすることで話題作りを狙ったのかもしれないけど、それはそれでとても不誠実なやり方だと思う。

 国語の先生方には、「山月記は読めるだろ」と芸のないツッコミ(というよりほとんど揚げ足取り)をするんじゃなくて、「山月記」を公教育で取り扱う必然性をしっかり考えて、上記の新井先生の言説に真っ向から反論してもらわないといけないと思います。いくつかのツイートでほのめかされていたように、受験勉強に邁進しているエリート学生は、この小説に出会って「はっ」とすることがあるのかもしれない。(そういえば、高校の時の国語の副読本に「読書感想文の書き方」みたいな項目があって、良い感想文の書き出しの例として「私もまた隴西の李徴ではないか−こう読後に思わずひとりごちた。」という類の文章があった。いろいろな意味で「うわぁ…」と思ったのを覚えている。)仮にそれが教育的効果を持つとしても、かなり少数の人に対してのものですよね。そうだとすれば、別に教科書に載せる必要はないんじゃないか。同じ著者の作品を取り上げるにしても、「名人伝」とか「文字禍」の方が面白いんじゃないか。…等々、こういう議論を真剣にしていっていただきたいな、と思うわけです。そうでないと、「山月記なんて読ませなくていい、その代わりにもっと実用的な文章を読ませよう」というような暴論が大手を振ってまかり通ってしまう。それはどうにもまずいと思う。

タグ:教育 社会
posted by toshinagata at 23:15| 日記

2019年01月22日

Love2D サンプルプログラム集

 「LÖVE サンプルプログラム集」のページを作りました。といっても、まだ3つしかないけど。

20190122-1.png

 こうやって「配布用のパッケージ」にしてみると、毎回日本語のフォントを同梱しないといけないのがけっこうつらい。日本語フォントって大きいからね。フォントの見かけにこだわらないのであれば、システムフォントの所在を特定して、love.system.getOS() の値で振り分ける、というのもありそうだが、Linux では何がインストールされているかわからんから、選びようがないな。

 上の「さめがめ」では、JF-Dot-jiskan16s-1990.ttf を同梱した。ファイルサイズが 1.9 MB だから、日本語の TrueType フォントとしては破格にコンパクトと言える。文字が美しいか、と言われると、苦笑いするしかないけど…

20190122-2.png

 まあ、このファイルサイズで、日本語で使う文字がほぼフルセット揃っているんだから、そこは良しとしましょうや。

posted by toshinagata at 23:52| 日記

2019年01月19日

「子供の科学」Raspbian 用の LÖVE (Love2D) 改良

 前回の続き。「子供の科学」バージョンの Raspbian(ジブン専用パソコン2)に LÖVE (Love2D) を入れてはみたが、キー入力に不具合があった。1回押したキーが、2度ずつ認識されてしまう。

20190119-1.png

 これは SDL2 に原因があって、既知の問題らしい。いくつか関連しそうな記事が見つかった。

 SDL2 の changeset で取り上げられている、ということは、もう修正されているのか? Raspbian の SDL2 は 2.0.5 なので、SDL2.0.8 をダウンロードしてビルドしてみた。けど、症状は治らない。

 きっとインプットメソッド絡みだろう、と当たりをつけて、調べてみる。「子供の科学」Raspbian では、日本語入力メソッドとして fcitx-mozc を使っている。SDL2.0.8 の configure ログを見てみると、fcitx が有効になってない。

$ ../configure
...
Using libudev       : YES
Using dbus          : YES
Using ime           : YES
Using ibus          : YES
Using fcitx         : NO    #  これだ!

 もう少し configure ログを詳しく見てみると、fcitx/frontend.h が見つからないのが原因らしい。

$ ../configure
...
checking for pkg-config... (cached) /usr/bin/pkg-config
checking fcitx/frontend.h usability... no
...

 これはアレだな、dev 系パッケージが入ってないやつだな。というわけで、fcitx-libs-dev パッケージをインストールする。

$ sudo apt-get install fcitx-libs-dev
...
$ ../configure
...
checking for pkg-config... (cached) /usr/bin/pkg-config
checking fcitx/frontend.h usability... yes
checking fcitx/frontend.h presence... yes
checking for fcitx/frontend.h... yes
...
Using libudev       : YES
Using dbus          : YES
Using ime           : YES
Using ibus          : YES
Using fcitx         : YES    #  よっしゃ。

 この SDL-2.0.8 と love-11.2 をまとめて、/usr/local/games/love 以下に置く。実行するには、下のスクリプトを /usr/bin/love として置いておく。

#!/bin/sh
export LD_LIBRARY_PATH=/usr/local/games/love/lib
/usr/local/games/love/bin/love "$@"

 アプリケーションやドキュメントアイコンを認識させるのにちょっと手こずったが、なんとかインストーラを作成できた。下に置いておきます。使い方は前回と同じ。

[love2dx-install.tgz (18.1 MB)] (2019/1/19 バージョン)

posted by toshinagata at 17:27| 日記

2019年01月13日

Love2D で「さめがめ」:アニメーションをつける

 LÖVE (Love2D) ページ「実践編『さめがめ』:アニメーションをつける」を公開しました。消えるコマの位置が一瞬光って、その後コマが移動していきます。下の図は GIF アニメーションなので、あまりなめらかではありませんが、本当はもう少しなめらかに移動します。

20190113-1.gif

 この機能は、実装の仕方を考えるまでが大変だった。「今、どのアニメーションを実行しているか」を表すフラグを導入して、それに応じて画面描画を変えることで、アニメーションを実現している。このやり方がいいのか、それとも「画面を描く」→「一定時間待つ」→「画面を再度描く」→「一定時間待つ」…の繰り返しがいいのか、まだよくわからない。それとも、コルーチンを使うのがいいのだろうか? このあたりは、もう少し Lua の経験を積まないと、何とも言えないな。

posted by toshinagata at 23:05| 日記

2019年01月08日

クラシック音楽館:アリス・紗良・オットのラヴェル

 NHK の「クラシック音楽館」にピアニストのアリス・紗良・オットさんが出るというので、見てみました。だいぶ以前だけど、この人がインタビューされているのを読んだことがある。楽譜を丹念に読み込んで、そこに示されている作曲者の意図を読み取ろうとする立場に立たれているようなので、関心を持っていた。

 演奏の前に、指揮者のジャナンドレア・ノセダさんのトークがあって、そこでもアリスさんに言及されていた。やはり、「音楽に対して誠実な人だ」という評だった。今回の演目はラヴェルのピアノ協奏曲(ト長調)だが、そのアプローチがどう出るか。

 第一楽章は、こじんまりとまとまってしまった感じ。第二主題のホ長調のところはえらくあっさり過ぎてしまった。下の譜例のあたりとかも、もうちょいオーケストラを強引に引っ張っていくぐらいに突っ走ってもよかったんじゃないのかな。

20190107-1.png

 第二楽章は、うまくオーケストラとピアノが一体化していた。特に、再現部でコーラングレがメロディーをとるところ、ソリストがコーラングレ奏者とアイコンタクトをとりながら弾いていた。下の譜例の赤で囲んだところ、ピアニストとしては粘りたくなるんだけど、ほとんど粘ってなかった。ここで粘られると、コーラングレが困っちゃうんだよな。

20190107-2.png

 第三楽章。出るところは出て、オケに溶け込むところは溶け込んで、というきれいな演奏だったけど、このへんとか、もうちょい暴れてよ!とツッコミたくなった。

20190107-3.png

 演奏終了後、コーラングレ奏者にアリスさんが何度も拍手を送っていたのが印象的だった。自分がイチバン、ってタイプじゃないよなあ。それでいてソリストとして第一線で活躍し続けているのはすごいと思う。

 ところで、この曲はどの演奏を聴いてもいつも思うんだけど、金管の入りが遅れがちだよね。なんでなんだろう。こういうところとか。プロでも難しいんでしょうかね。

20190107-4.png

 もう一つ、上の譜例を出して思い出したんだけど、譜例の最初の小節のトランペットの F# 音、一小節あとが正しいんじゃないかな。今回の演奏はそうしてた気がする。(あの F# 音は耳障りで目立つので、鳴ってたら気がつくと思う。確信は持てないけど。)

posted by toshinagata at 00:33| 日記

2019年01月06日

「子供の科学」Raspbian 用の LÖVE (Love2D) インストーラ

 前回の続き。「子供の科学」バージョンの Raspbian(ジブン専用パソコン2)に LÖVE (Love2D) を入れるインストーラを作りました。

[love2dx-install.tgz (18.1 MB)] (2019/1/19 バージョン)

 ダウンロードして、ダブルクリックなどで開く(自動的に開くかも)と、下のようになります。"love2dx-install" フォルダを、適当なフォルダ(下の図では Download フォルダ)に移動します。

20190105-1.png

 "love2dx-install" フォルダをダブルクリックして開きます。

20190105-2.png

 "install.sh" ファイルをダブルクリックします。

20190105-3.png

 こういうウィンドウが出てくるので、「端末で実行する」ボタンを押します。(「実行」でもいいのだけど、メッセージが何も出ないので、何が起きているのか全くわからず不安になります。)

20190105-4.png

 ターミナルウィンドウが開いて、処理が始まります。"Update MIME database..." の処理はけっこう時間がかかるので、しばらく待ってください。

20190105-5.png

 ターミナルウィンドウが消えたら、インストール完了です。デスクトップに LÖVE のアイコンができているはずです。(アイコンが LÖVE のものになっていない場合は、フォルダをいくつか開いたり閉じたりしてみてください。)

20190105-6.png

 ダブルクリックすると、"NO GAME" の画面が出ます。

20190105-7.png

 前回にも書きましたが、raspi-config の Advanced Options/GL Driver で、"GL (Fake KMS)" を選ぶ必要があります。LXTerminal を開いて、sudo raspi-config と打ち込み、Advanced Options → GL Driver → GL (Fake KMS) とたどっていってください。設定を変更したあと、再起動が必要です。

 簡単なサンプルゲームを一緒にインストールできるようにしたいな。まだネタがないので、それは今後の課題ということにしておく。

posted by toshinagata at 00:19| 日記

2019年01月03日

「子供の科学」Raspbian に LÖVE (Love2D) をインストールする

 前回の続き。「子供の科学」Raspbian(ジブン専用パソコン2)に LÖVE (Love2D) をインストールする。Raspbian Stretch の apt-get でインストールされる Love2D はバージョンが古いので、現時点での最新バージョン (11.2) をインストールしてみる。

 まずはビルドしないといけない。Love2D Wiki の Building ページを元に進める。Raspbian 上でターミナルを開いて、次のように順に打ち込む。

1. 必要なパッケージをインストールする。たくさんありますよ。

sudo apt-get install autotools-dev automake libtool libdevil-dev libluajit-5.1-dev libphysfs-dev libsdl2-dev libopenal-dev libogg-dev libvorbis-dev libflac-dev libflac++-dev libmodplug-dev libmpg123-dev libmng-dev libturbojpeg libtheora-dev

3. Love2D のソースを取ってくる。ダウンロード ページからもらってきてもよいし、ターミナルで下のように打ち込んでもよい。

curl -L https://bitbucket.org/rude/love/downloads/love-11.2-linux-src.tar.gz >love-11.2-linux-src.tar.gz

4. 展開して、新しくできた love-11.2 ディレクトリに移動する。

tar xvfz love-11.2-linux-src.tar.gz
cd love-11.2

5. ビルドする。"| tee xxxx.log" の部分は、ターミナルに表示されるメッセージを保存しておくためだけのものなので、省略してもよい。


./configure | tee configure.log
make -j 2 | tee make.log
sudo make install

はじめ make -j 4 でビルドしていたが、成功することもあるのだけど、途中でフリーズしたり変なエラーが出たりして、イマイチ不安定。あまり負荷をかけないように、make -j 2 に変えた。

 /usr/binlove が、/usr/libliblove-11.2.so がインストールされる。

 love で実行すると、"NO GAME" の画面が出るはずなのだけど、こうなってしまった。表示がなんかおかしい。これはドライバ絡みだな。

20190103-1.png

 sudo raspi-config の Advanced Options/GL Driver で、"GL (Fake KMS)" を選ぶと、正しく表示された。

20190103-2.png

 なお、"GL (Full KMS)" を選ぶと、Love2D の画面がフルスクリーンになってしまう。下の通り。VNC viewer の画面いっぱいに Love2D の画面が広がっているのがおわかりでしょうか。これ、Love2D の画面がフルスクリーンで表示されているということです。今回は X window の中で Love2D を動かしたいので、これではうまくない。何か回避する設定があるのかも知れないけど、まだ見つけられていません。

20190103-3.png

 "GL (Fake KMS)" の設定で、「さかなは踊る」を動かしてみた。ちゃんと動いた。音も出てます。

20190103-4.png

 ビルドできることはわかった。あとは、簡便にインストールできる方法を確立することだな。deb パッケージを作るのはハードルが高すぎるので、インストーラスクリプトを書くのが手っ取り早い。(2019/1/6 追記:書きました。記事はこちら。)

posted by toshinagata at 15:51| 日記

2019年01月01日

「子供の科学」バージョンの Raspbian を試してみる

 年が明けました。旧年中は各方面にお世話になりました。今年もよろしくお願いします。

 この正月休みは、ラズパイネタを仕込もうと思っている。しばらく離れていたけど、今年はぼちぼち進めていきたい。今日は、「子供の科学」の「ジブン専用パソコン2」の OS イメージを使って起動してみた。

20190101-1.png

 「KoKa」こと「子供の科学」のロゴがデスクトップピクチャになっている。なお、この画面は VNC viewer を使って Mac からリモート接続してスクリーンショットを撮っているので、メニューバーに VNC 接続のアイコンが出ている。素の状態だとこのアイコンは出ないので、念のため。

20190101-2.png

 このシステムで、Love2D を使ってみたい。ラズパイに Love2D をインストールする話は以前に取り上げたけど、X11 でなくフレームバッファに直書きする設定で進めていた。この設定は、ラズパイ 1/Zero のように非力なマシンでも実用的な速度で動作するというメリットがある一方、ラズパイ単体でプログラミングをするには向いていない。「ジブン専用パソコン」のユーザー層には、「普通の」(= X11 の)デスクトップの中で Love2D のウィンドウが開いて、その中でプログラムが動作する方が、はるかに使いやすいはず。

 実は Raspbian Stretch にも Love2D のパッケージがある。sudo apt-get install love でインストールできる。これは、X11 に対応しているので、ちゃんと Love2D のウィンドウが開く。ただし、0.9.1 とバージョンが古い。なんとか 11.x 系列にできないものかな?(2019/1/3 追記:できました。記事はこちら。)

20190101-3.png
posted by toshinagata at 23:11| 日記

2018年12月28日

iMac 21.5 インチ (Late 2012) のメモリ増設・SSD 交換

 家族で共用している iMac (late 2012) の動作が遅い、と不満が出ていた。特に、Safari がめちゃくちゃ遅い。OS が Yosemite というのも一因だが、「最近さらに遅くなってきた気がする」という声もあったので、HDD がへたっているかも知れない。そこで、HDD を SSD に交換することにした。ついでに、メモリを 8G から 16G に増設しようと思った。

 この「ついでに」が余分だった。この作業、めっちゃくちゃ大変。下のようなページを見て、これならできるかなと思ってやり始めたんだけど…

…いやまあ一応できたんだけど、一時はどうなるかと思った。あとからこの動画を見たんだけど、先にこれを見ておいたらもう少しスムーズだったかな。

 一番大変だったのは、大きい方のロジックボードを外すところだった。スピーカーのネジを外してずらしておかないと、非常に困難だった。この件、動画には出てくるんだけど、上のウェブサイトでは触れられてなかった。最初スピーカーをずらさずに作業していて、ボードを外すことはできたのだが、戻すことがどうしてもできなかった。

 なんとか組み立て直すことに成功した。立ち上げてみると、明らかに体感速度が速くなった。へとへとになったけど、家族も喜んでくれたので、良しとしよう。

タグ:Mac
posted by toshinagata at 23:37| 日記
email.png
Powered by さくらのブログ