ネットワークデザインスタジオのブログ (original) (raw)

お久しぶりです。

B4の魚田真之介です。

僕は現在、卒業研究で「抽象的なイメージで会話できるオンラインコミュニケーションツールの開発」を進めています。

中間報告会も(夏休み前に)終え、一旦、今回はこれまでやってきたことと、これからやっていくことをまとめてみます。

やってきたこと


課題設定

個人的な動機として、SNSを使う上でのストレスがありました。僕は普段SNSをよく使うのですが、何気なく見ているときでも、ふとしたつぶやきをみて一喜一憂したり、知らず知らずのうちにストレスが溜まっているなと感じることがありました。また、SNSでの炎上や行き違い、フェイクニュースの影響が広範囲に広がっているのを見かけることが増えてきました。

これらは、コミュニケーションの媒介が原則テキストで統一されていること、そして、SNSのタイムライン上には玉石混交状態のつぶやきが同じように表示、並べられていることが原因だと仮定しました。また、テキストを構成するのは言葉です。これは辞書的な意味がある一方、多様な解釈が許容されています。つまり、同じテキストでも、人によって想起される情景や解釈が変わるわけです。そうすると、補助情報がない状態でテキストのみでコミュニケーションを行おうとしているのもSNS上でのコミュニケーション不全の原因の1つといえます。以上の問題を少しでも解消するために、課題を「やり取りする媒介をテキストから置き換えたコミュニケーションアプリを作る」と設定しました。

Webアプリケーションのコンセプト設計

Webアプリケーションの方向性を決めるためのざっくりとしたコンセプトを決めてました。 課題設定から 1. 言葉を別のものに置き換える 2. ぱっと見で解釈しにくい 3. 読むと鑑賞の両立 以上の3つの特徴を持つコミュニケーションアプリケーションを解決策としました。具体的には、言葉を視覚的な3DCGオブジェクトに置き換え、解釈しにくい抽象的な表現を用い、平面的なタイムラインを疑似3次元的なものにするという方針を立てました。

技術選定・コーディング

今回のコミュニケーションアプリは多くの人を対象として、Web上で動作するものとしました。使用する技術は、フロントエンドにNext.js、イメージオブジェクト生成の部分にThree.js+Shader、バックエンドにDjango、データベースにはPostgreSQLです。

但し、ユーザーが1からオブジェクトを描くのは、発信のハードルが高いものになってしまいます。そのハードルを低くするために、今回のアプリでは、SNSのインタフェースを再利用し、入力は言葉で行うようにしました。では、イメージオブジェクトの生成はどうするのかというと、文章を分析してくれるモデル(BERTのsentimentなど)を利用することで入力された言葉をパラメーター化し、それを用いて、Three.js+Shaderでイメージオブジェクトを生成するようにしています。

開発段階のWebアプリケーション

現段階でのインタフェース

このアプリは中央のキャンバスと、右側にあるテキストボックスとテキストのパラメーターデータを表示する掲示板で構成されます。

このアプリの使い方は、右上のテキストボックスに言葉を入力し、投稿ボタンを押して、オブジェクトをキャンバス上に投稿するというものです。テキストボックスの下には、入力したテキストとともに、パラメーターが表示され、どのようにオブジェクトが出力されたのかを確認することができるようになっています。

オブジェクトの設定は、モデルが出力してくれる感情の分類(嬉しさ、怒り、信頼)によってオブジェクトの形状を、文字数によってオブジェクトの大きさ、ポジティブさの分類(ポジティブ、ネガティブ、ニュートラル)によって、色を決定しています。中央のキャンバスはアクセスしているユーザーで共有されるようになっています。

これからやること

終わりに

後2~3か月で完成させられるのでしょうか。もし完成した暁には、皆様にも利用して頂けるようにお知らせできればと思います。

引き続きよろしくお願いいたします。

こんにちは、B4魚田です。風鈴の音が心地よくなる季節になりました。

今回は、私の制作に関連する、ShaderとThree.jsでのグラフィックの制作の過程の一部をまとめてみます。(前回の予告ではP5.jsを使う予定でしたが、変更しました。申し訳ございません。)

Shaderと Three.jsとは?

Shader

Shaderとは3DCGの描画処理プログラムのことです。オブジェクトに陰影をつけたり、表面の質感や凹凸の設定、各画素の色を決定してくれます。それぞれの機能を、オブジェクトの頂点の位置を決定するVertex Shaderと面を構成する各画素の色を決定するFragment Shaderの2つに分けて記述します。

