ファンタジスタドール 8話 玉ねぎ破壊劇場

ファンタジスタドール、8話についてメモみたいなもの。


学園祭の学校を舞台に、複数の登場人物がそれぞれに行動し、交錯やら衝突やらが起きる、という流れ。場面の転換、動きの方向の転換が激しく、見ていて楽しい構成である。画面上の動き、見せ方とプロットが噛みあうと効果的で、脚本の腕の見せ所という感がある。ストライクウィッチーズの7話「スースーするの」回と似た構成。


この手の構成の場合、何かキーになるものが舞台を縦横に移動し、このキーをめぐって各登場人物の思惑がそれぞれに動く、というのがパターンになると思う。今回は、うずめの妹のみこがそのキーの役割を担っている。

かがみとリン

作品の前半〜中盤で実際にみこを追いかけたのは、かがみとリン(チャリーンの人)である。


かがみは、これまでの流れ的には、うずめと仲良くなりたいものの委員会とのアレコレで素直に仲良くするわけにいかず葛藤している、という立ち位置である。最初のシーンで、うずめの差し出した手を取れなかったかがみは、たまたまやってきたみこの保護者役を買って出ようとする。
かがみは、みこを、ある種のうずめの分身として見ていることになる。うずめ本人には近づけないが、「うずめの一部だがうずめそのものではない」みこに、代償的に接近しようとする。これもカティアに割り込まれるなどして上手くいかないわけだが。


リンの方はどうかというと、こちらは単純に委員会の手先として、うずめからカードを奪って自分の希望を叶えようとする。リンがみこを追いかけるのは、うずめにたどり着くための手段として、である。


ここにおいて、かがみとリンがそれぞれの理由でみこを追いかける状況が生まれるが、これはそのまま、かがみの内面の葛藤が表現されているとも言える。つまり、リン=過去のかがみ、である。現在のかがみがリンを撃退したということは、かがみの内面で、委員会の手先としてでなく友人としてうずめに触れ合う、という意志が確立した、とも言い換えられる。


最後のシーンで、かがみがうずめの手を取るシーンが描かれたということで、今話においてかがみの葛藤にとりあえずの決着がついたと言っていいのではないか。そして来週は直接対決……と。


……まあ、委員会の刺客をかがみが撃退するのはこれまで3,4回やってるので、今回も「かがみちゃん毎度おつかれー」というとこではあるのだが。うずめの手を取る/取らないあたりの描写や、みことの会話、みこを追いかけるシーンの描写、というあたり、特に今回はかがみの葛藤に焦点が合った回になっていた、と言えると思う。
葛藤らしくない、ドタバタコメディー的な見せ方ではあるが、ちゃんと葛藤的になっているのは、本作らしい。



監督とみことうずめ、あと玉ねぎ


今作のもう一人の委員会の刺客は映画監督である。
監督はみこを直接追いかけたわけではないが、映画上映後にみこだけが客席に残るという印象的なシーンが描かれている。
監督と対決するのはうずめの方だが、映画のラストシーンに出るのが玉ねぎで、戦闘で使われるのも玉ねぎ、というあたりはちょこちょこと関連付けがある感じである。
ちょっとここは整理してみる。

  • 監督は、Aパートで映画を上映したものの、誰にも理解されず酷評を受ける。
    そして、理解してくれる人を見つけるため、映画に人を集めることを委員会に依頼する。
  • 映画の内容は、何とも言いがたいが、「感情のない男女が残ったが、出会うことがなく、映画は始まりもせず、終わりもしない」みたいな感じである。そしてラストカットで玉ねぎ。これは地雷。
  • 委員会と契約した後、監督とうずめの戦闘になるが、戦闘の場面では監督は映画の内容を踏まえた発言をしている。
    「出会ってしまった以上、ぼくらは戦いの中で映画の結末を語らなければならない」。
    戦闘はうずめチームの玉ねぎ攻撃で終了、監督は涙を流してリタイア。
  • この後、監督が上映会場に向かったところ、みこ一人が残っており、他の観客は途中退席していた。
    みこは映画の感想を「おもしろかった」と言い、監督はこれを聞いて涙を流す。


監督が涙を流すシーンが2回あり、それらが関連付けられているのは確実であろう。
みこがうずめの分身的な存在である、とすれば、監督はうずめとの戦闘において涙し、また、みこの言葉において涙する、と、うずめ=みこによって2回泣かされている。
ここを大きく大きく俯瞰で見れば、監督はうずめとの接触により大きく気持ちを動かされた、と言える。
では、それぞれの接触をどう見るべきか。


戦闘の方。
監督のセリフにある通り、映画が結末を語っていないことについて監督は自覚的である。そして、うずめとの戦闘で語られなかった「結末」を迎えることへの期待がある。
戦闘で何が起きたかといえば、玉ねぎが包丁で切り刻まれた、要は破壊された。
始まりも終わりもしない自己完結的な閉じた映画作品、その映画を象徴する玉ねぎ、戦闘における玉ねぎの破壊……と並べてみると、どうも意図は明白であるように見える。
要するに、監督がうずめと出会うことで閉塞した自意識を壊された、と。


そういう衝突の後で、うずめは監督に対して同情を覚える。人を楽しませたいという気持ちは同じだ、ということで。
そこから今度は映画の方である。
客観的に見れば地雷、自己完結な映画。で、大多数の人は離れてしまっているわけだが、みこはただ一人「おもしろかった」と言う。誤読かもしれないし、本当に意図が伝わったかも怪しいが、それでもそういう観客がいてくれたことで、監督の涙腺が決壊である。
2度目の玉ねぎの破壊だが、こちらが本当の意味での破壊であった、ということになる。


うずめとの戦闘と、みこの映画評は切り分けて見るわけにはいかない。
うずめが戦闘という形で監督と衝突し、監督に共感を得たことにより、うずめの分身たるみこが、監督の映画に「おもしろい」という評を下すことが初めて可能になった、と見るべきだろう。
説明しすぎず、直線的になりすぎずに、テンポ良くイメージを表現している、というあたり上手いと思う。



今回の監督とうずめのエピソードに、作品全体の流れから見て特に意味があるとすれば、監督の「希望」の叶えられ方、にあるだろう。
監督の「希望」が、委員会によって直接叶えられたのでなく、うずめとの衝突によって叶えられたという点は、作品のテーマにも関わってきそうな話である。おそらく、次回のかがみとの対決でもかがみの「希望」がどう叶えられるべきか、という辺りがポイントになってくるのではないか。



ふぁんたじすたどおるは楽しいなあ。

艦これにおけるキャラクターの生と死の表現

概要と目的

艦隊これくしょん(以下、艦これ)を最近よくやっている。

艦これがコレクション型のいわゆるソーシャルゲームの流れを汲んでいることは間違いない。F2P、キャラクターの収集要素は、従来のいわゆるソシャゲからそのまま引き継いだものと見られる。
ただ、艦これの場合は、従来のいわゆるソシャゲが肌に合わなかったユーザーにおいても好意的に受容されているように見える。というか自分がそうなのだ。主観的な意見として、艦これは従来のいわゆるソシャゲよりとっつきやすかった。
この「とっつきやすさ」がどこから来るのかについて、以下、順に考察してみたい。


なお、「従来のコレクション型のいわゆるソーシャルゲーム」として想定しているのは、ドリランド、モバマスパズドラ、くらいである。艦これはソーシャル要素(プレイヤー間の人間関係を取り入れたシステム)が希薄であるため、ソーシャル性は考慮しない。以降、上述のタイトルと同等のシステムをもつものを「(従来の)コレクション型ゲーム」と呼ぶことにする。




艦これと従来のコレクション型ゲームとの差異

艦これは基本的には「よくできたタイトル」であると言える。
ここで「よくできている」と言っているのは、主にシステム・UIまわりについてで、例えば以下の点である。

  1. ゲーム内世界のイメージのしやすさ。図像、テキストによる世界表現の仕方。
  2. 演出、アニメーション、サウンド、音声の使い方、丁寧さ。
  3. プレイヤーへの提示情報量のコントロール。段階的な情報開示の仕方。
  4. プレイヤーに発生する操作量のコントロール。プレイのテンポの良さ。


