【Discord StreamKit】機能しなくなった場合(2023年3月)

事象と原因

一部、Discord Streamkit Overlayに対するOBSでのカスタムCSS制御が正しく動作しない事象を確認しています。私がそれを実際に確認したのは、先月公開した以下の記事が3/4時点で確認した際に使えなくなっていたのを発見した時のことです。

原因について一通り確認してみたところ、どうやらDiscord以外の外部URL参照が出来なくなっているように見えます。「Discord以外のサイトにアップロードした立ち絵に差し替えていた人」や「Discord以外のサイトにアップロードされていた外部CSS読み込みが含まれるカスタムCSSを使用していた人」がこの状況に陥るということっぽい。

暫定的な対処

  1. 動かなくなったカスタムCSSの中で「https://~」から始まる記載を確認
  2. 実際に参照しているURL先の情報をダウンロードし、Discordサーバ(テキストチャンネル)へアップロード
  3. アップロードしたファイルのリンク(URL)を取得し、「1」で確認したURLと差し替える

外部参照先の候補としては「@import url」による外部CSS読み込みや、「content:url」による差し替える用の画像の参照です。カスタムCSSや画像の著作者様のガイドラインの範囲内で上記対処が可能であれば解決するかと思います。

外部読み込みのCSSであれば、URLにアクセスして表示されたテキストを「@import url(~~);」の行と差し替える事でも解決するはずです。

弊サイト紹介のカスタムCSSで参照されている外部読み込みのCSSに関しては自由にダウンロードしていただいて問題ありません。

何か、スマートな解決方法があれば引き続き調査してみます。



【Discord StreamKit】複数のアイコン画像をまとめて差し替えるカスタムCSS


2023/3現在、執筆者環境で「@import url」がOBS上で機能せず本カスタムCSSが正しく動作しない状況を確認しています。
取り急ぎの解決方法としては「https://manten-do.net/tools/web_items/dsk02.css」へアクセスし、表示されたテキストを紹介している各カスタムCSS先頭に記載されている以下(1行目)と差し替える事で動作します。

詳細はこちらの記事もご参照ください。

@import url("https://manten-do.net/tools/web_items/dsk02.css?v20230228");

Discordの発話者を分かりやすくするボイスウィジェット「Discord Streamkit Overlay」のデザインを変更するカスタムCSSを紹介します。

過去に紹介した記事では通話参加者1人につき1つのブラウザソースを作る必要があり、配信・録画画面を作る際の細かい調整ができるメリットはありますが準備に手間がかかる側面がありました。

本記事で紹介するカスタムCSSの場合は、発話者ごとの細かい設定は出来ませんが、OBS上で用意するブラウザソースは1つで準備が完了します。用途によってはこちらの方が使い勝手がいいかもしれません。

1.アイコンを横並びにする

公式サイトより取得したDiscord Streamkit OverlayのURLでOBS上にブラウザソースを作成し、ベースとなる以下のカスタムCSSを設定してください。

@import url("https://manten-do.net/tools/web_items/dsk02.css?v20230228");

/* 変数 */
:root{
  --member:3;                    /* 参加する最大人数を指定します。立ち絵の横幅に影響します。 */
  --base-bottom:0px;             /* 画像の表示位置(高さ)を調整します。 */
  --silent-brightness:50%;       /* 非発話時の明るさを設定します。 */
  --speak-color:rgba(0,255,0,0); /* 発話時の縁取り色を設定します。rgba(赤,緑,青,透明度0~1) */
  --jump-bottom:10px;            /* 発話時のジャンプ距離を設定します。 */
  --floating-bottom:5px;         /* 浮遊アニメーションの移動距離を設定します。 */

  --icon-radius:100%;              /* アイコンの角を設定します。0(四角)~100%(丸) */
  --nametag-position:center;     /* ネームタグの表示位置を変更します。[left][center][right] */
  --nametag-view:unset;          /* ネームタグの表示・非表示を切り替えます。[unset][hidden] */

  /* アニメーションのキーフレーム指定(アニメーション無効可用) */
  --jump-anime:jump;
  --floating-anime:floating-;
  --floating-nametag-anime:floating-nametag-;
}

