2008-02-21 :-)
_ 朝ったー
0540 起床。ねむ
_ [植松伸夫][ファイナルファンタジーVI]通勤ったー
ファイナルファンタジーVI
ゲームは何度かプレイしました。作曲は植松伸夫さん。スーパーファミコン最後の作品です。CD 3 枚です。冒頭の「予兆」「炭鉱都市ナルシェ」や、サントラにある天野喜孝さんのイラストから受ける印象のとおりに全体的に暗いです。退廃的なイメージがあります。機械文明が発達した世界ということで「戦闘」「テクノdeチョコボ」などエレキギターの音を使った曲があります。
FF6 では FF5 よりもさらに使う音が増えて、豊かな曲になっています。サントラのライナーノーツに以下の記述があります。
例えば 10 人のヴァイオリン奏者が全員で 440 ヘルツの「 ラ 」の音を弾くとします。いくら上手な人が揃っていたとしても、全員で完璧な 440 ヘルツの音程をしかも同時に出すことは不可能ですね? 人によっては 1 〜 2 ヘルツずれていたり少しフライングしていたり出遅れたりしている。しかしそれがいいのです。いや、音の豊かさや厚みを増すたえに、リズムに生き生きしたうねりを与えるためには、そうでなくてはいけないのです。
正確無比が売り物であったはずのコンピューターのその「売り」の部分が災いして、より良いコンピューター音楽を得るためには「程よいアイマイなデータ」を作成せねばならぬというのも皮肉な話ですね。
この「うねり」を実現していると思われるのが「決戦」で使っているドラムの音です。ドラムを叩く音の長さが一定ではなくてバラつきがあります。聴いているとドラムの音の長さにパターンがあることが分かるのですが、最初に聴いたときはこのバラつきに驚きました。他にも弦楽器の音を使っていて音が豊かな曲があるけど、これは「うねり」ではなくてたんに和音を使ったことによる豊かさかもしれません。
- 目覚め:「ティナのテーマ」の前半と後半を同時に使っています。
- ロックのテーマ、セリスのテーマ:最終的にカップリングする二人です。エンディングでは「ロックのテーマ」「セリスのテーマ」を同時に使っています。カップリングの曲を同時に演奏する手法は GIGs[ 20060902#p03 ]で ハヤブサ斬りキャンセル がやってました。
- ガストラ帝国:FF6 は「ティナのテーマ」のアレンジが多いですが「ガストラ帝国」のアレンジも多いです。「予兆」「帝国の進軍」「戒厳令」などがあります。他にあるかしら。
- 妖星乱舞:ラストバトルの曲です。17 分 38 秒あります。かなり長いのですがラストバトルは 4 連戦あり、各々の場面に戦闘曲があります。4 つの曲を「妖星乱舞」1 曲にまとめてあります。なので長くなっています。内訳は 4 曲あるわけです。4 戦目はケフカ戦であり「ケフカのテーマ」のアレンジです。
FF6 サントラのうち私が大好きなのが disc 3 前半の以下の曲です。曲順そのまま。
- 魔大陸
- 大破壊
- 死闘
- レスト・イン・ピース
- 死界
- あの日から...
- 仲間を求めて
「物語の場面を表す曲」の流れです。FF6 サントラはゲームをプレイする前に買って聴いてました。曲を聴きながら曲名を見て、物語のおおざっぱな流れを妄想してました。当時週刊少年ジャンプに多少のネタばれ記事があって「どうやら世界が崩壊するらしい」ということ、FF6 TVCM を見て「船( 飛空挺 )が破壊され、吹き飛ばされる仲間たち」ということは知っていました。そのような中途半端な知識を持ってサントラ CD を聴いていた当時の私の妄想は以下。
「魔大陸という舞台がある、何かと戦闘を繰り広げる、その相手はきっと世界を破滅させるようなとんでもない化け物なのだろう( アルテマウェポン戦 )、激闘むなしく主人公たちは敗れる( ゲームではちゃんと勝ちます )、そして世界が崩壊した、崩壊し死滅した世界、散り散りになった仲間を探し出し、最後の決戦へ向かう」
FF6 の曲はすべて英語名と日本語名があります。「仲間を求めて」の英語名は「Searching Friends」です。なので、どうやら仲間を探すらしいということは分かるわけです。なお、完全な曲リストは以下が詳しいです。
最近音楽は何か作業しながら聴くことが多いですが、FF6 を聴いていたころはサントラパッケージのイラストや曲名を眺めながら集中して聴いていました。だから上記のような妄想になります。そのようにして曲名を眺めながら、世界を想像しながらちゃんと音楽を聴いたのは FF6 が最後かもしれません。
B00066VUUM
_ 仕事
0830 出勤。
_ [Perl][高林哲][がらくた][コードリーディング]がらくたを読む - anchor-lcase
anchor-lcase を読みます。
http://0xcc.net/attic/anchor-lcase
標準入力から読んだ文字列の大文字を小文字にするプログラムです。
冒頭はプログラムの概要が書いてあります。
#! /usr/local/bin/perl -w # # anchor-lcase - convert all "name=" anchors into small letters. # also replace `_' with `-'.
Copyright が続きます。GPL です。
# # Copyright (C) 1999 Satoru Takabayashi <satoru-t@is.aist-nara.ac.jp> # All rights reserved. # This is free software with ABSOLUTELY NO WARRANTY. # # You can redistribute it and/or modify it under the terms of # the GNU General Public License version 2. #
プログラム本体です。最初に use strict; しています。変数の宣言を強制します。
use strict;
標準入力から読み込み、$content に格納します。$content の宣言と定義を 1 行でおこなっています。
my $content = join '', <>;
$content =~ s/name="(.*?)"/"name=\"" . xx($1) . "\""/ge;
$content に含まれる name= を s/// 演算子により置換しています。s/// は文字列中でパターンを探し、見つかれば置換テキストに置換します。この s/// を分解して見ていきます。
name="(.*?)"
置換させたい文字列です( これを「パターン」といいます )。name= のあとにある " " で囲まれた文字列にヒットします。カッコ () でくくることによりグルーピングしています。.*? は「何かの文字が 0 回以上存在するうちの最も短いもの」を表す正規表現です。.* は最長一致になり、? をつけて .*? とすることで最短一致になります。最長一致は「可能な限り長い文字列」を意味します。最短一致は「可能な限り短い文字列」を意味します。
"name=\"" . xx($1) . "\""
こちらは置換後です( 置換テキストといいます )。これをさらに分解します。
"name=\""
ダブルクォート「"」そのものを表すために「\"」とエスケープしています。"name=\"" は name=\" をクォートした文字列という意味になります。"" で
. xx($1) .
. は文字列を連結する演算子です。"name=\"" と xx($1) した結果と "\"" を連結します。$1 には s/// 演算子のパターンの部分に書いたグルーピングが入ります。パターンを () でくくっておくと、置換テキストで $1 として参照できます。パターンに () () と 2 つグルーピングしておくと、置換テキストでは最初のグルーピングを $1 、次のグルーピングを $2 として参照できます。3 つグルーピングがあれば $1 $2 $3 として参照できます。
xx($1) を見てみます。
sub xx { my ($tmp) = @_; ← $tmp には s/// のパターンに書いた name="(.*?)" の .*? が入る $tmp =~ s/_/-/g; ← _ を - に置換 return lc($tmp); ← $tmp を小文字へ変換( lc - Lower Case ) }
このように name を処理し、以下同様に href も処理して、印字して終了です。
$content =~ s/href="#(.*?)"/"href=\"#" . xx($1) . "\""/ge;
print $content;
_ 買い物
( via 角谷HTML化計画 )
4274066940
( via DESIGN IT! w/LOVE )
4794965850
( via Passion For The Future )
402273163X