Three.js

Three.jsとは、3DCGを作成するためのJavaScriptライブラリです。Web上でコンピュータグラフィックを描画する低レベルAPIであるWebGLを、JavaScriptで記述できるように開発されています。シーン、カメラ、オブジェクト、ライトの要素から3DCGを描画し、アニメーションやインタラクティブ機能を追加することも可能です。

グラフィックの生成

  1. 単色の球

はじめにシンプルな球を描画してみます。

まず、球の位置を決めます。Vertex Shaderは3D オブジェクトの頂点の位置を計算するためのプログラムです。

vertexShader: void main() { gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); },

gl_Position = ... の部分が頂点の最終的な位置を決定します。それぞれの値はvec4(X座標、Y座標、Z座標、同次座標)となっています

次に、球の色を決めます。 このFragment Shaderは、3Dオブジェクトの表面の色を決定する役割を果たします。

fragmentShader: ` precision mediump float;

void main() { // オレンジ色のRGB値を定義 (1.0, 0.5, 0.0) vec3 orangeColor = vec3(1.0, 0.5, 0.0);

// 最終的に出力される色に代入 gl_FragColor = vec4(orangeColor, 1.0); } `,

gl_FragColor = ... の部分が最終的な色を決定します。それぞれの値はvec4(赤、緑、青、透明度)となっています。

このシェーダーは3Dオブジェクトの表面全体を均一なオレンジ色で塗りつぶします。

2.グラデーション

次に、球にグラデーションを付けてみます。 Vertex Shaderでは、uv(テクスチャ座標)をFragment Shaderに渡せるようにします。

fragmentShader: ` //varyingは頂点シェーダーからフラグメントシェーダーにuv座標の値を渡すための変数。 varying vec2 vUv;

void main() { //vUvにuv座標を代入する。 vUv = uv;

gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); } `,

Fragment Shaderでは、vUvを受け取り、gradient(グラデーションの値)として代入しています。gradientは0.0~1.0の値をとるので、gl_FragColorにそのまま代入して使うことができます。

fragmentShader: ` precision mediump float;

//vUvを受け取る。 varying vec2 vUv;

void main() { //グラデーションの方向を決める float gradient = vUv.y;      //gradientは0.0~1.0の値をとるので、そのまま代入する。 gl_FragColor = vec4(1.0, gradient, 0.0, 1.0); `

このように書き替えることでy軸方向のグラデーションを描画できます。

また、mix関数を使っても、グラデーションを描画することができます。

fragmentShader: ` precision mediump float;

varying vec2 vUv;

void main() { //グラデーションの方向を決める float gradient = vUv.y;

// オレンジと青の色味を決める vec3 blueColor = vec3(0.3, 0.3, 1.0); vec3 orangeColor = vec3(1.0, 0.5, 0.0); //グラデーションの色を決める vec3 finalColor = mix(orangeColor, blueColor, gradient);

gl_FragColor = vec4(finalColor,1.0) `

このコードだと以下のような青→オレンジのグラデーションになります。

3.ノイズ

ノイズ的な表現を加えることもできます。Fragment Shaderへの書き加えることで実装します。

fragmentShader: ` precision mediump float;

varying vec2 vUv;

//2つの2次元ベクトルの内積、三角関数とマジックナンバーを使ったノイズ関数 float noise(vec2 st) { return fract(sin(dot(st.xy, vec2(12.9898, 78.233))) * 43758.5453123); }

void main() { //グラデーションの方向を決める float gradient = vUv.y;

vec3 blueColor = vec3(0.3, 0.3, 1.0); vec3 orangeColor = vec3(1.0, 0.5, 0.0);

vec3 finalColor = mix(orangeColor, blueColor, gradient);

//ノイズ関数を使って、表現を付け加える。 float noiseValue = noise(vUv * 10.0); //以下の式はfinalColor各要素にnoiseValueを加えている。 finalColor += noiseValue;

gl_FragColor = vec4(finalColor,1.0) `

このコードでは、球の表面に白いノイズを重ねることができます。

4.照明効果

Three.jsでは予め、オブジェクトにあてるライトの設定ができますが、Shaderを使って、照明を追加することもできます。 まず、Vertex Shaderからは、頂点の位置と法線のベクトルを渡します。