一応、1だけ補足を入れる。
これは、ゲームの全体像や、各要素(画面、シーン)のつながりがどれだけプレイヤーにとってイメージしやすいか、ということである。
艦これの場合は、そもそも現実の地域や艦船をモデルにしていることが明確なので、プレイヤーがゲーム内に記号的に出現する図像・テキストから現実の事象をイメージしやすい。つまり、細かい説明を省略してもプレイヤーが付いてきやすい。
また、画面の表現上も、海=外界=戦場 と 母港=屋内=キャンプ と、画面の機能と場所のイメージが合致するような作りになっている。空間のイメージでゲーム内世界を捉えやすくなっていることで、とっつきやすさが確保されていると言える。


で、この1〜4の要素だが、これが艦これと従来のコレクション型ゲームとの決定的な差異になっているかというと否であろう。
実際、この1〜4の点については、パズドラも十分なレベルでこれを満たしていると思われる。
3、4は、ブラウザベースのコレクション型ゲームでも十分満たせていて、1、2は近年のネイティブアプリ系のコレクション型ゲームでは十分対応できているのではないか。
「よくできている」以外の部分で、艦これと従来のコレクション型ゲームの間の大きな差異がどこにあるのかというと、コレクションの対象たるキャラクターの扱いではないか、と思われる。


以降、キャラクターの扱いに着目して話を進める。


キャラクター生成・消滅システムの比較

キャラクターに関するシステムで、艦これに特徴的な点は以下ということになるだろう。

  1. ガチャがない
  2. レアなキャラクターでもドロップ or 建造により入手可能
  3. 戦闘でキャラクターがロスト(撃沈)する


では、これらのシステムが稼働した結果どういう現象が発生するのか、また、それらを貫くコンセプトは何か。


上記の「特徴的な」システムはキャラクターの生成・消滅に関わるものである。
以下、艦これとパズドラにおけるキャラクターの生成・消滅について比較してみる。

パズドラにおけるキャラクターの生成・消滅

まず、パズドラの場合、キャラクターはドロップ、または、ガチャによって生成される。
ガチャはゲーム内ポイントによるガチャと、現金相当のポイントによるガチャの大きく2種類に分かれる。
キャラクターの消滅は、合成または売却によって起こる。これはプレイヤーの操作によってのみ発生するもので、プレイヤーが意図しない形では発生しない。


では、生成・消滅の頻度はどうか。
ドロップによるキャラクター生成は、ゲームの進行と並行して自然に起こる。ガチャをやるかどうかはプレイヤー次第である。
合成によるキャラクターの消滅は、ゲームの最初期から発生する。これは、あるキャラクターを成長させるには合成により他キャラクターを消費しなければならない、というシステム上の必然によるものである(確か、チュートリアルでも合成をやる手順があった気がする……うろ覚え)。また、キャラクターの保持可能数も初期値は20と少なく、普通にプレイしていればすぐにいっぱいになってしまう。これも、プレイヤーによるキャラクター消滅操作を促す措置である、と見れる。


以上から、パズドラにおいては、キャラクター消滅の頻度は、キャラクター生成頻度とほぼ同数か若干下回る程度になる、とみなせる。
つまり、パズドラに代表される従来のコレクション型ゲームでは、キャラクターを消滅させる操作は「プレイヤーが必ず行わなければならないゲームの主軸となる操作である」と言える。これらのゲームでは、キャラクターを集め、選り分け、消費する、ということが一連のプロセスとして行われる。

艦これにおけるキャラクターの生成・消滅

一方で、艦これの場合はどうか。
キャラクターの生成は、ドロップ、または、建造によって行われる。ガチャが建造に変わっている点以外はパズドラと変わらない。
キャラクターの消滅は、合成(近代化改修)、解体、撃沈によって発生する。撃沈がある点は異なっているが、合成・解体がプレイヤーの操作で発生する点は一致する。


では、生成・消滅の発生頻度はどうか。
生成についてはパズドラと同様である。ゲームが進行すればドロップでキャラクターは生成されるし、プレイヤーが建造を行ってもキャラクターは生成される。
だが、消滅の頻度は異なる。まず、艦これのキャラクター保持可能数は初期状態で100件と多い。キャラクターの種類数が130前後なので、1キャラにつき1体保持するのであれば過半数が収まる。また、キャラクターを成長させるための主要な手段は戦闘への出撃による経験値集めであり、キャラクターを消費しての合成は成長に必須ではない。チュートリアル的に「合成せよ」と指示されることもなかった、と思う……確か。


上記から、少なくともゲームの初期段階でのキャラクター消滅頻度は相当低いはずである。
もちろん、ドロップによるキャラクターの生成・入手があり、キャラクター保持可能数が有限である以上、インベントリの圧迫に対応するためのキャラクター消滅操作が発生することは避けられない。ゲームの中盤以降では、キャラクターの生成頻度と消滅頻度は拮抗してくるはずである。
だが、それでも、プレイヤーによるキャラクター消滅操作(合成 or 解体)の重要性・必然性の低さは、パズドラとの大きな差異と言える。


端的には、艦これのシステムは「キャラクターをなるべく消滅させない」ようになっている、と言える。



艦これのキャラクター生成・消滅システムの意義付け

前述の、艦これに特徴的なシステムを再掲する。

  1. ガチャがない
  2. レアなキャラクターでもドロップ or 建造により入手可能
  3. 戦闘でキャラクターがロスト(撃沈)する


先ほど「キャラクターをなるべく消滅させない」のが艦これのシステムだと述べたが、この視点から③の撃沈システムをどう位置づけられるか。

撃沈システムとキャラクター消滅について

まず、撃沈は、プレイヤーが意図しない形で発生するもので、プレイヤーの過失である。キャラクターを収集・成長させるゲームにおいて、キャラクターを意図せず失うことは最大のペナルティとなり得る。
撃沈によるキャラクター消滅頻度は、おそらく合成・解体によるキャラクター消滅頻度と比べれば微々たるものであろう。だが、プレイヤーにとっての意味的重要性は極めて大きい。実際、ステージを攻略する際のプレイヤーの判断は撃沈のリスクによって制限される。


撃沈というシステムが存在している以上、ゲームシステムは「キャラクターを消滅させ」ようとしている、と言える。一方で、プレイヤーは自発的に「キャラクターを消滅させない」ようにする。
よって、撃沈というキャラクター消滅システムは、ゲームプレイにおける葛藤の発生要因となり得る。ゲームにおける葛藤の場では、プレイヤーによるギリギリの判断が行われ、そこにドラマが発生する。ドラマの結果として、生存、あるいは、消滅が発生する。撃沈によるキャラクターの消滅は、鮮やかに、高ディティールに、プレイヤー自身の体験として描き出され得る。
一方で、合成・解体というキャラクター消滅システムにおいては、葛藤というよりは作業効率の追求がなされるのが通常である。そして、これは艦これでは重要視されていない。


撃沈システムを考慮に入れれば、艦これのシステムはこう言える。「合成・解体ではキャラクターをなるべく消滅させないが、撃沈によるキャラクター消滅は常にプレイヤーに意識させる」と。
ここに見られるのは、ドラマ性のある、劇的な消滅に重きを置く姿勢である。


ドロップ・建造によるキャラクター生成について

前節で、キャラクターの消滅において「劇的」というキーワードを挙げた。
では、この「劇的」というキーワードをキャラクターの生成に適用して再度見直すとどうなるか。
ドロップ、ガチャ、建造、の3つのキャラクター生成システムを比較してみる。


まず、ステージクリアによるドロップは劇的となり得る。
練度が低くクリアできなかったステージを、いくつかの準備を経てようやくクリアできた際、その報酬として魅力的なキャラクターが得られた、というのは十分にプレイヤーにとってドラマチックになり得る。
イベントステージでの潜水艦、大和のドロップ等はまさにそんな感じである。


