WEBサイトの背景を「cables.gl」で作って埋め込む(設定)する方法
投稿日:2019-12-22
ナカジ(@cp_nakajun)です。
僕の勝手なイメージかもしれませんが
WEBサイトの背景アニメーションと言えば、javascriptなイメージがあります。
僕としてはp5jsで何か作ろうかと思っていたのですが、ふとcables.glを思い出したので試してみることにしました。
cables.glについては以下の記事を読んでいただけたらと思います。
cables.glコンテンツをWEBの背景に設定する
まずは背景に設定するコンテンツをcables.glで作ります。
cables.glでのコンテンツの作り方や使い方は本記事では割愛します。
以下をご参照ください。
今回は以前つくったものを使いまわします。
cables.glからエクスポートする
cables.glのメニューから
- 「Patch」→「Export」
- Packageを「Single JavaScript File」にして書き出し
という手順で書き出します。
canvasとscriptをコピー
書き出したZIPファイルを展開すると中に「index.html」と「js」フォルダーがあります。
「index.html」をテキストエディターで開き(以下画像の部分)
canvasタグの部分と2つのscriptタグ部分をコピーコピーします。
それぞれの部分を「埋め込みたいhtml」に貼り付けます。
<canvas id="glcanvas" width="100vw" height="100vh"></canvas> <!-- 上記のcanvasタグ と 以下のscriptタグ --> <script type="text/javascript" src="js/patch.js"></script> <script> /** * Called when there was a cables error. * @param {string} errId - ID of the error, e.g. 'NO_WEBGL' or 'NO_WEBAUDIO' * when the browser does not support the used APIs * @param {string} errMsg - The error message */ function showError(errId, errMsg) { alert('An error occured: ' + errId + ', ' + errMsg); } function patchInitialized() { // You can now access the patch object (CABLES.patch), register variable watchers and so on } function patchFinishedLoading() { // The patch is ready now, all assets have been loaded } document.addEventListener('DOMContentLoaded', function(event) { CABLES.patch = new CABLES.Patch({ patch: CABLES.exportedPatch, prefixAssetPath: '', glCanvasId: 'glcanvas', glCanvasResizeToWindow: true, onError: showError, onPatchLoaded: patchInitialized, onFinishedLoading: patchFinishedLoading, }); }); </script>
また、先に書き出された「js」フォルダーを「埋め込みたいhtml」があるプロジェクトフォルダーに移します。
CSSの設定
「埋め込みたいhtml」が読み込んでいるCSSファイルに以下の記述を追加します。
/* Cables BackGround */ #glcanvas{ position: fixed; /*canvasを固定*/ top: 0; /*canvasを上に固定*/ }
まとめ
ということをやったところ一応以下のスクリーンショットのようにWEBサイトの背景に設定することができました。
とりあえず今回は「やってみた」というところなので、また細かい部分などのノウハウについては発見したら共有します。