このページでは、フラクタルという不思議な図形のしくみと、このジェネレーターがその図形からどうやって絵と音楽を作っているのかを、はじめから順番に説明します。
中学校の数学(座標、一次関数、相似、確率のはじめの部分)を知っていれば読めるように書いています。ところどころに式が出てきますが、式を読み飛ばしても話の筋はわかるようにしてあります。図の一部は、いま画面に出ている図形を使って計算した「生きた図」です。第6章では、自分の手で図形を描く実験もできます。
※ この解説文は AI によって書かれました。
木の枝を思い浮かべてください。太い幹から大きな枝が分かれ、大きな枝からは小さな枝が、小さな枝からはさらに細い枝が分かれています。大きな枝を1本だけ切り取って眺めると、それ自体が小さな「木」のように見えます。
シダの葉も同じです。1枚の葉は左右に並んだ小さな葉(小葉)の集まりでできていて、その小葉をよく見ると、さらに小さな葉の集まりになっています。ブロッコリーの仲間のロマネスコ、川の支流、稲妻、雲、海岸線、肺の中の気管支なども、「部分が、全体と似た形をしている」という性質をもっています。
こうした形を、数学者ブノワ・マンデルブロは1975年にフラクタル(fractal)と名づけました。ラテン語で「こなごなに砕けた」という意味の fractus からつくった言葉です。
フラクタルには、大切な特徴が2つあります。
このジェネレーターは、この2つの特徴をきちんと備えた図形を数学の規則で描き、さらに同じ規則を「時間」にもあてはめて音楽を作ります。
中学3年で習う相似を思い出しましょう。2つの図形があって、一方を形を変えずに拡大・縮小するともう一方にぴったり重なるとき、2つは相似だといいます。相似な図形どうしは、対応する角の大きさが等しく、対応する辺の長さの比(相似比)がどこでも同じです。
このページでは、拡大・縮小に回転・裏返し(鏡にうつす)・平行移動(ずらす)を組み合わせた変換も、まとめて相似変換と呼びます。どれも「形」を変えない変換です。
いちばん有名なフラクタルの一つ、シェルピンスキーの三角形(1915年にポーランドの数学者シェルピンスキーが考えた図形)を作ってみます。
できあがった図形(本当は無限にくり返したもの)をよく見てください。左下・右下・上の3つの部分は、どれも全体を縦横半分に縮めたコピーになっています。そのコピーの中の3つの部分も、さらに半分に縮めたコピーです。だから、どこを拡大しても同じ模様が現れ、終わりがありません。
このように、図形の部分が、全体を相似変換で縮めたコピーになっている性質を自己相似(じこそうじ)といいます。「自分自身と相似」という意味です。
シェルピンスキーの三角形の部分は、全体とぴったり同じ形です。一方、本物の木や海岸線の部分は、全体とぴったり同じではありませんが、「同じような感じ」をしています。拡大していったときに、入り組み方の度合いが同じに見える、という意味です。前者を厳密な自己相似、後者を統計的な自己相似といいます。この区別は、第10章の音楽の「並び順」でもう一度出てきます。
方眼紙に描いた絵を変形することを考えます。ただし、次の3つのルールだけは守ることにします。
このルールを守る変形をアフィン変換といいます。相似変換もこのルールを守っていますが、アフィン変換ではさらに、縦と横で縮め方を変えることや、斜めにずらすこと(長方形を平行四辺形にするような変形で、せん断といいます)も許されます。そのかわり、角の大きさや形は変わってしまいます。正方形は長方形や平行四辺形に、円は楕円になります。
平面上の点を座標 (x, y) で表すと、アフィン変換は次の形の式で書けます。
x′ = a·x + b·y + e
y′ = c·x + d·y + f
(x, y) が変換する前の点、(x′, y′) が変換した後の点です。6つの数 a, b, c, d, e, f を決めると、変換が1つ決まります。a, b, c, d が「縮め方・回し方・傾け方」を、e, f が「ずらす量」を表します。中学2年の一次関数 y = ax + b を、変数2つに広げたものだと考えるとよいでしょう。
相似変換は、アフィン変換のうち a = d かつ b = −c(回転と拡大縮小)、または a = −d かつ b = c(裏返しをふくむ)となっている特別なものです。
図形の部分が、全体をアフィン変換で縮めたコピーになっているとき、その図形は自己アフィンであるといいます。自己相似の条件を、少しゆるめた仲間です。
代表例が、数学者マイケル・バーンスレイが示したバーンスレイのシダです(「名前付きフラクタル」の最初の図形)。たった4つのアフィン変換でできています。
小葉は全体のシダを斜めに押しつぶしたコピーで、茎にいたっては横幅がなくなっています。これらは相似ではなくアフィン変換です。それでも「部分が全体のコピー」という構造は同じなので、本物のシダそっくりの形が生まれます。
図形の下の標本カードには、いま描いている図形が自己相似か自己アフィンかが表示されます。これは生成方法の名前から決めているのではありません。実際に使っている変換の6つの数を1つずつ調べて、すべてが相似変換の条件(3-2)を満たせば「自己相似」、1つでも満たさなければ「自己アフィン」と判定しています。「ゆがみ」(第8章)を使うと、変換が曲がった変換になるので「非線形」と表示されます。
ふつう、線は1次元、面は2次元、立体は3次元だといいます。これを「縮めたコピーの個数」で考え直してみましょう。
右肩の数(指数)が、ちょうど次元と同じになっていますね。つまり、「半分に縮めたコピーが 2D 個あれば全体ができる」とき、その図形は D 次元だと考えられます。
シェルピンスキーの三角形は、半分に縮めたコピー3個でできていました。そこで 2D = 3 となる D を探します。21 = 2 では小さすぎ、22 = 4 では大きすぎるので、D は1と2のあいだです。電卓でためしてみると、
21.5 ≈ 2.83 21.6 ≈ 3.03 21.585 ≈ 3.00
となり、D ≈ 1.585 です。シェルピンスキーの三角形は約1.585次元の図形なのです。線よりはずっと「ぎっしり」していますが、穴だらけで、面としての広さ(面積)は0です(1回の操作ごとに面積が 3/4 倍になり、くり返すと限りなく0に近づくため)。この整数ではない次元が、フラクタルのもう一つの大きな特徴です。
補足:「2を何乗すると3になるか」を求める道具を対数(log)といい、高校で習います。これを使うと D = log 3 ÷ log 2 ≈ 1.585 と書けます。
コピーの縮小率が 1/2 ではなく r で、それが N 個あるときは、N × rD = 1 となる D が次元です(r = 1/2, N = 3 なら 3 × (1/2)D = 1 で、2D = 3 と同じ式になります)。たとえば、1本の線分を長さ 1/3 の折れ線4本に置きかえる操作をくり返すコッホ曲線は、4 × (1/3)D = 1 から D ≈ 1.262 です。
コピーごとに縮小率 r1, r2, … がちがうときは、
r1D + r2D + … + rND = 1
を満たす D を求めます(モランの式)。こうして求めた次元を相似次元といいます。コピーどうしが重ならなければ、相似次元がその図形の本当の次元(数学ではハウスドルフ次元と呼びます)と一致します。コピーが重なっていると、本当の次元は相似次元より小さくなります。
自己アフィンの図形や、コピーが重なっている図形では、式で次元を求めるのはむずかしくなります。そこで、図形の絵から次元を直接測る方法を使います。箱数え法(ボックスカウンティング)です。
マスの1辺を半分にすると、線ならマスの数はおよそ2倍、面なら4倍になります。D 次元の図形なら 2D 倍です。シェルピンスキーの三角形なら、およそ3倍ずつ増えていきます。下のグラフのように、横軸に「マスを半分にした回数」、縦軸に「マスの数が2を何乗した数か」をとると、点はほぼ一直線に並びます。その直線の傾きが、次元 Dです。
このジェネレーターは、描き終わった画像そのものに 32, 16, 8, 4, 2 ピクセルのマス目をかぶせてこの計算を行い、標本カードに「D≈1.58」のように表示しています(全体表示で描き終えたときに更新)。下の図と表は、いま画面に出ている図形で数えた実際の結果です。
画面のピクセルの数にも描く点の数にも限りがあるので、実測値は理論値から少しずれます。シェルピンスキーの三角形(理論値1.585)は1.57〜1.58、コッホ曲線(理論値1.262)は1.25前後と測れます。ハイウェイ・ドラゴンやレヴィC曲線のように平面を埋めつくす図形は、図形そのものの次元は2です(ただし、その縁(ふち)はドラゴンで約1.52、レヴィC曲線で約1.93のフラクタルです)。こうした図形は、粗いマス目で縁の影響を強く受けるため、1.8前後と小さめに測れます。
ここで、ふしぎなコピー機を想像してください。紙を1枚入れると、その紙を縮小したコピーを何枚か作り、決まった位置・角度に貼り合わせて、1枚の紙として出してくる機械です。シェルピンスキーのコピー機なら、「半分に縮めたコピーを、左下・右下・上の3か所に貼る」という設定になっています。
出てきた紙をまたコピー機に入れ、出てきたものをまた入れて……とくり返します。
驚くことに、最初にどんな絵を入れても(四角でも、丸でも、自分の顔写真でも)、くり返していくと最後は必ず同じ形になります。シェルピンスキーのコピー機なら、シェルピンスキーの三角形です。
理由は「縮小」にあります。2枚のちがう絵を同じコピー機に通すと、出てくる2枚の「ちがい」(ずれの大きさ)は、コピーの縮小率の分だけ小さくなります。シェルピンスキーなら毎回半分です。10回くり返すと 1/1024、20回くり返すと約100万分の1。ちがいはどんどん消えていき、最後にはコピー機の設定だけで決まる形が残ります。
この最後に残る形をアトラクタ(引きよせるもの)と呼びます。そして、コピー機の設定、つまり「縮小する変換をいくつか組にしたもの」を反復関数系(Iterated Function System、略して IFS)と呼びます。1981年に数学者ハッチンソンが理論を整理し、1980年代にバーンスレイが図形づくりの方法として広めた考え方です。
アトラクタは、コピー機に入れてももう変わらない形です。言いかえると、「自分自身を縮小コピーして貼り合わせると、自分自身にもどる」形です。これはまさに部分が全体の縮小コピーになっているということ。変換が相似変換なら自己相似、アフィン変換なら自己アフィンな図形になります。IFS で描いた図形がフラクタルになるのは偶然ではなく、こうしたしくみがあるからです。
この話が成り立つためには、どの変換もどの方向にも縮める(どの向きに測っても長さが1倍未満になる)ことが必要です。ある方向に伸びてしまう変換がまじると、くり返すうちに形が広がってしまい、アトラクタができません。このジェネレーターの「自由変換」は数をでたらめに選びますが、選んだ変換がいちばん伸びる方向でも1倍未満になっているかを計算で確かめ、そうでなければ全体を縮めて直しています。
コピー機のやり方をコンピュータでそのまま行うと、くり返すたびにコピーの数が 3 → 9 → 27 → 81 … と増え、20回目には約35億枚にもなってしまいます。そこで、点を1つだけ動かして描く、もっと身軽な方法を使います。それがカオスゲームです。
「選んだ頂点との真ん中へ動く」というのは、「その頂点を中心にして、全体を半分に縮める」変換をかけることと同じです。つまりカオスゲームは、IFS の変換の中から1つをランダムに選んで点にかけることを、ひたすらくり返しているのです。
点と図形(アトラクタ)とのへだたりは、1歩ごとに半分以下になります。だから最初の数十歩で、点は目に見えないほど近くまでアトラクタに吸いよせられます。そこから先は、どの変換を選んでも、点はアトラクタの上から外れません。アトラクタを変換したもの(コピー)は、アトラクタの一部だからです。
しかもサイコロはでたらめに目を出すので、点はアトラクタのあらゆる部分をまんべんなく訪れます。こうして、たくさんの点の印がアトラクタの絵を浮かび上がらせます。このジェネレーターも、最初の数十歩は印をつけずに捨てています。
サイコロに細工をして、ある変換を選びやすくしても、できあがる形は変わりません。変わるのは、どこにたくさん点が落ちるかという濃さの分布です。たとえばバーンスレイのシダでは、葉の先へ続く変換を85%、2つの小葉の変換を7%ずつ、茎の変換を1%の確率で選びます。こうすると、シダ全体にほどよく点が行きわたります。
変換ごとの選ばれやすさを、このページでは重みと呼びます。直前に変換 i が選ばれた点は全体の wi(変換 i の重み)の割合で、それらはすべてコピー i の中にあります。「コピー i の中のコピー j」から来る点は wi × wj の割合です。図形のどの部分に全体の何割の点が落ちるかという、この濃さの分布のことを、数学では不変測度といいます。この「重みのかけ算」が、第10章で音の長さになります。
キャンバスは横980×縦760の小さなマス(ピクセル)でできています。カオスゲームで点を動かすたびに、その点が落ちたマスの「回数」を1つ増やします。これを数十万〜数百万回くり返します(「きめ細かさ」のツマミが点の数です)。
回数が多いマスほど濃く塗りますが、回数をそのまま濃さにすると、点がたくさん落ちるところと少ないところの差が何千倍にもなり、薄い部分がほとんど見えなくなってしまいます。そこで回数を対数で濃さに直しています。対数はおおざっぱにいうと「桁の数」のようなもので、10回 → 1、100回 → 2、1000回 → 3 のように、大きな差を小さく縮めてくれます。
どの変換にも色の番号(0から1までの数)がついています。点を動かすたびに、点の色を「いまの色と、選んだ変換の色のちょうど真ん中」に変えます。すると点の色には、直前に選んだ変換が 1/2、その1つ前が 1/4、その前が 1/8 …の割合で効いてきます。
直前に変換 i を選んだ点はコピー i の中にいるので、同じコピーにいる点は似た色になり、そのコピーの中のコピーは少しずつちがう色合いになります。色の入れ子が、図形の入れ子(第9章の番地)を見せているのです。
ホイールや + ボタンで拡大すると、見えている範囲だけで点を数え直すので、拡大しても細部がつぶれません。どこまで拡大しても似た形が現れること(自己相似)を、自分の目で確かめてみてください。
「図形をつくる」タブには、IFS(変換の組)を作る方法が3つあります。
回転・拡大縮小・裏返し・平行移動だけからなる相似変換を、いくつかランダムに作ります。相似変換は角度を保つので、どんなに小さなコピーでもモチーフの形がくずれず、くっきりした自己相似の図形になります。スタイルは3種類です。
縦と横で縮め方がちがったり、斜めにずれたりする一般のアフィン変換を2〜4個ランダムに作ります。できる図形は自己アフィンで、相似変換にくらべて、にじんだような有機的な形になります。5-5で説明したとおり、どの方向にも縮むことを確かめています。
よく知られた係数を使う図形です。シェルピンスキーの三角形(自己相似、約1.585次元)、バーンスレイのシダ(自己アフィン)、ハイウェイ・ドラゴンとレヴィC曲線(線分を直角に折り曲げる操作のくり返しでできる自己相似図形。どちらも平面を埋めつくし、縁がフラクタル)、そしてメープルリーフ・スパイラル・クリスタル(いずれも自己アフィン)があります。
「ゆがみ」を「標準」以外にすると、各変換のあとに、まっすぐな線を曲げてしまう変換をはさみます。
まっすぐな線が曲がるので、もうアフィン変換ではありません。標本カードには「非線形」と表示されます。それでも「変換をくり返して点が引きよせられる形」であることは同じなので、入れ子になった構造が保たれます(コンピュータグラフィックスで「フラクタル・フレーム」と呼ばれる手法です)。ただし曲がった変換は場所によっては図形を伸ばすこともあるので、第5章のような「必ず1つの形に決まる」という保証は弱くなります。
シェルピンスキーの三角形の3つのコピーに、1(左下)・2(右下)・3(上)と番号をつけます。それぞれのコピーの中にも、同じように3つの小さなコピーがあります。「コピー3の中のコピー1」を番地 3-1、そのさらに中の「コピー2」を番地 3-1-2と呼ぶことにします。番地の数字が増えるほど、小さな部分を指します。「〇〇県〇〇市〇〇町」と、だんだん細かくなる住所のようなものです。
番地を並べると、1本の幹から3本の枝が出て、それぞれの枝からまた3本ずつ枝が出る……という木の形になります(アドレス木)。図形の入れ子は、この木の枝分かれとぴったり対応しています。
変換 1, 2, 3 を T1, T2, T3 と書くことにします。番地 3-1-2 の部分は、全体の図形に T2 → T1 → T3 の順に(番地のうしろから)変換をかけるとできます。全体を T2 で縮めると「コピー2」、それを T1 で移すと「コピー1の中のコピー2」、さらに T3 で移すと「コピー3の中のコピー1の中のコピー2」になるからです。
番地 3-1-2 の部分 = T3( T1( T2( 全体 ) ) )
全体の上の点を1つとってこの計算をすれば、その点は必ず番地 3-1-2 の部分に入ります。この順番が大切です。逆の順番 T2(T1(T3(…))) で計算すると、番地 2-1-3 という、まったく別の場所になってしまいます。
いよいよ音楽です。このジェネレーターの考え方はシンプルです。図形の「入れ子の番地」を、そのまま音楽の「時間の入れ子」に写す。図形を作ったのと同じ規則で、時間も作るのです。
1つのフレーズ(ひとまとまりの旋律)の長さを60拍とします。これを IFS の変換の重みの比で分けます。たとえば重みが 1/2, 1/4, 1/4 なら、60拍を30拍・15拍・15拍の3つの区間に分けます。次に、それぞれの区間をまた同じ比で分けます。30拍の区間なら15拍・7.5拍・7.5拍です。これをくり返し、区間が十分短く(フレーズ全体の1/40以下)なったら、そこで分けるのをやめて1つの音にします(分けるのは最大7段まで)。
すると、1つの音の長さは通ってきた枝の重みのかけ算になります。たとえば「1番目の区間(1/2)の中の、2番目(1/4)の中の、2番目(1/4)」の音は、60 × 1/2 × 1/4 × 1/4 ≈ 1.9拍です。これは6-5で見た「その部分に落ちる点の割合」と同じ数です。つまり、図形の中で点がたくさん落ちる部分ほど、音楽の中でも長い時間を受けもちます。
長い音と短い音の並び方は、大きな区間の中でも小さな区間の中でも同じ比率でくり返されるので、リズムが自己相似になります。シェルピンスキーの三角形のように重みがすべて等しい図形では、音の長さはすべて同じになり、リズムの変化は「間」(10-5)が受けもちます。なお、聞き取れないほど短い音(0.12拍未満)や長すぎる音(6拍をこえる音)は、聞きやすい長さに丸めています。
音にした区間には、図形と同じ番地がついています(「区間3の中の区間1の中の区間2」なら番地 3-1-2)。そこで、その番地が指す図形上の小さな部分の中から1点をとり(9-3の計算)、その点の高さ(縦の位置)で音の高さを決めます。図形の上のほうにある部分ほど高い音です。
演奏中に図形の上で光るピンクの点は、いま鳴っている音が図形のどの部分から来たかを示しています。
ここがいちばん大切なところです。シェルピンスキーの三角形で、区間を並べる順番を「1 → 3 → 2」(左下 → 上 → 右下)としてみます。コピー1とコピー2は下のほう、コピー3は上のほうにあるので、
となり、同じ「低・高・低」の形が、時間も音の幅もどんどん小さくなりながら、入れ子になって何重にも現れます。下の図は、このやり方で実際に作った27音の旋律です。
これは偶然ではありません。図形の「コピー i」が「全体を変換 Ti で縮めたもの」であるのとまったく同じ理由で、音楽の「区間 i の中の旋律」は「フレーズ全体の旋律に変換 Ti をかけたもの」になるのです。シェルピンスキーの三角形の変換は高さを半分にしてずらすだけなので、区間の中の旋律は、全体の旋律を半分の音の幅に縮めて、移調したものになります。バーンスレイのシダのように回転や傾きをふくむ変換では、高さと左右の位置がまざりあった形で受けつがれます。
くわしくいうと、フレーズは有限の段(区間が1/40以下になるまで)で分けるのをやめるので、区間 i の中の旋律は「全体の旋律を1段ぶん粗くしたもの」に Ti をかけたものになります。図形を有限の点で描くと細部がぼやけるのと同じことです。
こうして、このジェネレーターの音楽は、リズム(時間の分け方)と旋律(音の高さ)の両方が、図形と同じ入れ子の構造をもちます。図形を描いた規則と音楽を作った規則が、同じ「番地」でつながっているのです。
区間を並べる順番は、「音楽をつくる」タブの並び順で選べます。
どちらのモードでも、フレーズが終わるたびに新しい並び順と新しい点(図形の上をカオスゲームで少し歩いた先の点)を選ぶので、同じフレーズがそのままくり返されることはありません。図形が同じでも、流しっぱなしにすると少しずつちがう旋律が続いていきます。
各音のうしろには、その音の長さに比例した休み(間)を入れることができます(「間」のツマミ)。休みの長さは1/f ゆらぎで変化させています。
1/f ゆらぎとは、ゆっくりした大きな変化と、速い小さな変化が、ちょうどよい割合で重なったゆらぎのことです。毎回まったくでたらめに変わる白色雑音(テレビの砂あらしの「ザー」という音のようなもの)と、少しずつしか変わらずにのろのろとさまようブラウン雑音の、ちょうどあいだにあります。大きな波の中に小さな波が入れ子になっている、時間のフラクタルともいえます。物理学者のヴォスとクラークは1975年に、ラジオで流れるさまざまな音楽の、音の大きさや高さのゆっくりした変化が 1/f ゆらぎに近いことを報告しました。
1/f ゆらぎはサイコロで作ることができます(ヴォスの方法)。サイコロを6個用意して、1個目は毎回、2個目は2回に1回、3個目は4回に1回、……6個目は32回に1回だけ振り直し、6個の目の合計を使います。何度も振り直すサイコロが速い変化を、めったに振り直さないサイコロがゆっくりした変化を作り、合計すると両方がちょうどよく混ざります。このジェネレーターでは、サイコロのかわりに0から1までの乱数を使い、「振り直す回数」を確率(2個目は1/2、3個目は1/4 …)で決める形で、この方法を使っています。
音の高さは、旋法(モード)という音階の中から選ばれます。ピアノの白鍵だけを使って、ドから始めてドで終わる音階がイオニアン(いわゆる長調)、ラから始めてラで終わる音階がエオリアン(いわゆる短調)です。同じように、レから始めればドリアン、ミからはフリジアン、ファからはリディアン、ソからはミクソリディアン、シからはロクリアン。始める音によって半音の位置がちがうので、明るい・暗い・ふしぎ・すんだ、といった性格のちがいが生まれます。中世ヨーロッパの教会音楽で使われたことから、教会旋法とも呼ばれます。
中心音(鍵盤で選ぶ音)は、音階のスタートの音です。中心音を変えると、旋律全体が同じ形のまま高さだけ変わります(移調)。
旋律のうしろでは、中心音と、その5度上の音(ドに対するソ)が、低い音域でずっと鳴り続けています(ドローン)。3度の音(ドに対するミやミ♭)をふくまないので長調にも短調にもかたよらず、旋法それぞれの色あいが旋律からはっきり聞こえます。ロクリアンだけは5度が半音低い(減5度)ので、それに合わせています。
「フラクタル」と名乗るからには、それらしく見える・聞こえるだけでなく、数字で確かめられることが大切です。このジェネレーターでは、次のことを確かめています(開発時の測定)。
反対に、図形の上の点をでたらめな順番で拾って音にするだけだと、音の高さの分布は図形に似ていても、並び方は白色雑音(β ≈ 0)になり、時間の入れ子は生まれません。「フラクタルの点を使った音楽」と「フラクタルな構造をもつ音楽」のちがいは、この入れ子の対応があるかどうかにあります。