5行目の数字は横に表示できるアイコンの数です。この数分のアイコンがブラウザソースの横幅いっぱいに表示されるよう設定しているので、この数字を通話チャンネルの参加人数に合わせて適切な数に変更してください。

 --member:3;                    /* 参加する最大人数を指定します。立ち絵の横幅に影響します。 */

2.アイコン画像の形を丸から四角に変更する

「1.アイコンを横並びにする」で設定したカスタムCSSの12行目の数字「100%」を「0%」に変更すれば、丸く表示されていたアイコンが四角になります。

  --icon-radius:0%;              /* アイコンの角を設定します。0(四角)~100%(丸) */

3.アイコン画像を他の画像に差し替える

「2.アイコン画像の形を丸から四角に変更する」までで変更したカスタムCSSに画像を差し替える用のCSSを追記していきます。事前に以下の情報を取得して控えておいてください。

  1. 画像を差し替える発話者のID(Discord上でアイコンを右クリック⇒IDをコピー)
  2. 差し替える画像のURL

追記するCSSは以下です。

img[src*="画像を差し替える発話者のID"]{
  content:url("差し替える画像のURL");
}

事前に取得した2つの情報に置き換えた上記CSSを人数分カスタムCSSに追記(22行目以降)していきます。

@import url("https://manten-do.net/tools/web_items/dsk02.css?v20230228");

/* 変数 */
:root{
  --member:3;                    /* 参加する最大人数を指定します。立ち絵の横幅に影響します。 */
  --base-bottom:0px;             /* 画像の表示位置(高さ)を調整します。 */
  --silent-brightness:50%;       /* 非発話時の明るさを設定します。 */
  --speak-color:rgba(0,255,0,0); /* 発話時の縁取り色を設定します。rgba(赤,緑,青,透明度0~1) */
  --jump-bottom:10px;            /* 発話時のジャンプ距離を設定します。 */
  --floating-bottom:5px;         /* 浮遊アニメーションの移動距離を設定します。 */

  --icon-radius:0%;              /* アイコンの角を設定します。0(四角)~100%(丸) */
  --nametag-position:center;     /* ネームタグの表示位置を変更します。[left][center][right] */
  --nametag-view:unset;          /* ネームタグの表示・非表示を切り替えます。[unset][hidden] */

  /* アニメーションのキーフレーム指定(アニメーション無効可用) */
  --jump-anime:jump;
  --floating-anime:floating-;
  --floating-nametag-anime:floating-nametag-;
}

/* アイコンを立ち絵画像に差し替える(人数分設定する) */
img[src*="画像を差し替える発話者のID①"]{
  content:url("差し替える画像のURL①");
}

img[src*="画像を差し替える発話者のID②"]{
  content:url("差し替える画像のURL②");
}

img[src*="画像を差し替える発話者のID③"]{
  content:url("差し替える画像のURL③");
}

4.その他の設定

基本的な設定は1~3までの設定を行えば完了しますが、カスタムCSSの3~20行目までの設定値を変更することで他にも細かい設定を行うことができます。

4-1.立ち絵の表示位置を調整

6行目の数字を変更することで表示される画像の高さを変更できます。
デフォルトは0pxで、これは画像下部が画面の下から0pxの位置にあることを意味します。

  --base-bottom:0px;             /* 画像の表示位置(高さ)を調整します。 */

差し替えた全身立ち絵をバストアップにしたい場合などは「-〇〇px」というように数字を低くすれば画像の表示される高さを低くすることができます。

4-2.非発話時の明るさを設定

7行目の数字「50%」は非発話時に明るさが50%まで暗くなる設定となっています。画像の明滅を抑えたい場合、調整したい場合はこの数字を0~100%の間で変更することで対応できます。

  --silent-brightness:50%;       /* 非発話時の明るさを設定します。 */