vertexShader: ` varying vec2 vUv;

//頂点の位置を取得 varying vec3 vNormal; varying vec3 vPosition;

void main() { //uv座標を頂点シェーダーに渡す vUv = uv; vNormal = normalize(normalMatrix * normal); vPosition = vec3(modelViewMatrix * vec4(position, 1.0));

gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); } `,

Fragment Shaderでは、vNormalvPositionを受け取り、照明の位置(lightPosition)、 照明の色(lightColor)を設定します。finalColordiffuseを乗算することで、照明をあてたfinalColorを描画することができます。

fragmentShader: ` precision mediump float;

varying vec2 vUv;

varying vec3 vNormal; varying vec3 vPosition; const vec3 lightPosition = vec3(200.0, 200.0, 200.0); const vec3 lightColor = vec3(1.0, 1.0, 1.0);

void main() { //照明計算 vec3 lightDir = normalize(lightPosition - vPosition); vec3 normal = normalize(vNormal);
float diff = max(dot(normal,lightDir),0.0); vec3 diffuse = lightColor * diff;

float gradient = vUv.y;

vec3 blueColor = vec3(0.3, 0.3, 1.0); vec3 orangeColor = vec3(1.0, 0.5, 0.0);

vec3 finalColor = mix(orangeColor, blueColor, gradient);

//照明効果を乗算する。 finalColor = finalColor * (diffuse);

gl_FragColor = vec4(finalColor,1.0) `

その他の照明効果として、明るい部分をより明るく、暗い部分をより暗くするグロー効果を実装することもできます。((0.299, 0.587, 0.114)はグロースケールという定数)

// 輝度効果 float luminance = dot(finalColor, vec3(0.299, 0.587, 0.114)); float glowStrength = 5.0; vec3 glow = vec3(1.0, 0.7, 0.3) * pow(luminance, 3.0) * glowStrength;

gl_FragColor = vec4(finalColor + glow, 1.0);

おわりに

ここまで、Shaderでできる、グラデーション、ノイズ、照明などの描画処理をまとめました。Vertex ShaderとFragment Shaderの組み合わせによっては、さらに複雑な表現ができます。機会があれば、そういった表現もまとめたいと思います。 ご高覧頂き、ありがとうございました。

はじめに

こんにちは。B4の鈴木です。今回は私が定期的に通っているカフェLecoin(ル・コワン)について書きます。

千駄木ドライフラワーカフェ

初めてこのお店を訪れたのは、去年の4月のことだった。季節感のあるドライフラワーの飾りと月替わりパフェの綺麗な写真をInstagramでたまたま見つけたことをきっかけに、何度も訪れることとなった。パフェ以外にも数種類のコーヒー、ミルクティー、季節のソーダ、様々な焼き菓子など、メニューは豊富だ。

お店に入るとすぐに花束やスパイス、アレンジメントなどのたくさんの品が棚に並んでいる。店内は一階が4席、二階が8席ほどの小さなスペースにドライフラワーの装飾が施されていて、どこを見ても楽しい。初めて来たときはつい、黄色と青と白のドライフラワーの花束を買ってしまった。また別のときには小瓶に入ったピンクペッパーを買い、料理好きの父に渡したことがある。何回訪れても、ここに住みたいと感じる。いつか自分の部屋をドライフラワーでいっぱいにするのが夢だ。

店内の売り場スペース

私が食べてきた可愛いパフェたち

このお店の特徴は、カフェメニューに旬の果物を使用した月替わりパフェ&ガレットが存在することである。毎回食べる前には必ず撮影タイムを設けてきたので、今までに食べた5つのパフェを紹介したい。

2023年4月 桜のパフェ

2023年8月 パッションフルーツのパフェ

2023年11月 マロンパフェ

2024年6月 さくらんぼの紫陽花パフェ

2024年7月 桃パフェ

さいごに

自宅からは徒歩と電車で1時間ほどと結構遠いところにあるお店だが、このパフェのために飛んでいってしまうほど美味しくて可愛くて、エネルギーを補給できる。行けなかった月のパフェはInstagramで眺め、来年同じパフェが出るとも限らないため、次はいつ食べられるだろうかと思いを馳せている。去年逃してしまった10月のお芋のパフェが復刻することを願って、これからひと月ずつ生きていきたい。

Lecoin(ル・コワン)のInstagram

