tsutsuiの作業記録置き場

NetBSDとかPC-6001とかの作業記録のうち、Twitterの140字では収まらない内容や記事としてまとめるべき内容をとりあえず置いてみる予定

PC-6001 タイニーあぴミクさんデモができるまで (音楽・画像編)

夏休みの宿題第2弾、というわけでもありませんが、ほぼ 1年前に作成したタイニーあぴミクさん動画についてつらつらと書こうと思います。例によって無駄に長くなったので1回で終わっていません

音楽

もともとは 2016年のOSC京都 で展示する OMRON LUNAでのPSG演奏デモ で流す曲としてもう 1つくらいは自分で採譜した曲を入れたいな、ということで適当な曲はないかと探したのが始まりです。

「Tinyみずいろ」のBGMを追加したとき と同じくオルゴール曲であれば耳コピでの採譜もなんとかなるかな、ということで、以前からお気に入りの1つであったマシンガンP様の「【 本 編 】あぴミクにつま先立ちで迫られた。」の動画で使われている「Tell Your World オルゴール風アレンジ」の曲を耳コピ採譜することにしました。

採譜ツール

採譜で使ったツールは「Tinyみずいろ」のときと同様「WaveTone」です。

「オルゴール曲なら耳コピしやすい?」という目論見通り、各小節の出だしの装飾的高速アルペジオ(?)の和音部分を除けば WaveTone上でも比較的音が取りやすい解析結果表示でした。

テンポもゆっくりめで難しいコード展開もないので、採譜自体は土曜の晩〜日曜の午前中にかけての数時間の作業でざっと終わったと記憶しています。

採譜とMML化作業

イントロからAパートまでは 主旋律1音、和音まわしが1音、あとは出だしの飾り和音1音、ということで聞こえたそのままの採譜で、エンベロープとビブラートをどう調整するか、というほうが時間をかけた感じでした。

Bパートは和音部分が3音になるのでどうするかと一瞬考えたのですが、デモ曲完成を優先したのと、主旋律だけでも十分盛り上がる、ということで安直に下2音のみを和音として鳴らしています。和音の 2音については 気持ちだけ ということで 96分音符分ずらして鳴らしているのですが、もう1つ長めに 48分音符分ずらしてもよかったかも……。

最後のサビ部分について、原曲だと主旋律部分にトリルで2音使っているので PSG演奏的にはどうすべきか悩んだのですが、最初はそのトリルを1音のみで鳴らしてみました。が、PSGで1音を高速変化させると(知っている人は知っている)いわゆるホイッスル音になってしまい、原曲のイメージからは程遠い雰囲気になってしまいました。

主旋律に2音使ってしまうと残りの和音が1音だけになってしまうのでどうかなと思ったのですが、2音を重ねるとPSGでもそれなりにいい感じになったのでこれを採用しました。なお、2音部分が終わったら即和音パートに2音目を回すという小細工をしていますが、これはほぼ自己満足の領域ですね……。

かなりやっつけですが、サビ部分の採譜状態と MML (よっしゅさん作 P6 PSGドライバ用) はこんな感じ:

; 100 101 102 103 104 105 106 107
"D S-4,2,-2,0,-24"D O6 L24L+4 [GGG]3 GG S-4,3,-1,0,-24 G&G4
"D [FFF]2 [D+D+D+]3 D+D+ S-4,3,-1,0,-24 D+&D+2
"E V11"E S-4,2,-1,0,-24"E O6 L24L+4 (1R48[D+D+D+]3 D+D+D+48 &D+16
"E S-4,3,-1,0,-24 O4 A+8."E S-4,2,-1,0,-24
"E O6 R48 [CCC]2 <[A+A+A+]3 A+A+A+48&A+16
"E S-4,3,-1,0,-24 O4 A+8.A+8A+8
"F L8L+8. O5 D+8.D+8.D+8.D+8.D+8D+8 D+8.D+8.D+8.D+8.D+8D+8

; 108 109 110 111 112 113 114 115
"D S-4,2,-2,0,-24
"D [D+D+D+]4 [FFF]2 [G+G+G+]2 [GGG]3 G G S-4,3,-1,0,-24 G&G4 )1 F4 (1]2
"E I255 S-4,2,-2,0,-24"E O5 R48[A+A+A+]4 >[DDD]2 [FFF]2 [D+D+D+]3 D+D+ S-4,3,-1,0,-24 D+48&D+16
"E L16L+8 O5 D+8.&D+48 O6 D16.&D96 O5 D+8]2
"F O5 D+8.D+8.D+8 F8.F8.F8 G8. G8. G8. G8. G8 G8]2

あぴミクさん画像

最初は OSC京都デモ用の曲の採譜だけをする予定で、 P6用デモを作るつもりはまったくなかったのですが、タイニーあぴミクさん動画の説明文にも書いているとおりで

MMDミクさんを PC-6001で表示したらどんな感じになるんだろ?」

と思ってしまったのがておくれの始まりでした。

減色ツール

イマドキのPC環境ではいわゆるフルカラー(32ビットカラー)が当たり前で、そもそも「色を減らす」ということをするツール自体が存在しないように思います。一方、 OSCで展示でもしている「NetBSDが走る80〜90年代の謎マシン」の展示の素材作成においては、モノクロおよび16色・256色への減色作業が必要になることが多くありました(例1, 例2)。そういった場合の素材作成作業では、以前から「Dibas32」という Windows用ツールを使っています。