ガチャはどうか。これも劇的とはなり得るが、現金が絡むと扱いが難しくなる、と思われる。
現金ガチャのシステムが、あまりに劇的さを演出できてしまうと、プレイヤー側が雰囲気に飲まれて過剰に現金を投入してしまうことになる、ということがあるのではないか。要するに、コンプガチャの問題である。
自分でコンプガチャ系のシステムをやり込んだわけではないので詳しくは語れないが、SNS等の書き込みを見る限り、「〜万円を投入した末にようやく獲得したキャラ」という形で、キャラクター生成のドラマが発生していることは見て取れる。
プレイヤーが冷静に判断して適度に現金を投入できるようにするには、システムを単純にせざるを得ない。そして、劇的さが発生し得るような手の込んだシステムにするには現金の扱いが枷になってしまう。
現金ガチャにおいてはこのような制約があると見れる。


では、建造はどうか。
これは、単純なガチャと比べれば相当に手の込んだシステムになっている。資源の投入量の決定、建造完了までの待機時間、とプレイヤーがかける手間、払うコストは多い。
現状だと資源の投入量ノウハウはwikiにまとめられているし、高速建造材も余りがちなので、劇的さが強いとは言えないかもしれない。ただ、独力でノウハウを貯めようとした場合は相応の試行錯誤は発生するはずだし、今後システムが変更になった場合にはプレイヤーコミュニティでの活発なやりとりが発生するはずである。
現金によるガチャと比べた場合、現金を使うこと自体から生ずる劇的さを差っ引けば、低リスクで多様な劇的さを演出することを指向している、と見れる。



個別の検討は以上。
上に挙げたシステムのうち艦これで採用しているのはドロップと建造となっているわけだが、艦これでは、メインがドロップ、サブが建造となっている、と思われる。ドロップ・建造のどちらでもレアキャラクターが出るという点では対等だが、イベントステージでドロップの形でキャラクターが先行配信されるところからすれば、ドロップ>建造、である。
つまり、艦これについては、「ガチャがない」と言うより、「ドロップが最も重視されている」とみなすのが適切ではないか。
そして、ドロップを重視するのは、それがメインのゲームプレイと最も密接に結びつき、最も劇的となり得るから、である。また、ゲームプレイとの結びつきが弱いシステムには重きを置かないという方針から、現金ガチャは不採用となり、補助的なキャラクター生成システムとして建造が採用された、と見れるのではないか。


キャラクター生成・消滅システムのまとめ

ということで、艦これにおいては、ゲームプレイにおいて最も劇的なユーザー体験を発生させるための要素として、キャラクターの生成・消滅システムが用いられている、と考えられる。
少なくとも、(短期的な)収益化のしやすさは、ユーザー体験の劇的さに比べて低い重要度に位置づけられているのではないか。


幕間

無駄に長くなってきたので一旦これまでの流れをまとめる。

  • 艦これがなぜとっつきやすかったか、が問題点。
  • 艦これと従来のコレクション型ゲームの主要な差異はキャラクターの扱いではないか、という仮説を立てる。
  • 艦これのキャラクター生成・消滅まわりのシステムを検討し、劇的さが主軸になっているとみなす。


以上。
まだ、特徴的なシステムについて意義付けをしたまでなので、当初の目的まではまだ道半ばというところである。

ここまではできるだけ事実ベースで話を進めるようにしたつもりだが、以降は主観的だったり観念的な話が多くなってくる予定である。



コレクション系ゲームにおけるドロップと敵

前章では、艦これの特徴的な要素としてキャラクターの生成・消滅まわりのシステムを確認した。
艦これにおいては、生成ではドロップが消滅では撃沈が重視される作りになっている、としたわけだが、これらのうち、発生頻度が多い方のドロップについて掘り下げてみたい。
また、艦これでは戦闘の結果としてドロップが発生するということから、敵の存在がどう描かれ、どうキャラクターと関連しているかを確認する。


コレクション型ゲームに限らないが、「強力な敵を倒す(超克する)ことで、その敵の力を我が物とする」というお話は、一般的な物語のパターンとして存在する。龍を殺してその血を浴びることで不死の力を得るとか、ヤマタノオロチを殺したら剣が出てきたとかそんなやつである。
もっと抽象的に「障害を乗り越えることで価値あるものを得る」パターンと言ってもよい。


戦闘タイプのゲームにおいて、敵を倒すことでドロップにより何かを得る、というシステムがすんなりとプレイヤーに受け入れられるのも、この物語のパターンが一般的であることの証左と言っていいと思われる。
古典的なRPGで見られるのは、モンスター等の「恐ろしいもの」を倒すことで何らかの装備品(強力な武器とか)を得る、というパターンである。ここで得られるのが装備品になるのは、RPGではプレイヤーの分身たるキャラクターがゲーム内世界にただ一人存在するからである。プレイヤーとキャラクターの1対1の関係を維持しつつ、キャラクターへの報酬付与を象徴的に表すために装備品というモノが使われる。


で、報酬として得られるモノが装備品でないパターンとしてポケモンやら女神転生やらのような、キャラクターコレクション型のゲームが出てくる。
こちらでは、モンスター等の「恐ろしいもの」を倒し、これをそのまま自分の駒として使役する形になる。つまり、敵とドロップ報酬がイコールになる形である。
パズドラも本来はこの流れを汲むものであった……と思う。


で、で、また別の派生として、「敵を倒す(超克する)」という過程以上に、プレイヤーが「価値あるもの」を収集・所有すること自体を重視するタイトルが出てくる。おそらく、ビックリマンをここに位置づけられると思う。作品内世界における障害克服のロールプレイは発生させず、一段メタな次元での収集行為の困難さが、結果的にプレイヤーにとっての「障害」になる、という形である。
そして、さらなる派生として「価値あるもの」に「美しいもの」「愛らしいもの」として美少女キャラクターが使われる流れが出てくる。モバマスはまさしくこの流れにある、と思われる。また、パズドラの美少女系モンスターもこの流れの影響にあると思われる。艦これもまたそうである。


このあたりの派生要素が混ざってくると、話がややこしくなってくる。
プレイヤーにとって、乗り越えるべき障害・困難は「恐ろしいもの」の姿をとって現れるのが自然である(ゲーム内世界で障害克服の過程を描くのであれば)。一方で、プレイヤーが所有したい(あるいは同化したい)のは「愛らしいもの」である。
このギャップをどう乗り越えるか?
モバマスでは、障害を、レッスン、クエスト等の姿のないものとし、姿を持つのは「愛らしいもの」だけにしている。
パズドラでは……全く追いきれていないのだが……脇で見る限りは、「愛らしさと強さを兼ねたもの」を障害と報酬の両方に使う、「愛らしいもの」は障害としては登場せずガチャ等の別経路で入手できるようにする、倒した「恐ろしいもの」が「愛らしいもの」に転生して報酬になる、等のパターンを組み合わせていると思われる。
艦これでは、倒した「恐ろしいもの」が「愛らしいもの」に転生して報酬になる、となっている。
艦これの解法はストレートでシンプルであると言えるが、これは敵と報酬=キャラクターを強く密接に関連づける形にもなっている。


艦これの設定上、敵が最初に在って敵を倒すことで艦娘が生まれたのか、艦娘が最初に在って艦娘が撃沈することで敵が生まれたのか、「卵が先か鶏が先か」は明確でない。
何が発端かは定かではなく、明確な意図を持って設定されたのかも不明であるが、結果として、艦これにおいて美少女キャラクターは「愛らしいもの」と「恐ろしいもの」の2面性を持つことになった。そして敵とキャラクターには点対称的な構造が生まれた。
敵の死はキャラクターの生に、キャラクターの死は敵の生に、容易に結びつく。
構造があまりにも単純で強固なので、例えば、視点を180度反転させて、
 プレイヤー : キャラクターを捕まえて兵器として使役する悪の権化
 敵     : キャラクターをプレイヤーの手から解放するために侵攻する正義の軍
と見ることも可能であり、そう見た場合でも構造は維持される。


とにかく、艦これにおいては、生成と消滅の主要システム(ドロップと撃沈)が、キャラクターと敵の対立構造ときれいに重なっている。
ならば……生と死にゲーム内世界と密接に関連する強い意味が与えられている、とも言える。