こんにちは、B4魚田です。

2024年も半分が過ぎ、少しの外出でも汗だくになってしまう季節になりました。 今回は、4~6月に散歩中に発見した花を紹介しようと思います。

※注意:もしかしたら、写っている花の名前が合っていない可能性があります。ご了承ください。

花紹介

1 赤いバラ

バラ科バラ属の植物です。 一番有名な花の1つですね。この花を見つけたことがこの記事のきっかけとなりました。バラの複雑な構造は何度見ても驚かされます。

2 ツツジ

ツツジツツジ属の植物です。 花弁など、各部位がわかりやすく、中学理科の教科書の例で登場した記憶があります。 公園の通路に自生していたところを撮影しました。 たわんだ花弁がチャーミングですね。

3 チューリップとシバザクラ

それぞれ、ユリ科チューリップ属とハナシノブ科の多年草となっています。 チューリップはポピュラーな花であり、シバザクラも自生しているところをよく見かけますが、そろって生えていることは珍しいと思います。 花弁の色が似ているシバザクラの後ろに、チューリップが隠れているところが可愛らしいなと感じました。

4 ドウダンツツジ

ツツジドウダンツツジ属の植物です。 花弁の形が灯台の形に似ていたことから、トウダイツツジと呼ばれていたのが、なまってトウダンツツジと呼ばれるようになったみたいです。 公園で発見し、小さな花弁が垂れているところが可愛らしいと思い、撮影しました。

5 ピンクのバラ(クイーンエリザベス?)

1と同じくバラ科バラ属の植物です。線路ぞいを散歩していたときに、一輪だけ咲いていたところを見つけ、撮影しました。 クイーンエリザベスという個別名があるとかないとか。

6 ハルシャギク

キク科ハルシャギク属の植物です。少し遠い街で散歩していた時に見つけました。ハルシャギクは公園などで自生しているところを見かけることが多いですが、改めてみると、黄色と赤が濃いオレンジという鮮やかな配色であることがわかります。この近くにいい感じなビオトープがあり、学生の憩いの場となっており、なごみました。

7 ヤマアジサイ

アジサイアジサイ属の一種です。学校近くを歩いていた時に発見しました。中央のつぼみと外縁の小さな花が可愛らしいですね。

8 アジサイ

6月の雨の日に見かけました。結構な頻度で通る道だったのですが、突然、花を咲かせていて驚いた記憶があります。花弁に乗った雨がアジサイらしさを引き立てていました。

9 ガクアジサイ

アジサイアジサイ属の一種です。 隣の隣町を歩いたときに、たまたま見つけたものです。これまで、何度か見かけたことのある花でしたが、初めて「ガクアジサイ」という名前であることをしりました。 個人的には色のバランスと形が好きな花です。

終わりに

今回は僕の見つけた花の紹介をさせていただきました。 皆さんも、熱中症に気を付けて、花を探しに行ってみてはいかがでしょうか。

次回「p5.jsできれいなイメージを作りたい。」でお会いしましょう。

はじめに

こんにちは。ネットワークデザインスタジオB4の山上です。 今回は、私が6月初めに友人と九十九里浜に旅行に行った時の話です。

浜焼き

東京から車で1時間半ほどで九十九里に到着。私たちがはじめに向かったのは浜焼きのお店でした。お店は海のすぐ近くにある「浜茶屋 向島」さんです。九十九里で取れた蛤500グラムと帆立1個とお刺身盛り合わせを注文しました。蛤は5分〜10分焼くと貝がらが開き始め、そこにタレをかけて頂きます。貝から出た汁とタレが合わさってジューシーでとても美味しかったです。帆立はタレに加えバターをたっぷり乗せて食べました。これもとても美味しかったです。しかし、お腹が満たされて満足した私たちにここで事件が起きます。貝の片付けをしようとして私が帆立の貝を持ち上げようとすると、貝のバランスが崩れ、あっという間に私の白いズボンの上に帆立のエキスとタレが混ざった汁が大量にこぼれてしまいました。すぐさま濡れたタオルで一生懸命拭きましたが、もう手遅れでした。友人も沢山拭いてくれましたが、汚れは全く取れず私の白いズボンは茶色っぽい緑色のシミが出来てしまいました。この旅行を楽しみにしていた私にとって、これは本当に悲しい出来事でした。

蛤と帆立