4-3.発話時に色で縁取りする

8行目の設定で発話時に色付きの影を画像に落とすことができます。
「rgba(0,255,0,0);」に「rgba(赤,緑,青,透明度0~1)」と対応する数字を入力することで色・透明度を設定できます。

  --speak-color:rgba(0,255,0,0); /* 発話時の縁取り色を設定します。rgba(赤,緑,青,透明度0~1) */

4-4.発話時に跳ねる距離を設定

9行目の数字を変更することで、発話時に跳ねているアニメーションで動くpx距離を調整できます。
この数字を0にした場合、発話者が動くアニメーションを抑制することができます。

  --jump-bottom:10px;            /* 発話時のジャンプ距離を設定します。 */

4-5.ネームタグ関連

13・14行目の設定を変更することで、ネームタグの表示・非表示の切り替えや、表示位置の変更ができます。

  --nametag-position:center;     /* ネームタグの表示位置を変更します。[left][center][right] */
  --nametag-view:unset;          /* ネームタグの表示・非表示を切り替えます。[unset][hidden] */

13行目の「center」は中央表示、「left」は左寄せ、「right」は右寄せ表示となります。
14行目の「unset」を「hidden」とすると、ネームタグを非表示とすることができます。

5.さいごに

4の項目で紹介したもの以外にも立ち絵をフワフワと常に動かす待機アニメーションも設定が可能なのですが、こちらの機能は長時間再生していると全体的に動きがカクついてしまうのでここでの紹介は省略します。(GPU使用の設定ONにしてるけどそれでも重たい……)

あと余談ではありますが、本記事でデモ画像に使用していた立ち絵は最近作り始めたBOOTH販売フリー配布用の立ち絵素材になります。可愛いなと思っていただけたら是非ご利用、ないしお友達なんかに紹介お願いします。。。

今回作成したカスタムCSSが好評であれば、過去に作成したようなWebツール化も視野に入れようかと思います。

本ツールがTRPGの録画や配信者さん方の支援となれば幸いです。



【Discord StreamKit】差し替えた立ち絵にまばたきをさせるカスタムCSS

本サイトではDiscordのStreamKitで取得できる発話者アイコンをOBS上で立ち絵に差し替えるカスタムCSSを紹介してきました。本記事ではこの差し替えた画像にアニメーションを設定し、まばたきをさせる方法を紹介します。

過去の紹介記事は以下になります。まばたきアニメーションは不要なのでとりあえず立ち絵を差し替えたいという場合はこちらも見てみてください。

事前準備

使用する立ち絵画像

今回、まばたきをするアニメーションを設定するために、以下の画像素材が必要となります。

  • 立ち絵画像①:通常
  • 立ち絵画像②:目閉じ差分
  • 立ち絵画像③:半目差分(※)

※半目差分についてはアニメーションを滑らかにする場合に必要ですが、妥協する場合はなくても問題ありません。

上記の用意した画像は「①②③①」の順番で横に4つ並べて結合し1枚の画像にします。用意する差分は横幅がバラバラにならないよう注意してください。画像の結合に関してはお手元のペイントソフトツール(背景透過に対応したもの)を利用するか、以下のようなオンライン上で可能なツールを使用して合成しましょう。

合成の終わった画像はDiscordの個人サーバーなどにアップロードし、URLを控えておきましょう。

必要な情報の取得

StreamKitをOBSに取り込むために必要な情報を取得します。
必要な情報は事前に取得した画像URLに加え、「ボイスウィジェットのURL」「画像を差し替えるDiscordユーザのID」です。これらの情報の取得方法については過去の記事に掲載していますのでそちらを参照してください。

カスタムCSSの作成

今回はまばたきアニメーションの他に、待機中にふわふわと浮遊するアニメーション発話時にぴょんと跳ねるアニメーションの2つを追加で設定します。