艦これにおいて、プレイヤーは死なせてしまった愛すべきキャラクターの恐ろしい恨みと対峙し、それを乗り越えることでまたキャラクターを生まれ直させ、それを繰り返す。そういう舞台になっている。



キャラクターの生と死を描くということ

ある物語において(あるいは現実において)、キャラクター(あるいは人間)が死ぬということに対して、我々は自然と何らかの「意味」を求めてしまう、はずである。
「無意味な死」はストレスである。
そういう、死を中心にした物語化の圧力は、物語作品において意識せざるを得ない主要な位置を占めていると思う。


そういう点から見て、従来のコレクション型ゲームにおいて、合成で消滅させたキャラクターが他のキャラクターの経験値になって終わり、という描かれ方をしたことに拒否反応を示す層が一定数いたのではないか、と思う。
そういう層が、艦これをプレイした際は、少なくとも序盤は合成を行わずに済むので、結果として定着しやすかったのではないか、と考える。


「窮鳥懐に入れば猟師も殺さず」とか「袖振り合うも他生の縁」とか色々あるが、プレイヤーがキャラクターと出会ってしまったならば、プレイヤーはキャラクターに多少なりとも愛情を抱いてしまう、ということはあると思う。ゲーム内世界ではシステムは強力であるからこそ、「無意味な殺害」のロールプレイをプレイヤーに強要するシステムは、少々注意して取り入れるべきではないかと思う。

『ヴァンパイア・サマータイム』 救われない「恋愛」

読んだ。
完成度の高い作品という点は確かだと思うが、「どういう話だったか」を語るには少々慎重になってみたくなる。主軸が恋愛であるという点は確かにそうだが、その背景にあるイメージにどこか不吉なものを感じる。

カマタリさんからの流れ、リアリティの問題


ちょっとうろ覚えだが……前作のカマタリさんでは、いかにも「ラノベ的」なガジェットや設定を散りばめておきつつ、後半ではシリアスな恋愛の方向に展開が変わり、シリアスな恋愛が割とあっさりと成就するというラノベらしからぬ終わり方をしていた。確か。


少年の視点から見て象徴的なガジェットを多用したり、現実との差異を強調するような、いかにも「ラノベ的」なやり方を排しつつ、何かしら独自の手法を確立しようとする意図がこの頃からあったと思われる。
カマタリさんでは、それがいち作品内での急激な路線変更として現れたので少々面食らったが、本作は最初から「そういうもの」として書かれた感があり、落ち着いて読める。


では、「ラノベ的」であることから離れることの意義はどこにあるか。
ラノベ的」であるということは、過度に抽象的である、とも言いかえられる。つまり、「お約束だから」という暗黙の了解によって、設定の不整合を強引に押し通すことができる。これによって物語をダイナミックに動かしたり、魅力的なガジェット・キャラを出して、読者を強く惹きつけることができる。しかし、その反面、ダイナミックさが強く求められるあまり、微細で複雜な問題が描きづらくなる、というデメリットがある。


これは、作品においてフォーカスするポイントをどこに置くか、ということである。
恋愛という未知の存在を強く恐れる少年の視点からすれば、恋愛は容易に達成できない大問題で、少女は強大な力を持つ存在となる。この視点に立って物語を描くことは可能である。だが、ここに現れる「恋愛」は遠く、大きい分、解像度が低い。
では、恋愛は未知だが手が届きそうな位置にある存在である、と見る立場からすればどうなるか。恋愛は作中で達成できてもできなくてもよい、少女は特別かもしれないが特別すぎなくてもよい、くらいに収まる。そして、「恋愛」は近く、小さくなるが、その分解像度が高くなり、多様な形になり得る。
人物の解像度の高さ、そこに現れる問題の解像度の高さ、この辺りがこの路線での目指す所だと言えるのではないか。これは、リアリティと言い換えてもよい。


「現実と似ている」という意味での「リアリティ」について言えば、本作には「リアル」でない要素は多い。
まず、吸血鬼という設定がそうだし、ヒロインの冴原の人物にしても、男性目線での理想化はされていると思われる。この点からすれば、本作の作品内世界は少年・青年の内的な世界である、といって差し支えないだろう。
ただ、この内的な作品内世界に現れる、少年・青年の問題が、高解像度で複雜である点について「リアリティがある」と呼ぶことは可能と思われる。



ヨリマサという人物

細かいあらすじは省く。
本作の主人公はヨリマサであるわけだが、この人物には伏せられた部分が多い。半ばまで読んだ時点で、昼夜逆転気味、実家がコンビニで時々バイトをしている、部活はやっていないっぽい、三角関係的な友人がいる、成績は中の上程度、くらいだろうか。
作中時間は冴原との出会いから始まるが、冴原以外の要素はほとんど現れない。冴原以外に好きなものがない、とも言える。

p189、冴原家に招待される前、恋愛映画を観た後。

 恋に生き、恋に死にたいと思った。昼夜逆転していると心が柔になり、触れたものに合わせてたやすく形を変えてしまいがちだ。明日になればこの感動も消えて、泣いていたことなど馬鹿みたいだと思い出されるだろうが、やはり恋なのだった。その一点だけで彼は、まわる世界にかろうじてひっかかっていられる気がした。

虚無と、一縷の望みとしての「恋」。


昼夜逆転し、冴原家に招待され、吸血鬼達と寝食を共にしたヨリマサは、「ここではないどこか」「向こう側」へと(一時的に)越境する。
冴原家での冴原との会話。

「前に夏休み嫌いだっていってたよね」
「うん」
「どうして?」
昼夜逆転するから」
昼夜逆転したらどうして駄目なの?」
「することないから」
「することあったらいいの?」
「どうかな」

冴原は、ヨリマサの虚無の救い手であるように見える。
そして「夜と牙」の章で、ヨリマサの虚無の行方、内実が現れる。

夜の海

「夜と牙」の章、ヨリマサは夜の世界の住人として、冴原との夜のデートを重ねる。
ここで強調されるのは、人間と吸血鬼の差異である。
「理想に燃えて駆け落ちしたものの現実とのギャップに幻滅」「外国人と結婚したらカルチャーギャップで大騒ぎ」、紋切り型で言えばこうなる。が、そこで大げんかしたりドタバタコメディに持ち込める程、俗的・現実的にもなりきれない。ヨリマサはまだ純粋な少年である。


p269、デート先の海は、虚無の世界としてヨリマサの前に現れる。

 海はヨリマサの知っているそれに見えなかった。海岸通りに並ぶ街灯を境界線として、その先はヨリマサの目にとらえられない世界だった。

海ではしゃぐ冴原と、何も見えていないヨリマサという絵は、この先の全てを暗示してしまっている。ただただ、描けば描くほど痛みを得るシーンである。


p274、ヨリマサの過去がようやく語られる。

 そうでない生き方もありえたのだろうかとヨリマサは考えた。規則正しい生活を送って、高校でもサッカーを続けて、夏合宿で吐くほど走らされて、友人や先輩後輩がたくさんいて、食卓に家族がそろって、夢も見ずに眠って、波の音に目がさめて、海沿いの街で、冴原がいっしょで、生まれた時から吸血鬼で、夜の海がどこまでも見渡せてーー続いていく確かな幸せを手に入れられた世界もあったのだろうか。


ヨリマサには、この「恋愛」の限界が見えてしまっている。ここで示唆されるのは、吸血鬼となり本当の意味で越境することである。故に、ここからの冴原との接触には、キスシーンには、越境の期待と罪の予感が付きまとってくる。


夜の海でのキスの失敗の後、第三節では、ヨリマサの告白から初のキスが描かれる。
ただ、第二節、夜の海にあった越境の予感はここではスカされ、まるで普通の恋人であるかのように告白とキスは行われる。
p300、

「俺さあ、ずっと夏休みが嫌いだった。嫌いっていうより怖かった」
「怖い? どうして?」
 彼女はヨリマサの胸に声を響かせ、それを聞こうというのか、耳に胸を押しつけた。