九十九里浜

海に行くと、時間帯が遅かったのもあり、人が全くいませんでした。誰もいない海と綺麗な夕日に囲まれて自然に癒されました。開放的な海で、私たちは貝殻探しをしました。友人とどっちがより綺麗な貝殻を見つけられるか勝負しました。判定は投票制だったのでお互いに自分に投票し、一対一で引き分けでした。貝殻勝負が終わった頃には、陽が落ちていて海風も冷たくなり、寒かったので宿に帰りました。

浜から見た夕日

まとめ

一泊二日で長くはなかったけれど、充実した時間を過ごすことが出来ました。たまに都会から離れて自然を感じるのはとても心地よいです。汚してしまった白いズボンを見ると、今ではショックも薄まり、楽しい思い出が蘇ります。浜焼きはとても美味しかったのでまた食べに行こうと思います。次は汚れが目立たない服で、貝をひっくり返さないように気をつけます。皆さんも東京から車で気軽に行けるので、海鮮が美味しくて海で遊べる九十九里に行ってみてはいかがですか?

はじめに

B4の田中です。
今回は家族でバンクーバーに行った時のお話をします。 父の仕事の関係で、私と兄と3人で旅行しようということになりました。 5日間いろんなところを巡ったのでいつか行く時の参考にしてみてください。 今回は1日目と2日目の旅の内容をお届けします。

1日目

飛行機に揺られて約10時間バンクーバー空港に到着。 まず驚いたのは快適な気温。日本はその時30度を超えていたと聞きましたが、バンクーバーでは日差しはあれど空気が涼しく、カラッとしていて汗をかくこともありません。慣れない環境にもすごくワクワクしました。 電車は日本とは全く違うシステムですごく戸惑いましたが、なんとか電車に乗りホテルに向かいました。
ホテルはダウンタウンの中心のところだったのでまずはダウンタウンの周りを観光しました。『蒸気時計』で有名なガスタウンに向かい、『プーティン』というカナダのグルメを食べました。

蒸気時計

プーティン @SteamWorks

夜まで時間があったので、人生初のカジノに行ったり、地元スーパーに行ったりして異文化を楽しみました。日本にはない食材や飲み物を見て回れてすごく新鮮でした。バンクーバーは緯度が高いため、時間的に夜でもまだ昼のような空をしているので、今回載せている写真はほとんど昼に撮ったような明るさです。22時になっても暗くならない空はとても不思議な感覚でした。

2日目

2日目は朝食にパン屋へ行きました。日本にはないようなパンがずらりと並んでいて、パンが大好きな私はものすごく迷いました。これだけ魅力的なパンがずらりと並んでいると無限の胃袋が欲しくなります。

@purebread.

そのあとは夕方まで父が仕事だったので、兄とホテル周辺をぶらりとしました。 昼食に食べた『RedRobin』のハンバーガーが絶品でした。本場のハンバーガーはやはり違いますね。付け合わせはガーリックブロッコリーです。

ハンバーガー @RedRobin

漫画ショップを発見。日本の漫画の英訳版がずらり

そのあとは父と合流し、バンクーバー水上飛行機に乗り、バンクーバーの街を空から一望しました。高いところはすごく怖かったですが、初めても体験ですごく楽しかったです。20分間の空の旅は素敵でした。大きな大陸で平坦な土地のせいか、日本の景色とは全く違っていました。

水上飛行機

夜は北米最大級のナイトマーケット「リッチモンドナイトマーケット」に行きました。実はこの旅で唯一残念だった場所です。屋台が100以上も並んでいてすごい盛り上がりでした。中国、韓国、日本などアジア系の料理の屋台が多く、ご飯は美味しかったです。しかし、雑貨やゲームの屋台の景品は全部日本のキャラクターで、おそらく非公式であろうものばかりが並んでいました。後から中国の企業が主催していたことに納得したと同時に、中国の恐ろしさを痛感しました。 行ってみてもいいとは思いますが、わざわざ時間をかけていくほどではないと思います。

リッチモンドナイトマーケット 入場口

おわりに

実は1日目と2日目はどこに行こうかあまり決めていなかったのですが、かなり充実した時間になりました。英語にも慣れてきた頃ですね。 次回は3〜5日目の旅をお届けします。

こんにちは、B4魚田です。 今回は1月から続けているプレイリスト制作withAIの最終回となります。

前回までのおさらい

