Walker Support Center

作って遊ぼう リボルバー拳銃


2023/09/16

Kero Nishi
Suppot Center Workshop



はじめに

Secondlife には戦争ごっこができる環境があります。

■ 現実の戦闘と同じように、Second Life にもさまざまな武器があります。
  1. 近接武器
    爪とかナイフとか剣とかライトセイバーとか、格闘戦の武器です。火炎放射器もこの分類に入るようです。
    装着物はファントムになるため、武器とアバタの接触判定はできません。
    そのため、武器らしく動作させるためにはいろいろ工夫が必要になります。
    さぽせんイベントでは、ボクシング、ポッキーバトル、さぽ大戦などが相当します。
  2. 遠距離武器
    銃とか弓とかバズーカ砲とか大砲とか雪玉とか手榴弾とか、弾丸や矢を飛ばす武器です。
    ジョークっぽい武器として、ドーナツとか西瓜などを飛ばすのもありますね。
    さぽせんイベントではゾンビ退治、烏賊退治、エアバトルなどが相当します。
  3. その他
    地雷とかミサイルとか核兵器とか、いろいろあるようです。
■ 武器によるアバタへの攻撃は、次のようなものがあります。
  1. ダメージ
    ダメージ有効の地域でライフを削ります。
    ライフが 0 になるとホームに飛ばされます。
    高いところから落ちてもライフは減ります。時間がたてば回復します。
  2. プッシュ
    アバタや物理属性のオブジェクトに衝突するだけでも押されますが、スクリプトを使って、激しく吹き飛ばすことができます。
  3. 動けなくする
    檻に入れて監禁します。

ダメージが有効な場所では、ビュワー上部に ♥ とライフの状態が表示されます。
また、プッシュが制限されている場所ではプッシュ禁止マークが表示されます。

リンデンの用意している戦闘システム(LLCS)だけでなく、ユーザーが自由に戦闘システムを作ることができます。
DSC とか VICE とかが有名ですが、MeltingDots イベントでもボクシングとかポッキーバトルとか独自の戦闘システムを作って遊んでいます。
また、行動を制限する RLV というシステムもあります。BDSM 界隈でよく使われているようです。





PART I - 銃を作ろう

きょうは拳銃を作ります。

■ ご注意

最初にご注意申し上げます。この銃は、土地の設定次第で、アバタを吹き飛ばしたりホームにTPさせたりできますが、決して悪用しないでください。
相手の同意なき攻撃は、シムから BAN されるだけでなく、Linden にアカウントを停止される場合もあります。


■ キットの中身

フルパの銃を用意しました。中には何も入っていません。
これにスクリプトを入れて、「使える」銃にしていきます。 乗り物もそうですが、とりあえずREZした生プリムにスクリプト入れるだけでも動作してしまいます。

Revolver Making Kit フォルダに入っているものは、次の通りです。
1〜7 が制作関係のあれこれ、8〜11は完成後のゲームで使うものです。

Revolverobject拳銃のオブジェクトです。
revolver facestexture銃の面を示しています。
gun scriptscript拳銃のスクリプトです。
GunShot-SWsound銃声の音声データです。
bullet scriptscript弾丸のスクリプトです。
pose HUDobject構える位置の調整用 HUDです。
Revolver Sampleobject拳銃の完成サンプルです。
Red Team Tagobject赤チームの識別タグです。
Blue Team Tagobject青チームの識別タグです。
 10 Red Team Baselandmark赤チーム基地のランドマークです。
 11 Blue Team Baselandmark青チーム基地のランドマークです。
 12 instructionsnotecardこの説明書です。