昼夜逆転して暗い中で起きると、ひとりで、どうしたらいいのかわからなかった。俺この先どうなるのかなって考えて、誰の助けも借りられない気がしてた」
「そう」
「でも、この夏は冴原がいたから、色々話せたし、ひとりじゃなかったし、楽しかった」
「この先のことよりいまのことを怖がりなよ。吸血鬼につかまって血を吸いたいっていわれてるんだよ?」
「怖くないよ。感謝してるんだ。冴原、ありがとう」

ヨリマサの虚無は解消されたかのように見える、だが、実際には夜の海の虚無は乗り越えられたわけではない。まだヨリマサは越境していない。


この第三節をどう読むかは……迷うところではある。
続く四節ではヨリマサは何でもないような会話の流れから、ボソッと「血ィ吸っちゃってもいいよ」と漏らしている。冴原と視線の合わない膝枕の体勢からの一大決心の吐露。叶わない願いを冗談のように言うヨリマサ。これは、正面からの告白、キスの流れでは口に出せなかった言葉、ではないか。正面から強く迫れば叶えられた願いかもしれない、が、そこまで強くはなれない。
三節では普通の恋人であるかのようにキスをした二人は、四節で昼と夜の世界に別れてゆく。三節の瞬間は、甘い夢、あるいは嘘の様相を成す。


終章は、ヨリマサからのメールと冴原からのメール、そして、ヨリマサ・冴原の周囲の人物の会話によって構成される。
それぞれの宛名、題名等のフォーマットの差は、何かしらの差異・すれ違いを予感させる。「昼間の世界」の文字はボールドで強調されている。
孤立とすれ違い、離別を予感させる中で、言葉にはまだ希望があるようにも見える。それが上滑りしているのか、真実になるのかは分からない。


冴原という人物

ここで、冴原という人物に戻る。
彼女は何者なのか? ヨリマサの中心が空虚であるとして、その対面者である冴原の中心には何があるのか。


本作における冴原の「原風景」は、「ガラスの向こうの対面者」である。明と暗に分かれた世界で対極に位置し、視線を交わすもの。
この関係は、二人の学校での席が同じであるという点にも端的に表される。
異なる世界にある同一のもの。鏡面的な関係。構造的には、このような関係が示唆される。


だが、冴原にヨリマサの空虚はあるだろうか。ヨリマサが見た夜の海の空虚が冴原に見られるか。
優等生で部活にも精を出している、という点で、設定的にはヨリマサと異なっているように見える。が、いくつか傾向は見られる。
p190、

冴原に希望の学部はなかった。特考の対策をするのは、ただ悪い点を取るのが怖いからだった。

特に強調されているものでもないが、冴原にも見えていないものがある、ということではある。


ただ、冴原という人物において虚無を語るのであれば、彼女自身にではなく、彼女からヨリマサへの視線の中にこそ虚無がある、と言える。
冴原は、なぜヨリマサが好きなのかが分からない。ただ、好きである理由は「におい」へと集約されてゆく。ヨリマサの人物を嗅覚へと押し込み、視覚的、言語的な部分を捨象してしまう視線。冴原に「見えない」のは、恋愛の対象であるはずのヨリマサである。
冴原の視線は、冴原による「におい」の肯定は、ヨリマサを非言語的な実存の闇に落としこむ。対象の無条件の全肯定とは、対象の無限の矮小化に等しい。


「夜と牙」の章、第三節では、冴原は「におい」が好きなだけであることを告白するが、これをヨリマサ自身によって肯定され、初めてキスをする。
暗闇にただ感覚だけがある、第三節のキスシーンはそういう世界である。これを是とすることも否とすることもできない。だが、ヨリマサと冴原の「恋愛」には「先」がない。孤独の虚無と全肯定の虚無を行き来しただけ、と言えてしまう。
夜の海の閉塞と懊悩、まだそこから抜け出せない。


まとめ

……と、夜の海のシーンのインパクトが自分には強烈だったので、これを軸にしてまとめた。
あのシーンのイメージに引きずられて見ているところはあるかもしれないが、それはそれで。


恋愛が全てを変えてくれるわけではない、恋愛によって全てが上手くいくわけではない、という視点は確かにあるのだと思う。
これは、冴原の以下の描写・セリフにも現れている。p288

 冴原はベッドの上に携帯を投げ出した。ヨリマサに対して誠実でいたいと思う気持ちは、正義感や道徳心から来たのではなくて、単にそういう生き方しかできないだけのことだったのだ。試験勉強や部活のことも同じだ。手を抜けなくて、息苦しくてーーでも、それが自分だ。この身が灰になるまで自分というものはついてまわる。
(誰かを好きになったら別の自分になれるとか、そんなのないんだなあ……)

ヨリマサに当てはめるなら、虚無から抜け出すには、自分でなんとかするしかない、ということになるか。ただ、恋愛がきっかけになる可能性が無いわけではない、はず。


実に、実に、まともな青春小説というところか。

たまこまーけっと 死と再生と商店街

たまこまーけっとをようやく全話観たので。ちょいと書いてみる。


作品は、現代の商店街が舞台で、あの鳥以外にはこれといってファンタジックな道具立てがない。ということで、「けいおん」的な日常系作品なのでは、というのが最初の印象であったが、全話見終わって振り返ってみると、なかなかどうして、象徴的な意味構造が作品全体を覆っていて、まあ、なんというか神話的な作品といっていいのではないか。
けいおん」の時に原作の制限でできなかったことを、オリジナル作品ということで思いっきりやったのではないか、と思える。


実際に作品を見れば、ウェルメイドな、現実感のある空間を描いているアニメーションという印象があるわけだが、そういうイメージを保持しつつも、描写や物語に動きを与えられるような背景の意味構造もまたしっかりと構築されている。デラを始めとする非現実的な道具立てを縦横に使って作られたこの意味構造によって、作品の完成度(完結度)が高くなっている、という感じ。


以下、作品の意味構造みたいなところを追いつつ。

母について

本作は、北白川家という家族の物語であるわけだが、そこには母の不在という大きな特徴がある。
作品において、北白川母に直接的に焦点に当たったエピソードは、4話のあんこと祭りのエピソード、9話の豆大の歌のエピソードとなる。主人公たるたまこが、母についての思い出を語るシーンはまとまった映像としては出て来ない。また、1話や最終話のように、たまこが母のことを語ろうとすると、デラをはじめとする周囲の人々が、過剰気味にこれに反応して語りが進むのが遮られる。
4話にあんこと母が会話しているシーンが回想されている以上、たまこに母との思い出がない、とは考えられない。また、たまこが母の歌を口ずさんだり、母に花を供えたりするシーンはあるわけで、たまこと母の関係が弱いというわけではない。現在の北白川家では実質的にはたまこが母親役をやっているわけで、「普通に」考えれば、たまこと北白川母のエピソードはもっと多く提示され、母役の継承者としてのたまこのエピソードがあってもおかしくないはずである。
だが、作品の方では、たまこが母を思い出すシーンは意図的に抑制されているように見える。


これは、本作における北白川たまこのロールは何か、という問にもつながる。
作中におけるたまこの有り様はどうであるか? 少なくとも、家を守る女性、という意味の「母」としては及第点にあると言えるだろう。また、将来に対する不安、「家」や「旧いもの」、「自分を縛るもの」への反発心が見られず、この点では若者らしさ、少女らしさがない。一方で恋愛に関しては鈍感もいいところで、この意味では少女以前の子供である。つまりは、一種のスーパーマン、かつ、異形的な有り様をしている(たまこに欠けている少女性は、むしろあんこの方に強く見られる)。
このたまこの有り様は、「母を失った少女」である以上に「母」そのものである、と言える。見方を変えれば、たまこ=母、という像がまず最初にあり、これをブレさせないために彼女が「娘」として描かれるシーンを作らなかった、とも言えるのではないか。


聖なる異形、「処女母」としてのたまこ。
彼女はうさぎ山商店街の象徴であり、うさぎ山商店街は彼女の家=内的空間である。処女母として完結したたまこには、生と死が欠落しており、それ故に第一話で彼女の誕生日は祝われない……とするのはさすがに飛ばしすぎかもしれないが。この異形的な完結性に変化を与える契機となるのが、異界からの来訪者であるデラ、となる。