事前準備の段階で控えた情報を以下カスタムCSSのコード内で差し替えて控えてください。

  • ①DiscordユーザのID
  • ②画像URL
/* 各種アニメーション用変数 */
:root{
  --step-cnt:4;
  --step-sec:10s;
  --step-anime:step var(--step-sec) steps(var(--step-cnt)) infinite;
  --speak-anime:speak-now 300ms ease-in-out forwards;
  --floating-anime:floating-now 4500ms ease-in-out forwards infinite;
}

/* 選択したユーザ以外の画像を非表示にする */
img:not([src*="①DiscordユーザのID"]){ display:none; }  /* <------- 変更箇所1 */
img:not([src*="①DiscordユーザのID"])+div{ display:none; }  /* <------- 変更箇所2 */
li{ position:fixed;top:15px;left:0;right:0;width:100%; }

/* アイコンを立ち絵画像に差し替える */
img[class*="Voice_avatar_"]{
  content:url("②画像URL");  /* <------- 変更箇所3 */
  height:auto !important;
  width:100% !important;
  border-radius:0 !important;
  position:absolute;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  width:calc( 100% * var(--step-cnt) ) !important;
  left:calc( 100% * ( ( var(--step-cnt) / 2 ) - 0 ) );
  object-fit:cover;
  animation: var(--step-anime);
}
@keyframes step {
  97% { left:calc( 100% * ( ( var(--step-cnt) / 2 ) - 0 ) ); }
  to { left:calc( 100% * ( ( var(--step-cnt) / 2 ) - var(--step-cnt) ) ); }
}

/* 浮遊アニメーション */
li[class*="Voice_voiceState"]{
  border-color:rgba(0,0,0,0) !important;
  animation:var(--floating-anime);
}
@keyframes floating-now {
  0% { top:15px; } 50% { top:10px; } 100% { top:15px; }
}

/* 発話状態の設定 */
img[class*="Voice_avatarSpeaking"]{
  border-color:rgba(0,0,0,0) !important;
  position:relative;
  animation:var(--speak-anime),var(--step-anime);
}
@keyframes speak-now {
  0% { bottom:0px; } 50% { bottom:10px; } 100% { bottom:0px; }
}

/* ネームタグ表示位置調整 */
div[class*='Voice_user']{text-align:center; position:fixed; bottom: 10px; left:0;right:0;margin:auto; }
body { background-color: rgba(0, 0, 0, 0); overflow: hidden; }

補足

事前準備の段階で、まばたき画像を「立ち絵画像①:通常」「立ち絵画像②:目閉じ差分」の2枚しか用意できていない場合、合成する画像は「①①②①」としてください。

差分を細かくする場合(4枚以上になる場合)、CSS3行目の「–step-cnt:4;」の数字を横に並べた画像の枚数に合わせることで対応可能です。ただし画像の枚数は100の公約数(2、4、5、10など)にしないとアニメーション時にイラストの位置が微妙にずれてしまうので注意してください。

  --step-cnt:4;

まばたき以外のアニメーションに対応させたい場合は31行目以降のキーフレームの項目からアニメーションのタイミングを調整してください。

@keyframes step {
  97% { left:calc( 100% * ( ( var(--step-cnt) / 2 ) - 0 ) ); }
  to { left:calc( 100% * ( ( var(--step-cnt) / 2 ) - var(--step-cnt) ) ); }
}

OBSへの設定

準備した情報を元にOBSのソースを作成します。OBSのブラウザソースを作成し、URLにはボイスウィジェットのURL、カスタムCSSには先程作成したCSSのコードを入力します。

設定したボイスチャットへ入室し、設定した立ち絵が表示されたら設定は完了です。今回のカスタムCSSでは10秒に1回のペースで表示された画像がまばたきをします。

ツール紹介

まばたき無し版は既に公開済みですが、今回その機能拡張版としてこちらの記事の内容に対応した立ち絵変換ツールを公開しています。