■ 銃の塗装

  1. フォルダの中の Revolver というオブジェクトを作業台の上にドラッグして REZします。


  2. このオブジェクトは5つのプリムがリンクされていて、それぞれひとつの面で構成されています。
    この5つのパーツごとに別の色やテクスチャを設定することができます。
    revolver faces にパーツ面を色分けして示しています。


  3. 銃を右クリックして、「編集」を選択し、編集画面を出してみましょう。


  4. 編集の「リンク部分を編集」または「面の選択」にチェックを入れ、銃のパーツをクリックして、編集対象とします。


  5. 色を変えてみましょう。
    全部同じ色でも、またデフォルトのままでも問題はありません。
    輝きをつけると金属っぽくなります。


  6. 出来上がったら、Revolver-Kero のように、他の持ち物と区別できる名前をつけて自分の持ち物の中に取ります。
    インベントリの Revolver Making Kit フォルダに入ります。



■ 弾丸を作る

  1. 新規制作の画面から「球」のアイコンを選び、床をクリックすると、玉が出現します。


  2. サイズを X=0.05, Y=0.05, Z=0.05 にします。
    直径 5cm のボールになります。これを弾丸にします。
    実際の弾丸はもっと小さいですが、飛んでいくのが見えると楽しいので、このくらいのサイズで作ってみましょう。
    さらに、デフォルトの板テクスチャをクリックしてブランクにしてから、好きな色に変え、輝きをつけて金属っぽくしてみましょう。


  3. 「編集」から「内容」タブを開け、制作キットフォルダの bullet script をドラッグします。
    弾丸の名前を Bullet とか Ball とか適当につけておきます。


  4. 「物理」と「臨時」にチェックを入れて、取ります。
    臨時にチェックを入れると約 1分で消滅してしまいますので、手早く取りしましょう。
    この時、編集状態のまま取ると消えずにすむようです。


    臨時プリムは地域のプリム上限とは別にカウントされるとか、放置していてても勝手に消滅するとか、
    消滅してもインベントリに戻ってこないとか、いろいろ便利なのです。
    取った弾丸は、オブジェクトフォルダの中に入ります。
    今のうちに Revolver Making Kit フォルダに移しておくと、あとで探すのが楽になるかも知れません。


■ 装着位置を調整

  1. インベントリの、さきほど保存した銃を右クリックして、装着−右手 を選択します。

  2. Pose HUD を装着します。画面中央上部に表示されます。

  3. "HOLD" をクリックすると銃を構えたポーズになります。
    "AIM" をクリックすると狙うポーズになります。
    "STOP" は上記のポーズを解除します。


  4. "HOLD" は、"hold_r_handgun"、"AIM" は、"aim_r_handgun" という組み込みアニメを使っているので、別途アニメのデータを用意する必要はありません。
    また、"hold_r_handgun" を発動してマウスルックにすると、自動的に "aim_r_handgun" に移行するようになっています。
    どちらのポーズでも見栄えがするように、銃の装着位置、回転を調整しましょう。
    所詮 SLのことなので、あんまり神経質になる必要はありません。
    座標系をアタッチメントじゃなくてローカルにすると調整しやすいと思います。

  5. 銃は大きさを変えることもできます。
    ポーズを気にしなければ、頭とか股間とか変態的な装着も可能ですが、お勧めはしません。


■ 銃に弾丸をこめる

  1. 銃を右クリックして、編集から内容タブを開け、先ほど take した弾丸を入れます。

  2. 同様に gun script と GunShot-SW を入れ、スクリプトをリセットします。


    これで準備完了です。


■ 試射

  1. ここまでできたら、会場隣りの試射場に行きましょう。


  2. 標的は円盤と缶の 2種用意しました。
    円盤標的は、当たったところに黒いピンが表示されます。
    缶は、5個 rez されますが、全部落としたら新たに 5個 rezされます。
    混雑してきたら、占有せずに、やさしく後の人に譲りましょう。

  3. マウスルックにして左クリックで弾丸が出るかどうか確認します。
    くれぐれも、人に向けて撃たないように (サルならいいという意味ではありません)。

  4. 銃をクリックするとメニューが出ます。
    ダメージ、プッシュそれぞれ 無、弱、強 の 3段階がプリセットされています。
    上段がプッシュで、下段がダメージです。

  5. 会場はダメージ無効にしているので、殺戮効果はありません。
    試射場の区画(緑の床のところ)は、プッシュ有効になっています。 なるべく人に向けて使わないようにしましょう (サルならいいという意味ではありません)。