南の島の人々

南の島の人々、及び、デラは、本作におけるファンタジー的・非現実的な要素となっている。
デラは、狂言回し、あるいは物語の歯車を回す役としてとりあえず便利ではある。物語を進める上での実用性という点では、デラを出す意味は大いにあると言える。では、なぜ「南の島」なのか。そして、「お妃を探す」というのはどういうことか。なぜ、それがこの作品で意味を持つのか。


最終話がこのあたりを描くエピソードになるわけだが、端的に言えば、南の島は商店街の「外」で、お妃になるということは、たまこが商店街からいなくなる、ということである。
ここでもう一段つっこむ。「お妃になる」という言い方、デラの恋愛脳からのイメージで、南の島=「外」に出ることが、少女が恋を経て女性(母)になることであるかのように錯覚される。だが、実際のところ、いかにデラが恋愛脳であったとして、王子とたまこの間に恋愛が発生するだけの経緯があったわけではない。南の島の人々がやっていること(やろうとしたこと)は、一方的なたまこの略奪である。
黒い衣を着て、異界から現れて、理由もなく人を奪い去るもの。つまるところ、南の島の王子は、死神の役回りを持っていると言える。
ならば、最終話におけるたまこの嫁入りの話は、恋愛の話ではなく、北白川母の死の再演だったと言えるのではないか。


最終話が恋の話ではなく死の話であると見た場合、デラ、および、チョイの役回りはどう見れるか。
チョイはいかにも人間的な少女である。王子に恋しており、たまこや北白川家の面々を好ましく思っている。家族等の背景は不明。占い師を生業としている。
最終話において、チョイは、たまこが王子の妃であるかを占わずに決めた、と自白している。言ってみれば、チョイが最終話付近のたまこ嫁入り騒動の元凶である。
普通の少女という点ではチョイはあんこと対になるのかもしれない。或いは、たまこがそうなれなかった「普通の少女」の姿か。チョイの「母恋い」の思いが商店街からたまこを奪うことになる。それはたまこ・あんこ姉妹が表に出していない「母恋い」の裏面での発露と見れなくはない。
チョイが本格的に登場するのは7話になる。うさ湯、北白川家の風呂で溺れて湯に沈むチョイの姿は、水底の少女のイメージを成す。この後、商店街には魚のイメージが度々現れる。10話からは商店街のアーケードに巨大な魚のオブジェが現れ、商店街は水底の様相を強く帯びてゆく。これはチョイ、王子の来訪により商店街が水底化=異界化した、とも取れるし、チョイが商店街=水底=異界にやって来た、とも取れる。チョイとたまこの関係は、たまこと北白川母の関係と重なり、商店街と南の島に彼岸と此岸の円環的な図を描くようである。そういう動きの当事者でありつつ、占い師としての超越的な視点も持つのがチョイの役どころである。


デラはどうか。デラは来訪者として現れ、物語の歯車を回す役となっている。
デラの性質は、生を肯定する者、祝福する者、と言えるだろう。奪うもの、与えるものではないが、生きている人間の背中を押してやるものである。
王子とデラは対の存在と言えるかもしれない。王子の存在は社会的であるが故に人間的でなく、その裏面としてデラが人間的であるものとして振る舞う、と。


死と再生

王子の来訪を受けての最終話の流れはどうであったか。
死神たる王子の来訪。たまこの商店街への思いの吐露。これを聞いたデラによる王子への陳情。そして、たまこ自身による婚姻の拒絶。
たまこが自らの意志を表すことで、王子はあっさりと引き下がる。


王子の来訪により、たまこは何かに直面した。そして、たまこが決断した何かによって、何かが変わった。
そういうことであるが……それぞれの「何か」の中身は何なのか。
王子の来訪により、商店街の面々はうさ湯に集まる。商店街にはシャッターが降り、たまこはここで母の死の光景を、さらには、商店街そのものの死の光景を幻視する。たまこが直面したものは商店街の死である。そして、商店街の死を避けるために、たまこは婚姻を拒絶し、王子は引き下がった。
一連の行動をたまこの側から見ればこうである。だが、因果関係を考慮するにあたって釈然としないところがある。商店街の死を避けるために変わらなければならなかったのは本当にたまこ自身だったのだろうか? たまこを異界=南の島に連れて行こうとした意志の持ち主は誰だったか。チョイということにはならないか。
先に見た通り、水底の少女たるチョイの「母恋い」の願望が、終盤の婚姻騒動の原因となっている。このチョイの願望は、表立って描かれていない、たまこの北白川母への想いの鏡像であると見れる。この見方に従って、視点をスライドさせてみれば、たまこ=北白川母、チョイ=たまこ、となる。ややこしい話であるが、たまこはたまこ自身と北白川母が同時に重なっている人物であるかのような像となる。


再度見なおしてみよう。
チョイ(たまこ)の「母恋い」の念が、王子による迎えという形を取った。これは即ち、異界においてチョイ(たまこ)とたまこ(北白川母)が一緒にいられるようになるという、「母恋い」願望の短絡的成就である。だが、この形での願望成就は、商店街の死につながる。この葛藤が、たまこ=チョイの直面した「何か」である。
そして、たまこの独白において、「母」は異界ではなく商店街の中にこそある、ということが再確認される。だから、たまこ=チョイは異界行きを断る。
これは、たまこの北白川母(および商店街)との関係の再生と見ることもできるだろう。
異界=水底の世界からの使者との対峙(それは、自分自身が水底の世界の使者でもあるような多重的な構造を取っている)、この対峙を経て、新たなる自分自身の生の生き直しが始まる(処女母の異形性からの脱却)、そういうイベントであったと見れる。
この再生劇は肯定者・デラによって祝福される。そして、異界におけるもう一人の自分=チョイとの別れによって幕を閉じる。


たまこの再生は、また、一年の終わりと始まりにも対応する(これは作品時間の始まりと終わりでもある)。
死と対峙して再生したことで、たまこ自身の時間が動き出し、誕生日の祝福が行われる。これは完結性・永遠性が失われ、普通に生きる人間としての、生、成長、老いが始まることを含意する。
たまこを祝福するのは、大路もち蔵と帰ってきたデラである。
大路もち蔵を、南の島の王子の裏面と見なすことは可能であろう。婚姻の二つの側面、あるいは、たまこ=チョイのそれぞれから見た婚姻相手のイメージ。
たまこが一人の人間に生まれ直すことで、商店街を舞台にした恋愛劇がようやく幕を開けた、と言える。今度こそ、デラの祝福を受けてもち蔵が男を見せてくれるのでは……と期待させてくれる終わり方である。


商店街世界

北白川たまこはいかにして商店街に母を再発見したか。終盤のくだりは、こうも言えるだろう。
実際には、異界=南の島の人格、チョイを構築し、チョイの視点で商店街を見つめることで、母をまず発見した。そして一人の人間として商店街を見つめなおすことで、異界を経由せずに母を再発見することができた。
これは即ち、非現実的でない、現実的な空間であるはずの商店街が、非現実的な物語である異界の概念を内包している、ということの再発見でもある。生き直すに足る、豊穣な物語を含んだ時空間としての商店街という現実世界。たまこを取り巻く商店街の人々は、最初からそういうことが分かっていたのだと思えば、また感じ入るところもある。
行きて帰りし、美しい物語であった。

ファンクターとアプリカティブファンクター(解決編)

引き続き Haskell
前回はこちら。
Applicative、pure、関数についての再考、帰ってきた Functor - doitakaの日記


タネ本は『すごいHaskellたのしく学ぼう!』。

すごいHaskellたのしく学ぼう!

すごいHaskellたのしく学ぼう!

あらすじ

これまで、「関数がファンクターである」という点についての検証から出発し、アプリカティブファンクターの辺りで頓挫。紆余曲折あった結果、関数にとっての文脈とはつまりは引数ではないか、という考え方に至る。


関数に引数を与える、という見方により、普通の値の関数適用($)、ファンクターの fmap (<$>)、アプリカティブファンクターの (<*>) を見直してみようとしたものの <$> でとりあえず混乱し、一度筆を置く。