必要な情報をフォームに入力すればコードを出力するようにしていますので、繰り返し使用したいという方はそちらをブックマークしておくと便利かもしれません。

本記事の紹介内容は以上になります。
配信や録画の場で活用する機会があれば是非お役立てください。



Discordで喋ってる人を分かり易くするカスタムCSS(2023年最新)

1.はじめに

2022年12月頃、Discordのアイコンをストリームソフトへ表示するStreamKitのDOMが変更され、元々作っていた当サイトのツールが稼働しなくなりました。ツール側は既に修正済みであり、本記事はその修正版になります。

2.変更内容

旧版記事で紹介していた際のCSSは以下になります。公式StreamKit側で<li>、<img>周りの構造が変更されており、<li>のクラス、他属性を指定するセレクタが利かなくなってしまいました。

li.voice-state:not([data-reactid*="⑥で控えたID"]) { display:none; }
.avatar {
  content:url(⑤で控えた画像URL);
  height:auto !important;
  width:auto !important;
  border-radius:0% !important;
}

.speaking {
  border-color:rgba(0,0,0,0) !important;
  position:relative;
  animation-name: speak-now;
  animation-duration: 1s;
  animation-fill-mode:forwards;
}

@keyframes speak-now {
  0% { bottom:0px;  }
  15% { bottom:10px;  }
  30% { bottom:0px;  }
}

li.voice-state{ position: static; }
div.user{ position: absolute; left:40%; bottom:5%; }

body { background-color: rgba(0, 0, 0, 0); margin: 0px auto; overflow: hidden; }

本当は:has()を使ってまとめて処理をしたい個所があったのですが、コードに不備があるのかOBSのブラウザでは上手く動かないのか動作せず、回りくどい書き方になってしまったかもしれません。

2-1.指定のユーザ以外のアイコン・ネームタグを非表示にする

前回と同様、<li>に画像を差し込みたかったのですが、ユーザIDが<img>のsrc属性でしか指定出来なかったため画像を差し替える形になっています。

/* 選択したユーザ以外の画像を非表示にする */
img:not([src*="ユーザID"]){ display:none; }
img:not([src*="ユーザID"])+div{ display:none; }
li{ position:fixed;top:15px;width:100%; }

/* アイコンを立ち絵画像に差し替える */
img[class*="Voice_avatar_"]{
  content:url("画像URL");
  height:auto !important;
  width:100% !important;
  border-radius:0 !important;
  position:absolute;
  left: 50%;
  transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
}

2-2.発話時のアニメーション

元々「.speaking」クラスの指定で何とかなっていた個所ですが、2023年1月現在は「.Voice_avatarSpeaking__lE+4m」というクラス名になっています。おそらく変わることのないであろう「.Voice_avatarSpeaking」の部分で部分一致するようセレクタを変更しています。

/* 発話状態の設定 */
img[class*="Voice_avatarSpeaking"]{
  border-color:rgba(0,0,0,0) !important;
  position:relative;
}

3.新機能

元々、最上位の<li>に跳ねる・明滅するなどのアニメーションを設定していたところ、今回の更新で<li>内の<img>に発話時のアニメーションを指定するという形になりました。

(当時の筆者のCSS習熟度の都合もあり)変更前の構造の時に出来たのかはもうわかりませんが、今回から<li>にもアニメーションを指定することで非発話時でも再生される待機モーションという要素を追加しました。

第一弾として「浮遊アニメーション」を実装しています。これは差し替えた画像が常にふわふわと上下にゆっくり動き続けるというものです。多くの場合立ち絵に差し替えられるので、喋っている時以外静止しているよりは動きのある配信画面が出来るのではと思われます。

複数アニメーションは普通にできるらしい(「,」区切りで指定)ので当時の僕は勉強不足でしたね……。

4.さいごに

まず最初に、今回の仕様変更から修正までの間にツールを使えない状態に陥ってしまった方々、申しわけありませんでした。そしていつも使ってくださりありがとうございます。修正するまでの間、多くの方が代替案の作成や情報の拡散を行ってくださりとても助かりました。