このシリーズはAIにテーマを決めてもらって、プレイリストを作成してもらうというものです。そのプレイリストを公開するのはもちろんのこと、プレイリストを分析し、AIの選曲の傾向を把握することで、現時点でのAIと音楽の関係を捉えることを目指しています。 全体のテーマは「光の集える空間」で、4つのプレイリストを企画しています。

・4つのプレイリストのタイトル

  1. 「Vividなバースデーworld」GPTClaude
  2. 「時の儀式のダンスパーティーGPTClaude
  3. 「Anothre Scape」GPTClaude
  4. 「連鎖的酔狂行列の発光」

前回までに「Vividなバースデーworld」と「時の儀式のダンスパーティー」、そして「Anothre Scape」のプレイリストを作成しました。

今回はプレイリスト「連鎖的酔狂行列の発光」を作成してもらいます。この作業は2024年6月1日に行いました。

Stable Diffusionで生成

制作

前回と同様に、プレイリストとちょうどよい長さにする、英語圏以外の楽曲でも選ぶ、人気アーティスト一辺倒にならないようにするということに注意して、指示しています。また、前回の指示だと、アーティストの国籍が欧米圏に集中してしまった反省を活かし、“国籍は問わない”という指示から、“できるだけ多くの国の楽曲”という指示に変更しています。

Chat GPT

Claude

Chat GPT

Claude

今回は特に修正するべき点は見つかりませんでした。

分析

ここからは、2つのプレイリストの選曲について分析していきます。

まず、分析するにあたって、楽曲の情報を、スプレッドシートにまとめました。

プレイリスト「連鎖的酔狂行列の発光」

前回とは異なり、スプレッドシートを見ただけでは、傾向は掴めそうにありません。

次に、チャートを使って、分析していきます。 2つのプレイリストの楽曲のYouTubeの再生回数(2024年6月1日時点)を比較してみます。

GPTの選曲は赤、Claudeの選曲は青で描写しています。

もっとも再生回数が多かったのはLuis Fonsi & Daddy Yankee『Despaciton』(2017)の84億5501万380回です。一方で、最も少なったのはLoituma『Levan Polkka』(1995)の70万520回でした。『Despaciton』の圧倒的再生回数がわかります。また、これまでとは異なり、再生回数上位の楽曲のほとんどが、Claude選曲であることも重要です。

次に選曲されたアーティストの出身地を見てみます。

棒グラフより、最も多いのがイギリスで、次いでアイルランドとなっており、それ以外は1曲ずつ選ばれていることがわかります。 前回までの棒グラフと比較してみると、より多くの国の楽曲が選ばれたことがわかります。

「Another Scape」の国別選曲数

「時の儀式のダンスパーティー」の国別選曲数

ClaudeとGPT-4oの両者の選曲ともに変化が見られたので、今回の指示の変更が有効だったことが見受けられてます。

最後にリリース年を見てみます。

GPTの選曲は赤、Claudeの選曲は青で描写しています。円の大きさは各曲の再生回数を示しています。

リリース年で見た時の選曲傾向はこれまでと全く違ったものになりました。

これまでは、GPTが2000年以後の新しく人気な楽曲を選び、Claudeの選曲が2000年以前の少し古い楽曲を選ぶという傾向にありました。しかし、今回は両者ともが1970,80~2020年ごろの楽曲を選んでおり、Claudeの方がより再生されている楽曲を選んでいます。今回の指示では特に、再生回数、人気といった部分を含みませんでしたが、その出力に大きな差が生まれるという結果になりました。

「Another Scape」内楽曲のリリース年

「時の儀式のダンスパーティー」内楽曲のリリース年

第3回までの傾向で、新しくて人気な楽曲を選ぶならGPT、少し昔の楽曲がいいならClaudeというまとめにしようと考えていたのですが、最終回でそれがひっくり返ってしまいました。そのために、プレイリスト生成のためのおすすめAIを決めるために、実際に聴いてみて決定したいと思います。

プレイリストの感想

