2008年08月21日
LSLにおけるGPLの効力ってどれくらいの範囲?
久方ぶりです。
最近は更新頻度が低くて何もしてないように見えますが、実はしっかりアバター制作を進めてます。まあ、アバター制作にすでに5ヶ月かけてる時点でアレですが・・・。
で、アバターはアニメ調にしようと考えてるので、デフォルトのアニメーションではフィットしないなあと思い、AO(アニメーションオーバーライド)することにしたのです。
AOのスクリプトを1から作るのは結構大変そうだと思い、Tinyアバターのボディークラッシャーに入っているスクリプトを使わせてもらおうかとソースを見てみたのですが、これってGPLだったんですね Σ( ̄□  ̄ ) てっきり、修正BSDかMITあたりかと思っていました。
以下、スクリプトのコメントを一部抜粋。
実は、セキュリティの関係でスクリプトの1つを閲覧不可にしたかったのですが、GPLの効力がどれくらい効くのか、よく分からなくて困っています。
まず、AOスクリプトと、ListenやLinkMessageで通信を行う場合は、それらのソースは公開する必要があると思います(多分)。では、通信が発生しなければどうなんでしょうか? 同じプリム内にあるスクリプトは公開しなければいけない気もしますけどねぇ。
たとえば、AOのスクリプトに対して、別のスクリプトの取り得る格納位置として以下のような場合があると思います。
これらのうち、ソース公開の必要があるのはどこまででしょうか?4は公開の必要はないと思いますが・・・。ちなみにSabroが絶賛制作中のアバターでは、上記3のスクリプトを非公開にしたいです。
Windowsアプリとかで、GPLのDBをアプリケーションに付属して配布する場合でも、ソース公開の義務があった気がするので、やっぱりダメだろうなぁ (_ _ |||
やはり車輪の再発明が必要か (つ д`)
それにしても、こうしてみると上記のようなパターンに柔軟に対応できるLSL用のライセンス体系とかほしくなりますね(^^)
最近は更新頻度が低くて何もしてないように見えますが、実はしっかりアバター制作を進めてます。まあ、アバター制作にすでに5ヶ月かけてる時点でアレですが・・・。
で、アバターはアニメ調にしようと考えてるので、デフォルトのアニメーションではフィットしないなあと思い、AO(アニメーションオーバーライド)することにしたのです。
AOのスクリプトを1から作るのは結構大変そうだと思い、Tinyアバターのボディークラッシャーに入っているスクリプトを使わせてもらおうかとソースを見てみたのですが、これってGPLだったんですね Σ( ̄□  ̄ ) てっきり、修正BSDかMITあたりかと思っていました。
以下、スクリプトのコメントを一部抜粋。
//
// Don't ask me for tech support. I won't give it.
// Copyright (C) 2004 Francis Chung
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 U
実は、セキュリティの関係でスクリプトの1つを閲覧不可にしたかったのですが、GPLの効力がどれくらい効くのか、よく分からなくて困っています。
まず、AOスクリプトと、ListenやLinkMessageで通信を行う場合は、それらのソースは公開する必要があると思います(多分)。では、通信が発生しなければどうなんでしょうか? 同じプリム内にあるスクリプトは公開しなければいけない気もしますけどねぇ。
たとえば、AOのスクリプトに対して、別のスクリプトの取り得る格納位置として以下のような場合があると思います。
- 同じプリム内
- 同じオブジェクトの別のプリム内
- 別のオブジェクトに入っているが、1つの商品として扱われる場合(オブジェクトと操作用HUDとか)
- まったく関係ない別のオブジェクトに入っている場合
これらのうち、ソース公開の必要があるのはどこまででしょうか?4は公開の必要はないと思いますが・・・。ちなみにSabroが絶賛制作中のアバターでは、上記3のスクリプトを非公開にしたいです。
Windowsアプリとかで、GPLのDBをアプリケーションに付属して配布する場合でも、ソース公開の義務があった気がするので、やっぱりダメだろうなぁ (_ _ |||
やはり車輪の再発明が必要か (つ д`)
それにしても、こうしてみると上記のようなパターンに柔軟に対応できるLSL用のライセンス体系とかほしくなりますね(^^)
2008年07月28日
LSL色付けツールをバージョン1に、あと設置簡易化とか
いつのまにか、SyntaxHighlighter2が効かなくなってると思ったら、Jvnさんのブログに壊れたって書いてありました。ソラマメの仕様が変わったのかな ?( ̄o  ̄ )
なので、バージョン1に戻してみました。
ちなみに今までは、javascriptやcssファイルなどは、各使用者が個別にHPスペースなどにアップロードする必要があったのですが、今回からGooglePageCreatorに置いておいて、どこからでも参照できるようにしてみました。これで、いちいち別途ファイル置き場を用意しなくても、ソラマメのテンプレートからGooglePageCreatorを参照するだけで、色つけ出来るようになります。
このような使い方は、他のHP作成サービスでは、たいてい規約で禁止されていますが、GooglePageCreatorの規約を翻訳して読んでみた限りでは、特に問題ないように感じました。(もし勘違いしていたら教えてください)
使ってみたいなら、テンプレートのheadタグ内に、設定を追加しましょう。
以下、設定例です。
<head>
・・・
・・・
<!-- ▼追加部分▼ -->
<link type="text/css" rel="stylesheet" href="http://public.webkai.net/SyntaxHighlighter.css" />
<script language="javascript" src="http://public.webkai.net/shCore4SLMaMe.js"></script>
<script language="javascript" src="http://public.webkai.net/shBrushLsl.js"></script>
<script language="javascript">
window.onload = function () {
dp.SyntaxHighlighter.ClipboardSwf = 'http://public.webkai.net/clipboard.swf';
dp.SyntaxHighlighter.BloggerMode();
dp.SyntaxHighlighter.HighlightAll('code');
}
</script>
<!-- ▲追加部分▲ -->
</head>
URLのホスト名が、public.webkai.netになっていますが、これはwebkai.netというsabroが持ってるドメインをGoogle Appsに登録し、その上でGooglePageCreatorを使っているのでこうなっています。つまり、ドメインこそsabroが持っているものですが、実際のホスティングはGoogleで行われています。
テンプレートの設定追加が終わったら、あとはLSLを書く時にPreタグで囲んで、いくつか属性を設定するだけです。
↓ こんなかんじ
<pre name="code" class="lsl">
default
{
state_entry()
{
llSay(0, "ご存じ、ないのですか!? これがSyntaxHighlighterです!!");
}
}
</pre>
最近は、LSLのブログも増えたようですが、うちがマイナーなので、あんまりこのツール使っている人っていません。設置も楽になったことですので、これを機に誰かに使っていただけるとうれしいです(^^)
関連エントリ
LSL色付けツール
なので、バージョン1に戻してみました。
default
{
state_entry()
{
llSay(0, "ご存じ、ないのですか!? これがSyntaxHighlighterです!!");
}
}
ちなみに今までは、javascriptやcssファイルなどは、各使用者が個別にHPスペースなどにアップロードする必要があったのですが、今回からGooglePageCreatorに置いておいて、どこからでも参照できるようにしてみました。これで、いちいち別途ファイル置き場を用意しなくても、ソラマメのテンプレートからGooglePageCreatorを参照するだけで、色つけ出来るようになります。
このような使い方は、他のHP作成サービスでは、たいてい規約で禁止されていますが、GooglePageCreatorの規約を翻訳して読んでみた限りでは、特に問題ないように感じました。(もし勘違いしていたら教えてください)
使ってみたいなら、テンプレートのheadタグ内に、設定を追加しましょう。
以下、設定例です。
<head>
・・・
・・・
<!-- ▼追加部分▼ -->
<link type="text/css" rel="stylesheet" href="http://public.webkai.net/SyntaxHighlighter.css" />
<script language="javascript" src="http://public.webkai.net/shCore4SLMaMe.js"></script>
<script language="javascript" src="http://public.webkai.net/shBrushLsl.js"></script>
<script language="javascript">
window.onload = function () {
dp.SyntaxHighlighter.ClipboardSwf = 'http://public.webkai.net/clipboard.swf';
dp.SyntaxHighlighter.BloggerMode();
dp.SyntaxHighlighter.HighlightAll('code');
}
</script>
<!-- ▲追加部分▲ -->
</head>
URLのホスト名が、public.webkai.netになっていますが、これはwebkai.netというsabroが持ってるドメインをGoogle Appsに登録し、その上でGooglePageCreatorを使っているのでこうなっています。つまり、ドメインこそsabroが持っているものですが、実際のホスティングはGoogleで行われています。
テンプレートの設定追加が終わったら、あとはLSLを書く時にPreタグで囲んで、いくつか属性を設定するだけです。
↓ こんなかんじ
<pre name="code" class="lsl">
default
{
state_entry()
{
llSay(0, "ご存じ、ないのですか!? これがSyntaxHighlighterです!!");
}
}
</pre>
最近は、LSLのブログも増えたようですが、うちがマイナーなので、あんまりこのツール使っている人っていません。設置も楽になったことですので、これを機に誰かに使っていただけるとうれしいです(^^)
関連エントリ
LSL色付けツール
2008年05月26日
Tinyの宇宙展に行ってきました
今日はTinyの宇宙展開催日!!
Tiny好きなSabroには、たまらないイベントです。
また、自分はSL始めたのが去年の6月末なので、去年開催されたTinyの世界展は未見です。だから、今回のイベントは特別楽しみでした^^
到着。会場の造りがスゴくて圧倒されます。

トンネルに入ると、Tinyアバターが並べられています。どれも力作揃い!!
Tinyにタッチで説明のノートカードが見れました。

Tinyを見た後は、文化祭の出し物感覚で遊べるものが色々ありました。
下は、最近ダラダラしていて、ついに腐ってしまったSabroの図。

数あるSecondLifeイベントの中でも、ここまで心から楽しめるイベントって他にはない!! 1度は見に行くことをオススメします。
Tiny好きなSabroには、たまらないイベントです。
また、自分はSL始めたのが去年の6月末なので、去年開催されたTinyの世界展は未見です。だから、今回のイベントは特別楽しみでした^^
到着。会場の造りがスゴくて圧倒されます。

トンネルに入ると、Tinyアバターが並べられています。どれも力作揃い!!
Tinyにタッチで説明のノートカードが見れました。

Tinyを見た後は、文化祭の出し物感覚で遊べるものが色々ありました。
下は、最近ダラダラしていて、ついに腐ってしまったSabroの図。

数あるSecondLifeイベントの中でも、ここまで心から楽しめるイベントって他にはない!! 1度は見に行くことをオススメします。
2008年04月28日
ちょっと寄り道してアバター開発中
久々の更新です。
サウンド作成といっても、なかなか一朝一夕で出来るものでもないので、最近は逃避も兼ねてアバターを作っています。というのも、セカンドライフのアバターはどうしてもSpirittanの世界観と合わないので・・・。

Tinyみたいな手法で、もっとアニメチックなアバターを作って配布しようと思います。完成までは、まだ時間が掛かりそうですが、ちょっと凝った仕掛けも盛り込む予定なので、ご期待ください^^
Spirittanの方も、同時進行で開発中ですので、ご支援よろしくお願いします。
サウンド作成といっても、なかなか一朝一夕で出来るものでもないので、最近は逃避も兼ねてアバターを作っています。というのも、セカンドライフのアバターはどうしてもSpirittanの世界観と合わないので・・・。

Tinyみたいな手法で、もっとアニメチックなアバターを作って配布しようと思います。完成までは、まだ時間が掛かりそうですが、ちょっと凝った仕掛けも盛り込む予定なので、ご期待ください^^
Spirittanの方も、同時進行で開発中ですので、ご支援よろしくお願いします。
タグ :アバター
2008年03月22日
シンセサイザーの基礎
Sabroは、まだほとんどシンセサイザーは触ってないんだけど、本を読んで知識だけはあるので、今日はシンセサイザーについて解説しちゃいます^^
シンセサイザーは、昔は専用機器をそろえる必要があったのですが、現在では、シンセサイザーソフトでコンピュータ上に仮想的な機器を作り出すことにより、PC上だけで音作りが出来るようになっています。以下の画像は、シンセサイザーソフトのSynth1です。

シンセサイザーは、大きく分けると、オシレータ、フィルタ、アンプの3つの部品があり、オシレータで音の波を生成し、フィルタで余分な音を削ぎ落とし、アンプで音量調節することで音を作ります。次に、それぞれの部品について詳しく見ていきます。
オシレータ、フィルタ、アンプの他にも色々機能がありますが、これらはシンセサイザーの種類によっては付いてない場合があるので、あくまで基本はこの3つの部品だと覚えましょう。
それではっ (^^)/
シンセサイザーは、昔は専用機器をそろえる必要があったのですが、現在では、シンセサイザーソフトでコンピュータ上に仮想的な機器を作り出すことにより、PC上だけで音作りが出来るようになっています。以下の画像は、シンセサイザーソフトのSynth1です。

シンセサイザーは、大きく分けると、オシレータ、フィルタ、アンプの3つの部品があり、オシレータで音の波を生成し、フィルタで余分な音を削ぎ落とし、アンプで音量調節することで音を作ります。次に、それぞれの部品について詳しく見ていきます。
- 1.オシレータ
- 音というのは波なのですが、オシレータはこの波を生成する部品です。上記画像のオシレータの左上を見ると、いくつかの波の形が見えますよね。他にもやたらパラメータが多いですが、機能としては波形を生成するものだと覚えておいてください。画像を見て分かるようにSynth1では、オシレータが2基ついていて、波形を重ね合わせることができます。
- 2.フィルタ
- オシレータから作られた波は、高い音から低い音まで色々含んでいますが、フィルタで低い音のみ通すようにすることで、太い音にしたりといった調整ができます。低い音のみ通すフィルタをローパスフィルタと言いますが、なんとなく聞いたことがあるんじゃないでしょうか。具体的には、A、D、S、Rのつまみを弄ることでフィルタの掛かり具合を調整します。調整方法を詳しく知りたい方は、「エンベロープジェネレータ」とかで検索してみてください。
- 3.アンプ
- アンプでは音量を調整します。こちらも調整方法はフィルタと同じくエンベロープ方式です。
オシレータ、フィルタ、アンプの他にも色々機能がありますが、これらはシンセサイザーの種類によっては付いてない場合があるので、あくまで基本はこの3つの部品だと覚えましょう。
それではっ (^^)/
2008年03月18日
効果音の作り方
ゲームの要は効果音!!
ということで、今日は効果音の作り方について書いてみようと思いマッスル。実はSabroは、1ヶ月前くらいまでサウンド関連は全くの素人だったので、おかしなところは突っ込んでくださいね。
効果音を作るにも、いろいろやり方があります。今回はSabroが知ってる方法を3つ紹介。
で、今回Sabroは、シンセサイザーソフトで音を作ってみることにします。分かってきたら説明も書くかも^^
ということで、今日は効果音の作り方について書いてみようと思いマッスル。実はSabroは、1ヶ月前くらいまでサウンド関連は全くの素人だったので、おかしなところは突っ込んでくださいね。
効果音を作るにも、いろいろやり方があります。今回はSabroが知ってる方法を3つ紹介。
- 1.現実世界の音を録音する

特に技術が要らないので、お手軽な方法です。しかも、作り方によっては質の高い音が作成できます。難点としては、マイクを買わなければいけないところや、現実世界で出せない音は録音できないところが挙げられます。- 2.音素材サイトを利用する

Soundsnapなどの無料音素材サイトから、音をダウンロードする方法です。こちらも技術は特にいりません。ただ欠点も多いです。素材には一応検索用のタグが振ってあるのですが、音は検索が難しく、思い通りの音を手に入れるには根気が必要です。あと著作権にも注意する必要があります。Soundsnapでは、加工せずに販売することを除いて商用利用も可能なようですが、ライセンスは原則としてサイト毎、または素材毎に確認する必要があります。- 3.シンセサイザーで音作り

シンセサイザー、またはシンセサイザーソフトを用いて、コンピュータで音作りをする方法です(上の画像はSynth1というシンセサイザーソフト)。質の高い音を作るのは大変で、また使いこなすには技術は必要ですが、メリットもあります。例えば現実世界には存在しないような音を作成できたりします。また、努力次第で自分のイメージにかなり近い音を作り出せます。フリーのシンセサイザーソフトも多いので、パソコンの性能さえよければ、お金もかかりません。
で、今回Sabroは、シンセサイザーソフトで音を作ってみることにします。分かってきたら説明も書くかも^^
2008年03月15日
ConvertToSculptがすごすぎる件
Cattakaさん作のConvertToSculptというツールを、ちょっと前に試してみました。
ConvertToSculptで精密なスカルプ作成
ConvertToSculptを更新
結論から言うと、このツールはスゴすぎます。以前、シャープなスカルプも作れる・・・のか?で試したときは、スカルプのエッジがどうしても歪んでしまったのですが、このツールで同じ素材から生成したスカルプは、きっちりエッジが出ています。

Viewer 1.19.1(1)で撮影 左がツール使用時、右が通常のスカルプ
3Dオブジェクトをいきなりtgaで保存すると頂点がずれるので、一度x3dで出力した後に画像に変換する方式になっています。
使用手順

まずは、X3Dでのエクスポートです。作成したスカルプをBlenderで開いて、Object Modeにします。

オブジェクトを選択後、上部メニューから、File → Export → X3D Extensible 3D をクリックします。(選択したオブジェクトは、ピンクの縁取りで囲まれます)

保存するオブジェクトとして、Selected Objects...を選択。保存ビューが表示されるので、好きな場所に保存します。

エクスポートが終わったら、ConvertToSculptを起動して、Load X3Dボタンをクリック

先ほどエクスポートしたX3Dファイル選択後、情報が表示されたら、Convertをクリック

テクスチャが書き出されるので、Save PNGをクリックして完了です
スカルプやる人は、ぜひ試してみましょう^^
ConvertToSculptで精密なスカルプ作成
ConvertToSculptを更新
結論から言うと、このツールはスゴすぎます。以前、シャープなスカルプも作れる・・・のか?で試したときは、スカルプのエッジがどうしても歪んでしまったのですが、このツールで同じ素材から生成したスカルプは、きっちりエッジが出ています。

Viewer 1.19.1(1)で撮影 左がツール使用時、右が通常のスカルプ
3Dオブジェクトをいきなりtgaで保存すると頂点がずれるので、一度x3dで出力した後に画像に変換する方式になっています。
使用手順
まずは、X3Dでのエクスポートです。作成したスカルプをBlenderで開いて、Object Modeにします。
オブジェクトを選択後、上部メニューから、File → Export → X3D Extensible 3D をクリックします。(選択したオブジェクトは、ピンクの縁取りで囲まれます)

保存するオブジェクトとして、Selected Objects...を選択。保存ビューが表示されるので、好きな場所に保存します。

エクスポートが終わったら、ConvertToSculptを起動して、Load X3Dボタンをクリック

先ほどエクスポートしたX3Dファイル選択後、情報が表示されたら、Convertをクリック

テクスチャが書き出されるので、Save PNGをクリックして完了です
スカルプやる人は、ぜひ試してみましょう^^
2008年03月10日
HTML on Prim を試してみた
1.19.1RCビューワから、HTML on Prim (土地のメディアとしてHTMLページが表示できる)が実装されたと聞いて試してみました。

HTMLはリンクを押しても遷移しないし、画面をスクロールすることもできません。機能としてはまだまだのようです。ただ、注目すべきは、LSLHighlighter2が有効になっていること。簡単なJavascript、CSSであれば動作するようです。

syntaxhighlighterも有効になりました。画面はC#をハイライトしたものですが、LSLのsyntaxhighlighteも仕組みは同じなので大丈夫だと思います。
うまく使えば、インワールドでハイライトされたLSLを見ながら、ワイワイ議論できるかもしれません^^

HTMLはリンクを押しても遷移しないし、画面をスクロールすることもできません。機能としてはまだまだのようです。ただ、注目すべきは、LSLHighlighter2が有効になっていること。簡単なJavascript、CSSであれば動作するようです。

syntaxhighlighterも有効になりました。画面はC#をハイライトしたものですが、LSLのsyntaxhighlighteも仕組みは同じなので大丈夫だと思います。
うまく使えば、インワールドでハイライトされたLSLを見ながら、ワイワイ議論できるかもしれません^^
2008年03月06日
アニメーションツールの解説(自己満足用)
あまり実用度が高くない、bvhアニメーションデータエフェクターですが、制作には無駄に時間が掛かりました( つд`) そこで、自分の苦労を正当化するため、ブログのネタとして役立ててしまおうという企画ですw
処理は全てクライアントのJavascriptで行っています。使用したJavascriptライブラリは以下の2つ。
Jvnさんの影響でjQueryを初めて使ってみました。jQueryは変わってるけど使いやすいライブラリでした。DOMを抽出するセレクタに特徴があるようです。また、グラフ描画用にFlotというjQueryプラグインを使っています。値の配列と、いくつかのパラメータを指定するだけで、きれいなグラフを作ってくれてかなり助かりました。
あと肝心のbvhのフォーマット情報ですが、TMPS Wiki さんが詳しく解説されていて参考にさせてもらいました。はっきりいってbvhは、分かってしまうと簡単なので、多分慣れてくればメモ帳で微調整することも可能だと思います。
他には特に難しいことはしてなくて、フォーマットを参考にしてひたすらJavascriptで計算しているだけです。まあ、それだけに2週間かかったんですが orz
ソースは、たいへん「やっつけ感」溢れる仕上がりになっているので、参考にしないでくださいね~ ^^;
処理は全てクライアントのJavascriptで行っています。使用したJavascriptライブラリは以下の2つ。
Jvnさんの影響でjQueryを初めて使ってみました。jQueryは変わってるけど使いやすいライブラリでした。DOMを抽出するセレクタに特徴があるようです。また、グラフ描画用にFlotというjQueryプラグインを使っています。値の配列と、いくつかのパラメータを指定するだけで、きれいなグラフを作ってくれてかなり助かりました。
あと肝心のbvhのフォーマット情報ですが、TMPS Wiki さんが詳しく解説されていて参考にさせてもらいました。はっきりいってbvhは、分かってしまうと簡単なので、多分慣れてくればメモ帳で微調整することも可能だと思います。
他には特に難しいことはしてなくて、フォーマットを参考にしてひたすらJavascriptで計算しているだけです。まあ、それだけに2週間かかったんですが orz
ソースは、たいへん「やっつけ感」溢れる仕上がりになっているので、参考にしないでくださいね~ ^^;
2008年03月04日
bvhアニメーションデータエフェクター公開

以前の記事、アニメーションに自然な揺らぎを追加したいで書いた、アニメーションに揺らぎを追加するツールを自作しました。はっきりいって実用レベルには程遠いですが、一応公開しておきます。
bvhアニメーションデータエフェクター
http://webkai.net/bvheffector/index.html
アニメーションがあまりにも、きっちり機械的な動きになってしまった時に、人間らしい動きに近づけるのには使えるかもしれません。
使用方法
- 変換したいbvhデータを入力します。入力後、フォーカスを移動すると、グラフが更新されます。

- 設定をいじります。設定を変えるとグラフも変化するので、どんなエフェクトが掛かるか想像しやすいです。

- 最小値
- アニメーションの回転値に足しあわされる最小値です。
- 最大値
- アニメーションの回転値に足しあわされる最大値です。
- エフェクト頻度
- エフェクトが1回上下するのに掛かるフレーム数。
- 最初のフレームにはエフェクトをかけない
- 1フレーム目の値が必ず0.0から始まるようになります。
- 最初と最後のフレームのエフェクトを揃える(ループ用)
- 最終フレームが1フレーム目と同じ値になるように、調整されます。
- エフェクトには最大値と最小値のみ使用し、間の値は使わない
- エフェクト値が決められた最大値と最小値の間だけを往復するようになる。チェックを外すと最大値、最小値がランダムに変化する。
- エフェクト対象フレーム間をなだらかに補完する
- エフェクト値がなだらかに変化します。チェックを外すと、エフェクト頻度毎に急激に値が変化します。
- エフェクトを掛ける対象を設定します。最初からチェックが入っている対象にエフェクトを掛ければ左右非対称な動きにはならないはずです。基本的に対象の回転値にエフェクトをかけるのですが、腰だけは位置も変化します。

- 変換ボタンを押して完了です。実際にSLにアップロードする場合は、まずQAvimator等で実行して出来具合を確認しましょう。

なお、ご使用は自己責任でお願いします。
http://webkai.net/bvheffector/index.html