また、以前作ったものと比較して「この書き方変だな」というところも見えてきましたので、機能に影響が出ない程度にスリムでカッコいいコードになるようサイレント修正入るかもしれません。バグなど出ないよう注意します。

引き続き本ツールをより良いものに出来るよう努めていきますので、今後も何卒宜しくお願いします。

以上



一枚の画像からパラパラ漫画を生成する


今回作ったものは以下。ブックマークするならこちらをどうぞ。
CSSパラパラ漫画メーカー


はじめに

世の中には頭のいい人がたくさんいるもので、先日「CSSスプライト」と呼ばれる技術を知りました。

Webページ上でたくさんの画像を参照する処理を減らすべく、事前に必要な画像を一枚にまとめて、ブラウザ上では「その一枚の画像の特定の領域のみCSSで制御して表示させる」というもの。
確かに画像を読み込む回数が減る……なるほどって感じ。

今回はこの技術を用いて以下のような「複数のコマを横につなげた画像」からパラパラ漫画を作るツールを作ってみました。透過画像も利用可能。画像の種別はWebページに利用可能なものであれば行けるはず。
(※GIF画像作ってるわけじゃないよ)

何が起きるか説明するより見た方が早いので デモページ を見て。
……まぁ上記画像が一枚ずつコマ送りにされるだけです。

ツールの実態はPHPで作られたページでして、画像やらアニメーションの情報はURLから変数で渡してあげます。僕一人が使うだけならこのままでもいいのですが、利便性向上と他の人に使ってもらいたいなぁって時の為に必要な情報からURLを生成するフォームを作りました。

利用場面は正直分かんないですが、生成されたURLをOBSのブラウザソースに渡してあげれば配信画面なんかでも表示できたりするので、画面のにぎやかしくらいにはなるかもです。(元となる画像の用意は手間ですが……)

ではツールの簡単な説明だけ。

使い方

フォームは以下のような具合です。

各項目の解説は以下の通り。(そこまで説明することない)

  • 画像URL:利用する画像のURL
  • 1コマの横幅:画像全体ではなく、1コマあたりの横幅。(画像全体の横幅をコマ数で割った長さ)
  • 縦幅:画像の縦幅。めっちゃ長くしても元画像の縦幅以上にはならない
  • コマ数:何コマ分再生するかの指定
  • 1周/秒:全コマ分再生し終えるまでの時間
  • ループしない:これをチェックすると最後のコマで停止する。デフォルトはループする

「生成」ボタンを押したらURLが出てきます。
後はこのURLを好きに使ってくださいまし。

さいごに

今回参考にさせて頂いたのは以下のサイト。欲しい情報がピンポイントで見つかった。嬉しい。(粉蜜柑)

本記事はツールの紹介が出来ればそれでいいので、PHPやstyle要素の解説はせんでおきます。前述の通り作った本人でさえ使い道はよくわかりません故、ちょっとしたオモチャだと思ってくださいまし。

それでは、以上。



Discordで喋ってる人を分かり易くするカスタムCSS


(2019/09/01追記)本記事の内容はこちらにてツール化してます。画像URL・DiscordのユーザID取得、配信ツールへの設定方法が理解できた方はツールの方をブックマークした方が楽になるかもしれません。

(2023/01/28追記)StreamKit側の仕様変更に伴い、最新版に合わせた仕様に変更しています。変更内容については下記記事に掲載していますので、改変などされる場合はこちら参考にしてみてください。


Discordのストリームキットで配信ツール上に表示される発言者を分かり易くするという手法はメジャーなものかと思いますが、それをさらにカスタムCSSで「アイコン」から「立ち絵」に改造できたのでご紹介。

以下の右側(発言毎に跳ねる魔理沙ちゃん)のような動きをするカスタムCSSを例に設定手順を掲載します。