($) :: (a -> b) -> a -> b
(<$>) :: Functor f => (a -> b) -> f a -> f b
(<*>) :: Applicative f => f (a -> b) -> f a -> f b


以下、とりあえずファンクターから見直し。
「解決編」と銘打ったが、本当に解決できるかは定かでなし。


ファンクターとはなんぞや(再)

前々回に、ファンクターとは何であるか、を考えてみたわけだが、その時の自分なりのまとめはこうであった。

「ファンクター値」と言っているからアレだが、コードをそのまま読めば、「型コンストラクタに具体型が適用されてできた具体型の値」である。
この、型コンストラクタの部分が fmap の結果失われない、ということが、Functor の性質ということのようである。

コードそのまま読んでるような言い方なので、理解しているとは言い難いかもしれないが、コードそのままなので、そこまで外してもないように見える……。
要点を抜き出せば、「fmap の結果失われない」である。


で、前回、

(<$>) :: Functor f => (a -> b) -> f a -> f b

から、図にしてみたのがコレである。

ファンクターの F の部分が <$> の後に引き継がれる点が、通常の関数適用と異なっている。
この図では F を「値をくるむもの」というイメージで示しているが、本当にこの見立てで良いのかはまだなんとも言えない。


以降、具体例を挙げてみる。

関数ファンクターの場合
g :: r -> a
f :: a -> b

とした場合、

 f <$> g = f . g 

である。
この場合を以下に図示してみる。


関数合成を図示しただけ、という感じにはなったが。
この図と、前出のファンクター一般についての図の対応を取った際、 F に相当するのは、「r 型の x を与えることができる」という点である。
同じ x で表しているから紛らわしいが、ファンクター一般の図で関数 f に与えられていた値 x に相当するのは、今回は関数 g である。関数ファンクターの図の方では、値 x は将来において与えられる可能性があるだけで、<$> の時点ではまだ存在していない。
関数 g が持っていた、「r 型の値が未来に与えられる可能性」は、<$> の結果得られる f . g にも引き継がれている。
これは、特に違和感のない、素直な文脈の引き継ぎに見える。


少々ややこしいのは、関数が箱的であることと、ファンクターとしての関数において文脈が「くるむもの」的であることとが別の概念である、というところだろうか。
関数 g は、箱的な値で r 型の値を取るという文脈を持つ。関数が箱的な値である、という点から g に f が与えられる、というイメージで見ると、 g . f になり、r 型の値を取るという文脈 or 性質が失われてしまう。
関数ファンクターで引き継がれるのは、引数として r 型の値を取る、という点であり、関数が箱的であるというイメージとは若干ずれる。

リストファンクターの場合
xs :: [a]
f :: a -> b

とした場合、

f <$> xs = map f xs

である。


リストは、 への : 演算の適用が繰り返されたもの、とも言えるので、
仮に、xs = [x, y, z] = x : y : z :
であるとして図示すると以下となる。

分かってきたような気がしてきた。
まず、[a] 型のリストとは、「a 型の値の後に、[a] 型のリストがくっついたもの」とみなせる。そして [a] 型のリストには、空リスト [] も含まれるとし、再帰的に定義を当てはめれば無限に続くリストが構成できる。
リストにおいて、前出図のファンクターの F に相当するのは、x から見て「後に [a]型 のリストがくっついていること」である。そして、「後にくっついているリスト」は再帰的に、空リストになるまで処理される、ということである。
つまり、リスト x : xs を、文脈をもった値とみなす場合、「値」は x であり、「文脈」は : xs の部分である。そして、 <$> においては、文脈は再帰的に消化される。


先ほどのリストファンクターの図を、再帰的に文脈が処理されるという見方で書きなおせば以下となる。



リストにおいては、文脈は、「値の後ろにリストが付いている構造が再帰的に繰り返される」であり、これを関数に <$> する場合は、「構造を維持しつつ再帰的に関数に値を与えよ」ということになる。


ファンクター則

以上、関数とリストの例を確認してみた。<$> によって関数にファンクター値を与えた際、関数適用の結果生み出される値にファンクター値の文脈が引き継がれる、ということについてイメージがつかめた。


この流れで、ファンクター則についても確認してみる。
Control.Monad ドキュメントより、ファンクター則は以下の2つである。

fmap id == id
fmap (f . g) == fmap f . fmap g

これについて、関数適用を $ 、 fmap を <$> に置き換えると、

id <$> == id $
((f $) . (g $)) <$> == (f <$>) . (g <$>)

となる。


第1法則は id 関数に与えた場合の動作である。
id 関数は与えられた値と同じものを生み出す関数だが、 $ でこの関数にファンクター値を与えた場合は、定義より、全く同じファンクター値が得られるはずである。では、特殊形である <$> で与えた場合にどうなるか、という時に、文脈が正しく維持されるのであれば id $ と同じ結果になるはず、ということである。つまり、文脈の維持という動作を保証する法則となる。


第2法則は、関数合成のケースである。
左側では、合成された一つの関数に <$> でファンクター値を与えている。
右側では、<$> によって関数にファンクター値を与える、という関数を合成している。
つまりは、<$> が合成できることの保証、ということになるが、もっと言えば、「内側」の関数適用と、「外側」の文脈維持の操作が、それぞれ独立していることの保障、ともできるだろう。


以上、ひとまずファンクターについてはイメージがだいぶ固まってきた。
この流れでアプリカティブファンクターに入る。


アプリカティブファンクターとはなんぞや

冒頭の比較を再掲する。

($) :: (a -> b) -> a -> b
(<$>) :: Functor f => (a -> b) -> f a -> f b
(<*>) :: Applicative f => f (a -> b) -> f a -> f b

アプリカティブファンクターでは、値を与える関数の方にも文脈が付いている、ということになる。
アプリカティブ値を、アプリカティブな関数に与えて、アプリカティブ値を生み出す、と言える。


ファンクターの際にならって図示してみると以下となる。

左側の関数の部分の描き方が少々微妙なことになっているが… F の中にある関数は b 型値を生み出す、という部分は従来どおりとし、関数全体が F の文脈の中にある、ということを表しているつもりである。


また、ファンクターの際は、文脈がファンクター値の側のみにあったため、型と値を区別せずに両方を F としてしまっていたが(これはミス……)、アプリカティブファンクターの場合は、文脈がアプリカティブ値とアプリカティブ関数の両方に存在するため、これを区別する目的で、 s, t, u を F 型のインスタンスとして表した。


そう、結局のところ <$> と <*> の差は、文脈の登場が1回であるか2回であるかの差ということになる。
x の文脈 s と、f の文脈 u が、言うなれば「衝突する」のが <*> の場合である。
文脈のレベルにおいて、2つのものを1つにする操作が <*> の中で起きている、と見ることでアプリカティブファンクターを理解することができるのではないだろうか? これは、文脈の演算、または、文脈の合成、と言えそうである。


では、ファンクターの場合と同様に、関数、リストのケースを見てみよう。

関数アプリカティブファンクターの場合

アプリカティブファンクターとしての関数において宣言がどうなるか。
宣言はこう、

    pure :: a -> (r -> a)
    (<*>) :: (r -> (a -> b)) -> (r -> a) -> (r -> b)

実装はこうなる。

instance Applicative ((->) r) where
    pure x = (\_ -> x)
    f <*> g = \x -> f x (g x)

『すごい』に出てきた例

Prelude Control.Applicative> :t (+) <$> (+3) <*> (*100)
(+) <$> (+3) <*> (*100) :: Num b => b -> b
Prelude Control.Applicative> (+) <$> (+3) <*> (*100) $ 5
508

『すごい』の説明。

(+) <$> (+3) <*> (*100) と書くと、「引数を (+3) と (*100) に渡し、2つの結果に対して + を使う」関数が出来上がります。

この時点では分かったような、分からないような…というところ。
なぜかこの例では、 <$> してから <*> している。
では、<*> を単体で使うとどうなるか、というとこうなる。

Prelude Control.Applicative> :t (+) <*> (+3)
(+) <*> (+3) :: Num b => b -> b
Prelude Control.Applicative> (+) <*> (+3) $ 5
13