Dibas32 という名称の "32" というプリフィックスからわかるように、 Dibas32 は Win32s といものが存在した Windows 3.1/Windows95 用のツールです。Windows 3.1 の時代は 256色の環境や16色アイコンが多かったからか、 256色・16色・モノクロの各種減色モードが用意されており、減色アルゴリズムも複数選択可能で、ディザのパラメータ設定も可能です。さらに、プレビュー操作が簡単なので各種設定を試行錯誤でトライしやすく、リリースから 20年が経った今でも Windows 10 Pro 64ビットの環境でもいまだにこの Dibas32 を使っています。このあたりの Windows後方互換性の高さには勝てない

PC-6001 SCREEN 3 モード

モノクロ化や16色化については前述の Dibas32 である程度のノウハウは持っていたつもりでした。が、今回ターゲットにする PC-6001 の「タイニー」にふさわしい SCREEN 3 モードでは、使える色は 4色だけ、かつ、青・赤・緑・黄 の固定色、という縛りがあります。

なので、いつものように単純に減色するだけではまともな絵にはならないだろうと思いつつ、試しにあぴミクさんを減色してみたところ……。

意外にも、やってみるとわりとそれっぽく見える絵ができてしまい、調子に乗って PC-6001実機で「採譜したPSG BGMを鳴らしつつテープからあぴミクさん画像をVRAMにロードする」というブツを即興で作ってしまいました。OSCの準備はどうしたと怒られるパターン

SCREEN 3 減色 パラメータ調整

Windows 環境上で減色がそれっぽくできたとしても、コンポジットビデオ出力である P6実機では必ずしもきれいに出ない、ということで、翌日にパラメータを再調整してトライしたのが以下のツイート。

トライアンドエラーが難しい(画像データをローダープログラムに埋め込んだ上でテープロード用の wav ファイルを作って実機ロードする必要がある)のと、そもそもがネタで作ったデモということで細かいところはいろいろ妥協していますが、手順としては以下のような流れです。

  • 元画像をトリミング・縮小して 512x384 で用意 (SCREEN 3 128x192 の横長ドットの整数倍)


  • 128x192 に縮小
  • 試行錯誤パラメータで4色化
  • 4色の近い色から 青・赤・緑・黄 にむりやり置き換え
  • 顔の輪郭、口や鼻等の失われたディテールを手動ドット打ち

SCREEN3の横長ドットにあわせて縦横比を2倍に拡大すると以下:

髪の毛のディザの中にある赤色は青のほうが自然に見えるんじゃないかと思ったりしましたが、P6実機のコンポジット出力だと青と緑が並ぶとそれぞれが埋もれてしまったりするので、なかなか難しいところです。単に挫折しただけともいう

動画を作る過程において、 BGM再生時間とデータロード時間の兼ね合いから最終的に 5枚の画像を用意したのですが、それぞれ以下のような感じです。

...

...

...

...

動画のサムネにもなっている最初の画像以外は BGMの丈合わせでその場で追加したのでかなり手抜きなところもあります。特に各画像の目の部分と、最後の画像の服装影部分の修正は挫折

それでも、顔や肩の輪郭線、口、指先といった細かいところはやはり地道なドット打ちが必要でした。 そういうことをした経験があったわけではないので、いわゆるドット打ち職人と呼ばれる人の領域には遠くおよびませんが……

ミクさんと4色の芸術

「SCREEN 3のあぴミクさんがどれくらいそれっぽく見えるか」ということについては、タイニーゼビウスその他の既存の SCREEN 3 画像をどれだけ見慣れているかというところに依存するところがあるかとは思いますが、たとえば以下の動画では相当きびしい感じです。

2:10 あたりからの SCREEN 3 画像はいい感じです

ただ、ミクさんの場合は「髪の色がシアン(≒青緑)系」なので、以下の理由から比較的 SCREEN 3 にしやすいという感じです。

  • 黄色は白の代わりに使うので、主に肌の色として使う
  • 青は黒の代わりに輪郭線やまつ毛等の濃色が必要な場所で使う
  • 残っているのは緑と赤
  • ミクさんの場合、アイデンティティーともいえる長い髪を緑で描画してもそれっぽく見える
  • 服装については、袖(腕抜き?)さえ青にしておけば胴体部は違う色でも違和感がない

逆に、金髪系のキャラクターは髪の毛と肌の色を区別することが難しいので違和感なく書くことは難しいと思います。
今年の OSC京都のフランドール・スカーレットさんはどう頑張っても無理でした

デモプログラム

プログラムといっても、やっていることは「よっしゅさんの P6 PSGドライバで BGMを鳴らしながらグラフィックデータをテープからロードしている」だけで、技術的に高度なことをしているわけではありません。

実際、動画用のデモを作ろうと思い立ったのは 2016年7月15日(金)の深夜で、完成した動画を投稿したのはその 1日半後の7月17日(日)の 13:57 です。

ただ、動画投稿用にデモの動作として工夫したところはいくつかあるので、そのあたりを次回のエントリで書こうと思います。