目次

  1. ボイスウィジェット取得
  2. 立ち絵・ユーザ情報取得
  3. カスタムCSS作成
  4. 配信ツールへ取り込み(OBSの場合)

ボイスウィジェット取得

① [Discord Streamkit Overlay]へアクセス。

② お使いの環境に合わせて[OBS]か[XSplit]を選択

③ [VOICE WIDGET]>[該当のサーバ]>[該当のボイスチャンネル]選択してウィジェットのURL取得(URL控え)

立ち絵・ユーザ情報取得

④ ディスコードのチャットに、使用したい立ち絵画像をD&Dでアップロード
※URL参照できる場所であればディスコード外でも可

⑤ 「」でアップロードした画像を右クリックして[リンクをコピー]選択(URL控え)

⑥ ディスコードサーバーのメンバーから立ち絵を適用するユーザを右クリックして[IDをコピー]選択(ID控え)


(2019/11/11追記)IDのコピーはDiscordで「開発者モード」を有効にしていないと実行できません。開発者モードは[ユーザー設定]>[アプリの設定]>[テーマ]で有効にできます。
教えてくれた鎌足さん( @kamatari_san )、ありがとうございます!


カスタムCSS作成

⑦ 以下のソースを編集([⑥で控えたID]、[⑤で控えた画像URL]の二か所修正)

li.voice-state:not([data-reactid*="⑥で控えたID"]) { display:none; }
.avatar {
  content:url(⑤で控えた画像URL);
  height:auto !important;
  width:auto !important;
  border-radius:0% !important;
}

.speaking {
  border-color:rgba(0,0,0,0) !important;
  position:relative;
  animation-name: speak-now;
  animation-duration: 1s;
  animation-fill-mode:forwards;
}

@keyframes speak-now {
  0% { bottom:0px;  }
  15% { bottom:10px;  }
  30% { bottom:0px;  }
}

li.voice-state{ position: static; }
div.user{ position: absolute; left:40%; bottom:5%; }

body { background-color: rgba(0, 0, 0, 0); margin: 0px auto; overflow: hidden; }

配信ツールへ取り込み(OBSの場合)

⑧ ソースから[ブラウザソース]選択(ソース名は任意)

⑨ URLに「」で控えたURLを指定

⑩ カスタムCSSに「」で編集したソースを貼り付け


手順は以上。

対象のユーザがDiscord通話に参加していれば動く立ち絵が表示されるはずです。
ちょっと手間ですがコラボなんかの際は上記手順を人数分実施します。

因みに最初に紹介した動画の左側(発言毎に明るくなる霊夢ちゃん)のような挙動をさせる場合は⑦で編集するCSSを以下に差し替えればできます。

li.voice-state:not([data-reactid*="⑥で控えたID"]) { display:none; }
.avatar {
  content:url(⑤で控えた画像URL);
  height:auto !important;
  width:auto !important;
  border-radius:0% !important;
  filter: brightness(50%);
}

.speaking {
  border-color:rgba(0,0,0,0) !important;
  filter: brightness(100%);
}

li.voice-state{ position: static; }
div.user{ position: absolute; left:40%; bottom:5%; }

body { background-color: rgba(0, 0, 0, 0); margin: 0px auto; overflow: hidden; }

明るさ変わる方が分かり易そうだけど、雑音とか拾って発話状態繰り返したら画面チカチカしないか心配。。。


なんとなく想像つくかもしれませんが、「.avatar」が通常時の立ち絵に関する設定で「.speaking」がしゃべってる最中の表示に関する設定です。

細かい解説は本記事では省きますが、弄る場所さえ分かっていればあとは使えるCSSを増やすだけ。
もっと上手な書き方ある気がしますが、取り合えずこれで動作するのでヨシとします。

演出のバリエーションが増えたら使いやすい形で配布とか生成ツールの作成をしたいと考えてます故、気長にお待ちくださいまし。

是非お試しいただき、配信活動にお役立てください。

それでは、以上。