試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

pydanceの覚え書き

youtube-dlの覚え書き(2008/9/16現在)」で動画(スクリーンキャスト)の素材としてpydance(icculus.org/pyddr/)というゲームを使用したのだが、そのときの各種覚え書きをここで扱う。

  1. パッケージ
  2. ルール
  3. データの追加
  4. cpufreqdについて
  5. スクリーンキャストの覚え書き

パッケージ

Debian/Ubuntu/Gentooのいずれも「pydance」という名前のパッケージが提供されている。
(2008/12/15)Mandrivaでも同様だが、2009.0をインストールした状態では、pygameパッケージの不具合*1により起動できず

$ pydance
Traceback (most recent call last):
  File "/usr/games/pydance", line 32, in <module>
    from constants import * # This needs to be here to set sys.path.
  File "/usr/share/games/pydance/constants.py", line 181, in <module>
    FONTS[s] = pygame.font.Font(None, s)
RuntimeError: default font not found 'freesansbold.ttf'

となっていたが、2008/12/13に更新されたパッケージでは解決している。
起動後に関しては、PulseAudioが動作していると音がずれる(遅れる)ために

[任意]ファイル名: pydance.sh

#! /bin/sh
killall pulseaudio
SDL_AUDIODRIVER=alsa AUDIODEV=default pydance
pulseaudio --daemonize

一時的にこれを止めてALSAへのオーディオ出力を行う上のようなスクリプトを使用するなどして回避する。

ルール

タイミングに合わせて矢印キー*2を押す(長い矢印では押しっぱなしにする)というシンプルなルールで、表示される判定はタイミングの正確さによって異なり、GREAT以上が続いた回数も記録される。

MARVELOUS  PERFECT  GREAT | OKAY  BOO  MISS
正確  (COMBO対象ここまで) |            失敗

最後まで終えると、集計とともに評価(FからAAAまで?)が表示される。
失敗をすると中央上のゲージが減り、成功をすると増える。全てなくなるとそこで終了。
うまくいかなかった場合など、Escで抜けることもできる。

データの追加

付属しているデータは

  • Forkbomb
  • 6.January'2002
  • SynRG

の3つのみだが、追加のデータ(曲データのファイル群を含んだディレクトリ)を[ホームディレクトリ]/.pydance/songs/ディレクトリ以下に配置することで使用することができる。
データによっては、一覧から選択したときに動作が固まってしまうことがある(そのままでは使えない)。そのときは

$ pkill -KILL -f pydance

を実行して強制終了する。pkillはprocpsパッケージの中のコマンドの1つで、パターンにマッチしたプロセスを終了するのに使用する。pgrepと使い方が似ている。-fは、Pythonの引数として指定される「pydance.py」にマッチさせるために使用している。

cpufreqdについて

「低クロックでも軽快に動作するがCPU使用率を100%使用するアプリケーション」の1つなので、programsプラグインを使用してプロセス名による指定で絞ろうとしたがうまくいかなかった*3。そこで、一時的に手動でプロファイルを(最低クロック固定のものに)切り替えることにしている(ただし、スクリーンキャストを取り込むときを除く)。

スクリーンキャストの覚え書き

以前使用したFrozen Bubbleと同様、SDLを使用している。そこで、音声に関しては「recordMyDesktopで保存した音声入り動画をステレオ音声でYouTubeにアップロードする覚え書き(前半)」と同じ要領でJACK Audio Connection Kit経由でrecordMyDesktopで録音することになった。
(2015/1/14)manページなどのリンク先を修正

関連URL:

使用したバージョン:

  • pydance 1.0.3

*1:/usr/lib(64)/python2.5/site-packages/pygame/内の一部ファイルのアクセス権が700など、一般ユーザが読めない属性になっていた

*2:キー割り当ては「Map Keys」から変更できる

*3:Pythonで書かれているためと思われる