2026年4月15日 【Looker】Tableauに負けない表現力!Lookerのカスタムビジュアライゼーションで「動く」スチームパンク風ダッシュボードを作ってみた Gemini Google Cloud Looker 生成AI(Generative AI) 検索する Popular tags 事例紹介 GEN-STEP 生成AI(Generative AI) Vertex AI Search Looker Studio BigQuery AlloyDB Google Workspace Cloud SQL Category Google Cloud Author IKURADON SHARE 目次 Lookerの限界突破!機械仕掛けで「動く」5つのカスタムグラフ 「ただのアニメーション」じゃない!BIツールとしての実用性と世界観の統一 「えっ、どうやって作ったの?」AI(Gemini)とのペアプロ開発の裏側 どうやってLookerに実装するの?カスタムビジュアライゼーションの設定手順 破綻を防ぐ実装のキモ!「カプセル化」で一貫性を保つ まとめと今後の展望:Lookerの表現力は世界トップクラス Content 皆さんが毎日業務で見ているダッシュボード。「見やすくて便利だけど、どれも同じようなフラットな見た目で退屈だな…」と感じたことはありませんか? BIツールのビジュアル表現の自由度といえば、計算フィールドやポリゴン描画を駆使してアートのようなVizを作れるTableauを思い浮かべる方が多いでしょう。 一方でLookerは、LookMLによる強力なデータガバナンスが最大の強みである反面、「ビジュアルはシンプルで堅実」「デザインの自由度が低い」というイメージを持たれがちです。 しかし、Lookerの表現力は決してそれに留まりません。アプローチを変えれば、自由にカスタマイズできるのです。 実はLookerには、「Custom Visualization(カスタムビジュアライゼーション)」という強力な隠し玉があります。JavaScript(D3.jsなど)を直接組み込めるこの機能を使えば、静的なデータアートにとどまらず、Web技術ならではの「滑らかに動くアニメーション」まで自由自在に操ることができるのです。 今回は「へー、Lookerにこんな機能があったのか!」と驚いていただくために、生成AI(Gemini)とのペアプログラミングを駆使し、限界まで見た目と動きにこだわった「スチームパンク風ダッシュボード」を作ってみました。真鍮、歯車、圧力計、真空管…。実際にデータと連動して「動く」ギミックと、その裏側の開発・実装方法を余すところなくご紹介します! Lookerの限界突破!機械仕掛けで「動く」5つのカスタムグラフ まずは今回D3.jsを用いて独自構築した5つのカスタムグラフのこだわりっぷりをご覧ください。Lookerのダッシュボード上で、これらがリアルタイムに動きます。 震える「圧力計(Pressure Gauge)」 圧力計のような見た目で、単一の値を示すグラフです。値に応じてメモリが変わり、表示している値を指した針がブルブルと震えます。 重厚感と蒸気で魅せる「棒グラフ(Bar Chart)」 真鍮のグラデーションに「経年劣化のザラザラとしたノイズ」を付与し、金属の管が並んでいるさまを表現しました。最大値の煙突からは蒸気が吹き出します。 背景の歯車と連動する「円グラフ(Pie Chart)」 裏で複数の大きさの違う歯車がガッチリ噛み合って連動回転します。さらに中央の黒鉄カバーには穴が空いており、歯車が回る様子が見える精巧な設計です。 中央の針は円グラフのデータの内、最大値を指し示します。 真空管が発光しエネルギーが脈打つ「折れ線グラフ(Line Chart)」 単なる線ではなく、金属パイプの中を光るエネルギーラインが脈打って流れます。最大値(MAX)のポイントでは、真空管のフィラメントが発光します。 レールの上を走る!「蒸気機関車グラフ(Train Line Chart)」 データポイントを結ぶ線路(レール)の上を、蒸気機関車が走り抜けます。上り坂・下り坂に合わせて機関車の角度がリアルタイムで計算され、常に進行方向の「斜め後ろ」へモクモクと煙を吐き出しながら進む物理演算ロジックを搭載しています。 「ただのアニメーション」じゃない!BIツールとしての実用性と世界観の統一 グラフの中身だけをスチームパンク風にしても、Looker標準の真っ白な背景のままでは世界観が台無しです。そこで、Looker標準の「テーマ機能」を活用し、ダッシュボードのUI自体も独自にカスタマイズしました。 管理画面から「steampunk_theme」というテーマを新規作成し、以下のように設定しています。 背景色:ただの黒ではなく、重厚感を演出する漆黒(#120c08) タイルの背景色:煤けたような焦げ茶色(#251810) タイトルの色 / テキストの色:真鍮の輝きを思わせるゴールド系のカラー(#cca243 / #e8d0a9) フォントファミリー:標準のゴシック体から ‘Palatino Linotype’, Georgia, serif などのセリフ体に変更し、クラシカルな印象に統一 このテーマ設定を適用することで、ダッシュボードを開いた瞬間に、重厚な機械仕掛けの世界に100%没入できるようになります。 さらに、これらは「ただの絵」ではありません。銘板風のデザインの専用ツールチップを採用し、クリックすればLooker標準の詳細ドリルダウンメニューが開きます。Explore画面からも「X軸・Y軸の表示切替」や「圧力計の最大値の変更」などがポチポチと設定できるように組み込んでおり、非エンジニアにも使いやすいBIとしての実用性をしっかり持たせています。 「えっ、どうやって作ったの?」AI(Gemini)とのペアプロ開発の裏側 「ここまで動かせるなら自分もやってみたい!でも、どうやって開発を進めたの?」と気になったエンジニアの方も多いはずです。 今回は生成AI(Gemini)とペアプログラミングを行い、以下の3STEPのサイクルで進めました。 STEP 1: 構成確定(一番重要!) プロンプトで「D3.jsを使って、どういう技術構成でコードを書いていくか」という基本ルールを徹底的にAIと事前に合意します。 STEP 2: 指示と生成 「背景に歯車を回したい」「最大値のところから蒸気を出したい」といった具体的な動作イメージを伝えて、コードを生成させます。 STEP 3: 実行&微調整 LookMLに保存して実行し、「蒸気の吹き出す方向が不自然だから、もう少し斜め後ろに流して」といった物理的な違和感を言葉でフィードバックして再生成させます。 一気に5つのグラフを作らせるのではなく、共通の土台を作ってから「まずは棒グラフ、次に折れ線グラフ」と、順番に機能を拡張していったのが、破綻せずに作り切れた成功の鍵でした。 どうやってLookerに実装するの?カスタムビジュアライゼーションの設定手順 作成したJavaScriptのグラフを実際にLookerのダッシュボードで使えるようにするには、プロジェクトの manifest.lkml に可視化の設定(定義)を追加する必要があります。 具体的には、LookML上にJSファイル(例:steampunk_bar.js)を配置し、以下のように manifest.lkml に各グラフの情報を記述します。 project_name: "lookml_tast" # スチームパンク 棒グラフ visualization: { id: "steampunk_bar_chart" label: "Steampunk Bar Chart" file: "steampunk_bar.js" } # スチームパンク 折れ線グラフ visualization: { id: "steampunk_line_chart" label: "Steampunk Line Chart" file: "steampunk_line.js" } このように記述するだけで、Exploreのビジュアライゼーション選択欄に「Steampunk Bar Chart」などのラベルが表示され、標準のグラフと全く同じように選択・設定できるようになります。 さらに詳細な導入方法や、カスタムビジュアライゼーションの基礎についてしっかり知りたい方は、以下のブログ記事で徹底解説されていますので、ぜひご参照ください! Lookerで自作のCustom Visualizationを利用してみよう! 破綻を防ぐ実装のキモ!「カプセル化」で一貫性を保つ 複数のグラフをAIと一緒に作っていくと、ファイルごとに色のトーンや動きの質感が微妙にバラバラになってしまう「スタイルのブレ」や、D3.jsのようなライブラリを使う際に起きやすい「グローバル変数の衝突」といった課題に直面しがちです。 この破綻を防ぐため、最初の構成段階でGeminiにあるルールを徹底させました。 それは、「LookerのJSファイル内で、冒頭の設定変数としてCSSやユーティリティ関数を、完全に分離・カプセル化する」ということです。 実際のコードの一部がこちらです。 const utils = { // スチームパンク風の共通CSS定義 THEME_CSS: `.chart-bg { fill: #1c110a; } .rivet { fill: #4a2a18; }`, applyTheme: function() { ... }, initTooltip: function() { ... }, // ★共通の歯車描画関数を定義して使い回す drawGears: function(g, x, y, r, teethCount, type, uid, duration, ...) { // 歯車のSVGパス生成と回転アニメーションのロジック } }; このように utils という一つのオブジェクトの中に、テーマカラーの定義や「歯車を描画する共通関数」などを全てまとめました。 これにより、AI自身が次に別のグラフ(円グラフなど)を作る際も、「あ、今回もあの共通関数とCSSクラスを呼び出せばいいんだな」と文脈を正確に理解し、複数のグラフ間で全くブレのないデザインを出力できるようになったのです。 まとめと今後の展望:Lookerの表現力は世界トップクラス Webフロントエンドの技術(JS/CSS/SVG)がそのまま使えるLookerの表現力は、間違いなく世界トップクラスです。 今回は「スチームパンク」という極端なテーマに挑戦しましたが、この手法を応用すれば、自社のコーポレートブランドに完璧にマッチした美しいグラフや、製造業向けのリアルなインジケーターなど、標準機能では不可能な唯一無二のダッシュボードを作ることも十分可能です。 今後の展望として、今回はWebブラウザ上のGeminiを使ってコピー&ペーストを繰り返しながら開発しましたが、実際の現場では「Gemini CLI」を導入すべきだと考えています。CLIを使えば、ローカル環境で直接JSファイルを編集してテストしてくれるため、コピペの手間やミスがなくなり、開発速度はさらに爆速になるはずです。 「Lookerは堅い」「Tableauの方がデザインの自由度が高い」という固定観念を捨てて、皆さんもぜひ、AIとLookerを掛け合わせた新しいダッシュボード開発の可能性に挑戦してみてください! Google Cloud 導入・活動支援に関するご相談はこちら 関連コンテンツ 【Looker】導入2分でスパゲッティ化したモデルを一刀両断「LookML Diagram Extension」導入・活用完全ガイド by IKURADONon 2026年1月14日 Lookerで自作のCustom Visualizationを利用してみよう! by tenon 2024年9月24日 頂きましたご意見につきましては、今後のより良い商品開発・サービス改善に活かしていきたいと考えております。 よく分かった 気になる おもしろい イマイチ Author IKURADON Gemini Google Cloud Looker 生成AI(Generative AI) 2026年4月15日 【Looker】Tableauに負けない表現力!Lookerのカスタムビジュアライゼーションで「動く」スチームパンク風ダッシュボードを作ってみた Category Google Cloud 前の記事を読む 【参加無料】typeエンジニア転職フェア 出展のお知らせ(2026/4/11) 次の記事を読む 【Partner Awards 2026受賞企業/先着特典あり】Google Cloud Next Tokyo 26 出展のお知らせ【7 月 30 日、31 日 東京ビッグサイト】 Recommendation オススメ記事 2023年9月5日 Google Cloud 【Google Cloud】Looker Studio × Looker Studio Pro × Looker を徹底比較!機能・選び方を解説 2023年8月24日 Google Cloud 【Google Cloud】Migrate for Anthos and GKEでVMを移行してみた(1:概要編) 2022年10月10日 Google Cloud 【Google Cloud】AlloyDB と Cloud SQL を徹底比較してみた!!(第1回:AlloyDB の概要、性能検証編) BigQuery ML ワークショップ開催のお知らせ 生成AI導入支援パッケージ Discovery AI導入支援パッケージ Google Cloud ホワイトペーパー 新着記事 2026年5月26日 Google Cloud AlloyDBのAI関数でSQLだけで感情分析・要約をしてみた! 2026年5月26日 Google Cloud BigQuery agent analyticsをデータサイエンスエージェントに組み込んでみた!エージェントの動きをSQLで分析する 2026年5月25日 Google Cloud データサイエンスエージェントのADKを2.0 Betaにアップデートしてみた!新しいWorkflowクラスも試してみる HOME Google Cloud 【Looker】Tableauに負けない表現力!Lookerのカスタムビジュアライゼーションで「動く」スチームパンク風ダッシュボードを作ってみた