???というところだが、((<*>) f g) x = f x (g x) に当てはめれば、5 + (5+3) である。ここには、引数の 5 が2回登場している。
先ほどの、(+) <$> (+3) <*> (*100) では、(5+3) + (5*100) であったところだが、関数の数がひとつ少ないので、5 がそのまま登場した、ということになる。


動作をはっきり見せるために id 関数を使うと、こうである。

Prelude Control.Applicative> (+) <*> id $ 5
10


関数アプリカティブファンクターの動きを図にまとめてみると以下となる。


おぉぉ…。まとめてみると以下と言えそうである。
関数 g と関数 f を <*> で合成する際、「r 型値 x を取る」というそれぞれの文脈を維持するため、 f <*> g が取った引数 x を複製して f と g それぞれに与える形で合成が行われている、と。
つまり、関数アプリカティブファンクターでは、文脈の衝突が、文脈を複製することでそれぞれを維持する、という形で解消されている、となる。


では、pure をこれに絡めた場合はどうなるか?
前回記事で見たが、 pure x は定数のような動きをする。
これを1引数関数に対して使うと、「引数を2つ取るが1つの引数は無視して1引数関数のように振る舞う」関数ができる。
よって、以下の挙動となる。

Prelude Control.Applicative> pure (+3) <*> (*100) $ 5
503

『すごい』のアプリカティブ則の説明にもあったが、 pure f <*> x = fmap f x である。
よって、pure (+3) <*> (*100) = (+3) <$> (*100) = (+3) . (*100) となる。


ここでは、pure (+3) と (*100) が、<*> の対象で、「5 を取る」という文脈は衝突しているが、pure の働きにより (*100) の方の文脈だけが維持された、と見ることができる。
つまり、アプリカティブファンクターにおける pure は、文脈が衝突するケースで特殊な働きをするもの、と見れないか。

リストアプリカティブファンクターの場合

引き続き、リストの場合を見てみよう。
『すごい』の説明から、リストの実装はこうなる。

instance Applicative [] where
    pure x = [x]
    fs <*> xs = [f x | f <- fs, x <- xs]

実行例は以下。

Prelude Control.Applicative> [(*0),(+100),(^2)] <*> [1,2,3]
[0,0,0,101,102,103,1,4,9]

結果として得られるリストは、 fs と xs の直積になる。


これを図示すると以下である。

文脈の衝突という比喩をこれに当てはめるならば、「後ろにリストがくっついている」という文脈が衝突した際に、後ろにくっついているものが全て残る形(=直積)にすることで文脈の衝突を解消している、と言える。
リストの場合、pure x で得られるのは要素がひとつのリスト(空リストがくっついた値)なので、直積をした際には、 pure x でない方の後ろにくっついているリストが同じ数だけ残る。こちらも pure と衝突させたことで文脈が維持された、と言えそうである。


また、『すごい』では、別の方法でアプリカティブファンクターになったリストとして、Zipリストを紹介している。

instance Applicative ZipList where
    pure x = ZipList (repeat x)
    ZipList fs <*> ZipList xs = ZipList (zipWith (\f x -> f x) fs xs)

細かい説明を省いて以下に動作を図示すれば、こうである。

こちらでは、文脈の衝突の解消は、短い方に合わせる、というやり方で行われている。
そして、 pure は、絶対に「短い方」にならないために無限リストになっている、となる。


ファンクターの場合は文脈は維持されるだけであったが、アプリカティブファンクターでは文脈は衝突し演算が発生する。
文脈の衝突を解消する方法は複数あるため、リストと Zipリストというように複数の <*> のやり方が出てくる、ということのようである。

アプリカティブ則

以上、関数、リストを見てきて、アプリカティブファンクターがどういうものかがようやくつかめてきた。
ファンクターがアプリカティブである、ということは、文脈と文脈が衝突した時の解消の仕方が定義されている、ということと見ればよさそうである。

上記を受けて、アプリカティブ則をみてみるとこうである。

identity
    pure id <*> v = v
composition
    pure (.) <*> u <*> v <*> w = u <*> (v <*> w)
homomorphism
    pure f <*> pure x = pure (f x)
interchange
    u <*> pure y = pure ($ y) <*> u


ひとつひとつ見ていこう。

    pure id <*> v = v

文脈つきの値 v を、 pure id に与えた場合、v がそのまま残る、ということである。
ここでは、
 ・ v の文脈の部分が pure によって得られた文脈と衝突した結果維持される
 ・ v の文脈の中の部分が id 関数に与えられた結果、同じ値が生み出される
と見れる。

    pure (.) <*> u <*> v <*> w = u <*> (v <*> w)

ここでは、u, v は文脈をもった関数で、w は文脈をもった値である。<*> は左結合であるとのことなので、左辺は、
 ・ pure (.) <*> u <*> v によって、「u の文脈と v の文脈が合成された文脈の中に、u の文脈の中の関数と v の文脈の中の関数が合成されたものが入っている」ものが得られ、これに w を <*> で与えている。
であり、右辺は、
 ・ v に w を <*> で与えてから、得られた値を、u に <*> で与えている。
である。
つまり、合成されたものの適用(左辺)と、順番にひとつずつ適用(右辺)が同じになる、ということである。
これは、通常の関数合成の場合の、 f . g $ x = f $ (g $ x) に対応する。

    pure f <*> pure x = pure (f x)

これはちょっとよく分からないが……。
文字通りに読めば、
 ・ f を pure してから、 x を pure したものを <*> で与えるのと、f に x を $ で与えてから pure するのが同じ
ということになる。
通常の関数適用と、<*> の中の関数適用が同じものである、ということか?

    u <*> pure y = pure ($ y) <*> u

これは分かりやすい。
文脈の部分だけに注目すれば、左辺は、
 ・ u の文脈に、<*> で pure の文脈を与えている
で、右辺は、
 ・ pure の文脈に、 <*> で u の文脈を与えている
ということになる。


要は、アプリカティブ則は文脈に関する演算の性質を定めたもの、と言えそうである。


で、これらの性質はどこかで見たような……というところだが。
はい、モノイドである。

モノイドは、結合的な二項演算子(2引数関数)と、その演算に関する単位元からなる構造です。ある値がある演算の単位元であるとは、その値と何か他の値を引数にしてその演算を呼び出したとき、返り値が常に他の値のほうに等しくなる、ということです。1 は * の単位元であり、[] は ++ の単位元です。


まさに、先ほどみた <*> における pure の性質に合致する。
よって、アプリカティブファンクターの pure が引数として与えられた値に付け加えるのは「単位元の文脈」と言えるのではないか。


モノイドの定義。

class Monoid m where
    mempty  :: m
    mappend :: m -> m -> m
    mconcat :: [m] -> m
    mconcat = foldr mappend mempty

モノイド則

    mempty `mappend` x = x
    x `mappend` mempty = x
    (x `mappend` y) `mappend` z = x `mappend` (y `mappend` z)

モノイド則の1は、アプリカティブ則の1に対応する。
モノイド則の2は、アプリカティブ則で直接対応するものがないが、アプリカティブ則の1と4から導けそうである。
モノイド則の3は、アプリカティブ則の2に対応する。


つまり……アプリカティブファンクターは文脈がモノイドであるファンクター、ということになるのではないだろうか。
ようやくオチがついた気がする。


で、この後……

アプリカティブファンクターについて落ち着いたところで次はモナドだ、と行きたいところだが、アプリカティブ則について見た際に、↓の用語を思いっきり飛ばしていた。

identity
composition
homomorphism
interchange

identity : 単位元、composition : 合成、 interchange : 可換、というのは何となく分かるのだが、 homomorphism : 準同型、でウッとつまる。
調べてみると、準同型というのは代数系の用語らしく、そもそもモノイドというのも代数系の概念らしい。
http://ja.wikipedia.org/wiki/%E4%BB%A3%E6%95%B0%E7%9A%84%E6%A7%8B%E9%80%A0


Haskell といえば圏論というイメージだったが、圏論以前にも色々あるということか。


続きがあるかどうかも不明だが、とりあえずこれまで。