まず、GPTのプレイリストはRadiohead『Paranoid Android』(1997)から始まります。彼らの代表アルバム「OK Computer」の1曲目でもありますね。ポップというよりも、退廃的ロックといった楽曲です。『Hyperballad』(1996)や『Svefn-g-englar』(1999)でもこの静かで少し重たい感じは続きます。しかし、4曲目はミュートトランペット?から始まるジャズ、『Water No Get Enemy』(1975)です。その曲調はここまでの流れとは全く違うものであり、また聴き終わるまでに11分かかります。5曲目は『Harder, Better, Faster, Stronger』(2001)ですが、これが驚くことに違和感なく始まります。なんでこったい!といった感じです。6曲目は『Galvanize』(2004)です。1~3曲めまでのような単なるポップではない楽曲です。かなりシンセベースが目立っており、プレイリスト全体においても、盛り上げにかかる部分なのだと思います。7曲目、Perfumeの『ポリリズム』(2007)でもこの電子的なニュアンスは継続されますが、これまでとは違い、かなりポップで盛り上がりがピークに達します。8曲目、Tame Impala「Let It Happen」(2015)はそこから落ち着けるような楽曲で電子ポップに雰囲気をつなぎながら、9曲目、Kraftwerkの『Trans-Europe Express』(1976)へと移っていきます。ここまで、比較的ウェットな曲調の楽曲が多かったですが、この楽曲はソリッドな印象を与える楽曲です。この楽曲が挟まることでこの後の衝撃のラストにつながっていきます。最終楽曲はSeu Jorge『Life on Mars?』(2004)になります。この楽曲はデヴィッド・ボウイのカバー曲となっており、アコースティックな雰囲気が特徴です。ここまで、どの楽曲も少なからず、エレキな音がなっていたり、テンポが特徴的な楽曲でしたが、最後に、穏やかなアコースティックな楽曲にKraftwerkから繋げるのはなかなかできないなと感じました。 このプレイリストの特徴として、『Water No Get Enemy』、『Svefn-g-englar』など長い楽曲が多く含まれているので、10曲で構成されているにもかかわらず、聴き終わるのに1時間以上かかってしまいます。かなり攻めたプレイリストだなと感じました。

次にClaudeのプレイリストは1曲目の『Tainted Love』(1981)からアゲアゲです。このアゲアゲ感は最後まで続きます。ラテンな『La Bamba』(1958)、おそらく全体で再生回数ベストの『Despaciton』(2017)と続きます。本当にそんなに多くの人が聞くのかと思うほどクセの強い楽曲です。そして、なぜか聞いたことのある4曲目『Tubthumping』(1997)となります。後半「あれ、曲変わった?」となりますが、それはフェイクです。言わずと知れたカンナムスタイル、『Gangnam Style』(2012)、ここで盛り上がりは最高潮です。その次は一旦休憩といた感じで、生楽器の音が生きる『Macarena』(1993)、このプレイリストシリーズ2回目の登場、2010年サッカーワールドカップ南アフリカ大会テーマ曲『WakaWaka』(2010)で激しすぎない盛り上がりを見せます。8曲目の『Dragostea Din Tei』(2003)、9曲目、『Levan Polkka』(1995)と2000年台のインターネットで注目をあびた楽曲が続きます。そして、最終楽曲『Mundian To Bach Ke』(2002)にてアゲアゲがおさまることなく、プレイリストは終了します。

文字量にも表れてしまっていますが、個人的な好みとしては、GPTのプレイリストのセンスの方が好きです。全体の流れのアップダウン、予想の裏切りといったおもしろさが秀でています。 よって、私はプレイリストの生成にはChat GPT-4oをおすすめしようと思います!!!

おわり

今回は「連鎖的酔狂行列の発光」というタイトルのプレイリストをChat GPTとClaudeに制作してもらい、その選曲について少し分析を行いました。今回のプレイリスト内の楽曲のMV一覧や分析で使用したチャートはここで確認することができます。

これまで、4回を通して、AIにさまざまなテーマでプレイリストを作成してもらいました。GPT、Claudeどちらの選曲センスが皆様の感性に合っていましたか?これらに加えて、4,5月に大手の音楽サブスクサービスがAIでのプレイリストツールの発表が行われました。私はよく聴く楽曲以外にも触れることは自身の感性を拡張させるものと考えており、そのために、AIはかなり有用なツールです。いわゆる”あなたへのおすすめ機能”が人々の琴線を震えさせるような楽曲を発掘してくれるようになることを私は望んでいます。

これまで、ご高覧いただき、ありがとうございました。これから書くであろう、私の別の記事も読んでいただければ幸いです。

おまけ

同じタイトルで僕が作ったプレイリストも公開しておきます。