■ 調整

  1. 照準が上下にぶれるときは、スクリプトの6行めを書き換えます。

    float aim_offset    = 0.75;             // 照準高さ調整
    	
    デフォルトで 0.75 が設定されていますが、これはアバタの中心(腰)から目までの距離(m) を表しているようです。知らんけど。
    弾丸が下にぶれるときはこの数値を大きく、上にぶれるときは小さくします。
    数値を変えたら「保存」ボタンを押して、エラーがないのを確認しましょう。


  2. スクリプトは、いくらでも書き換え可能ですが、素人さんは 16行め以降は触らない方が幸せだと思います。

  3. 弾丸の速度は、初期値として 15m/秒 としています。
    実際の拳銃弾は 400m/秒 くらいの速さだそうですが、SLでは速くし過ぎると処理が追いつかず、ターゲットをすり抜けてしまいます。


配布条件

  1. この銃のモデルは譲渡可になっていますが、コピー不可とか編集不可とか譲渡不可とかの制限をつけて配布することは禁止されています。 配布するときは、フルパのまま譲渡してください。

  2. スクリプトも同様にフルパのまま配布してください。また、0L$ 以外の販売は禁止します。



PART II - サバイバルゲーム

全員用意ができたら、二組に分かれてサバイバルゲームをしましょう。
敵陣の旗を先に取った(旗の上の玉に衝突)チームが勝ちです。

  1. 赤軍と青軍に、チーム分けを行います。

  2. 制作した銃を装着しましょう。
    制作が間に合わなかった方は、Revolver Making Kit フォルダの中の Revolver Sample をお使いください。

  3. さらに、赤チームは Red Team Tag、青チームは Blue Team Tag を追加装着してください。

  4. それぞれの基地に移動してください。LM がキットの中にあります。

  5. 銃をクリックしてプッシュとダメージを設定します。
    きっとみんな最強にするんだろうな。

  6. プッシュ・ダメージ有効にしますので、死んでホームに飛ばされたら、それぞれの基地に LM で戻ってきてください。
    勝負がつくまで何度でも再出撃可とします。

  7. Team Tag は gigaphone を兼ねています。
    赤チーム、青チームそれぞれの内部だけで通話ができますので、遠くから敵に作戦を悟られる心配はありません。
    20m以内なら筒抜けですが。
    ちなみに、スタッフは両チームと通話できる gigaphone を装備しています。

  8. ゲームマスターの合図で、戦闘を始めてください。
    敵兵を倒すことではなく、敵陣の旗を取る(旗の上の玉にぶつかったら取ったとみなします) ことが目的です。
    しかし、敵を吹き飛ばしたり撃ち殺すのは快感でもあります。うひひ。
    弾丸は敵味方を区別しませんので、味方を撃たないよう、注意してください(サルならいいという意味ではありません)。
    どちらかの旗が落とされたらゲームセットとなります。

  9. 時間があれば、陣地を交代して 2回戦をします。






今回使ったキットは、のちほど MeltingDots のサンドボックスに置いておきます。

http://maps.secondlife.com/secondlife/MeltingDots/3/36/21

銃のモデルは、改造コピー配布自由の "^UP^ Full Perm Mesh Gun" です。下記から 1L$ で購入できます。

https://marketplace.secondlife.com/p/UP-Full-Perm-Mesh-Gun/13703799

MeltingDots のサンドボックスでは武器禁止です。
プッシュやダメージのテストをしたい場合は、武器専用のサンドボックスがありますので、こちらをご利用ください。
危険な場所です。殺されても泣かないこと。

https://maps.secondlife.com/secondlife/Combat%20(sandbox)%20Rausch/172/163/22

second life の戦闘システムや武器については、下記をご参照ください。

https://wiki.secondlife.com/wiki/Combat
https://wiki.secondlife.com/wiki/Combat/Systems
https://wiki.secondlife.com/wiki/Weapon
https://swrp.fandom.com/wiki/Combat_system