MH+ Contest Board builder's kit v1.1

話しついでに作ってみた簡単・軽量・安心な所謂「コンテスト・ボード」というもので、エントリーした人に投票をして競うというスクリプトアイテムです。この手の物は多種ありますが大別して得票のみを競うタイプと金銭をPayして金額を競うタイプに分かれるんじゃないかなぁ。投票ポイントを金銭で買うタイプは得票式ではあるものの金銭の量で測ることと変わりないですね。集計以外の機能的には始めに賞金ありきのような賞金総額を提示してコンテスト上位者に自動分配する機能を持った物も多く見受けます。アメリカ的な傾向で単機能でなく合理的なアイテムで、かつ、応募者への動機付けに賞金の提示を行うというGive and Takeなところが好まれるのでしょう。

まぁ、そんな既存のコンテストボードは色々とあるでしょうけど、そういった物の中から自分の欲しい物を探すというのも大変だし、要件を満たしていると思われる物であっても難解な英文を翻訳して、もしかしたらそうかも知れないというような不安を払拭できないことから「無い物は作る」というスピリッツでこんなのでいいんじゃない?という自分仕様の得票のみのコンテストボードを作ってみました。もしかしたら既存のアイテムで同じ物があるかも知れませんが、そのような着想であり、何かを真似た物ではありませんので一般的な同種のアイテムと異なる部分もあるかも知れません。

このアイテムを作ったきっかけは、そういう流れですがbuilder's kitとして未完成の筐体にしたのは外観は各自の好みでカスタマイズして「自分仕様♪」としてほしいとの考えと、やはり弄る楽しみを味わって欲しいとの思いもあって、このような標準プリムの板で構成された外観となっています。もちろん、そのままでも実用出来ますし、構成プリムを全てMESH部品などに置き換えても正しく機能します。設計上で考慮したことは、好きなだけパネル部分を増減できることと、On REZ で即Ready! であることです。すなわち設定に必要な部分はノートカード記述式として、一端Takeして再Rezするようなポータブルの運用も可能であり、煩わしい時差によるコンテスト開催期間の開始~終了という時限を意識せず、好きなときにイベント開始し、好きなときに中断し、またまた再開してみたりと、お気楽に使えるように考慮しています。


とにかく先ずは触ってみたいという方に
こちらにDEMOとして放置設置してあるので触ってみてください。
(特にDEMO用途として特別な仕様の物ではなく、そのまま同じ物なので管理者メニューは使えません)


■とりあえずアイテムとしてコンテストボードの特徴と機能はこんなところ

・テキスト表示は全てフローティングテキスト仕様
 →キャラクターディスプレイ型のものも多く見受けますが、動作の速さと軽さ、そして手軽さはフローティングテキストの方が利便性があるでしょう。文字表示用のプリム消費もなく文字種も気にせず使えますからね。

・任意のパネル数増減可能
 →パネル部分を追加(または削除)することでエントリー数を加減出来ます。1オブジェクトのリンク可能数が最大になるのでルートプリムを1として残りの255までが最大ですが、まぁ100もあれば充分すぎるでしょう。

・1人あたりの投票数を設定可能
 →1人1票という単数でなく、1人あたりの投票の持ち点を設定できます。例えば3票まで可能としたならば、AさんとBさんとCさんのそれぞれに1票ずつ投票も出来ます。

・投票取消からの再投票もサポート
 →単に投票数を加算するだけの単純な仕組みでなく、投票者は持ち点数の範囲内で投票先を自由に変更できます。

・重複する投票も可能
 →先の「1人あたりの投票数」が複数票であるとき、重複を許可する設定にすると、例えば持ち票が3票であれば、Aさんに3票とも投票するということが可能になります。

・グループ制限にも対応
 →いわゆる「同一グループのみ操作可能」という仕掛けです。クローズドなイベントでグループ内だけにする運用や、イベント専用のPayグループでの利用などの場合にグループ制限が活用できます。

・貼付画像の面指定可能
 →KITの状態ではパネル部分は標準プリムの立方体を使用し、面番号は0面を指定していますが、既製品のMESH部品などと置き換えた際にパネル面として利用する面の番号が異なるときに、面番号を指定できます。

・自己投票の制限可能
 →設定によりエントリー者自らに投票することを制限できます

・1行コメントの登録
 →設定によりエントリー項目に文字コメントを添加できます

・受付後の画像更新可不可
 →設定によりエントリー後に登録画像の更新を制限できます

・自動フルブライト
 →設定によりエントリーされたパネル面をフルブライトにする/なにもしないを切り分けできます

・BAN設定機能
 →指定したUUIDのアバターからは操作を拒否することができます

・100%標準プリムのみ使用
 →MESHが標準なご時世になんという暴挙。しかし標準プリムが故の利点として、その場で編集が出来るし、どんな距離からも全ての人が見ることが出来ます。




■実際に表示されるメニューダイアログの解説


●管理者メニューです。
これは応募者・投票者には表示されず
所有者のみに表示されるメニューです。

本体のパネル部以外をタッチしたときに表示されます。

【開始】/【停止】 : コンテストの受付開始と停止の操作を行えます。時限でコンテスト期間xx~xx迄という仕組みは無く、操作できる状態/何も操作できない状態が切り替わるだけです。つまりは【停止】を押して一時停止させ【開始】で再開という運用が可能です。

【一覧表示】 : エントリーされたアバター名を得票の昇順でテキストで一覧表示します。ただし、同得点である場合は、同位とはならず、読み込んだ順で順位付けがされてしまいます。

《初期化》 : パネル部分のエントリー内容を全初期化、または得票のみ初期化のどちらかを実行できます。

設定読込/設定確認 : このコンテストボードは設定オプションをノートカードに記述する仕組みです。設定を書き換えたあと、「設定読込」で反映されます。現在の設定値を「設定確認」で知ることもできます。
 

初期化は「全クリア」と「投票だけクリア」の2通り

設定確認は
テキストで状態表示を行います。


●応募者のメニューです
タッチしたパネルが
エントリー前の状態の時は
【登録する】 のボタンのみ表示されます

●応募者のメニューです
エントリーすると
アバターのプロファイル画像が存在する場合は自動で登録されます。続いてフォトコンテストのように別の画像に変更する場合は、インベントリーからCTRLキーを押しながらドロップします。

【ひとこと】 : エントリーに1行メッセージを登録できます。(ボードの設定にて1行メッセージが有効の場合)

【削除する】 : エントリーを取り消します。既に投票されている得票は破棄されます。

【投票メニュー】 : 自己投票を行う為に投票メニューへ遷移します(ボードの設定にて自己投票が有効の場合)

【画像再UP】 : 登録した画像を再び更新します。(ボードの設定にて画像の更新が有効の場合のみ可能です。設定で画像更新が無効の場合はエントリー時に一度だけしか画像を登録できません)



●投票者のメニューです
応募者以外がエントリーされたパネル部にタッチすると表示されます

このエントリーに投票していない場合は、「○未投票」と表示されます

●投票者のメニューです

このエントリーに既に投票している場合は、「●投票済」と表示されます

なお、管理者アクセスの場合はパネル毎に削除用のボタンが追加表示されます

プロフ画像 : エントリー者の登録画像とプロフィールの画像を表示切り替えします。なお画像登録がされていない場合は、切り換えてもプロフィール画像が表示されたままとなります。

プロフ表示 : テキストアンカーにてエントリー者のプロフィール表示へのリンクを出力します。

投票する : このエントリーに1票、投票します。1人あたりの持ち票数まで投票可能です。この画像の場合では設定で持ち票が3となっているので、3票まで入れることが出来ます。ただし、ボードの設定において、重複投票が可能となっている場合のみ、同じエントリーに対して複数投票が可能になります。

投票の取消 : このエントリー投票した票をに1票だけ取り消します。複数票投票している場合でも1度の操作で1票しか取り消しません。持ち票数を全て投票した状態でも投票を取り消すことで持ち票数が復帰しますので別のエントリーに投票が出来るようになります。



■外観を好みに弄る

まぁお好みで仕上げてくださいって感じで特筆すべきことはないのですが
・ルート部(黄色い所)
・パネル部(白い所、初期状態では15パネル仕様)
・看板部(緑の所)
という3つの箇所に沿って補足しておきます。

◆ルート部
・プリム名称制限など特に何も無し
・内部に含むスクリプトは Board_Main と Board_Sub の2つ
・内部に含むテクスチャで、以下の2つは必須(任意の画像に置き換え可。ファイル名称は固定)
 no_entry は、空きパネルの画像です
 no_picture は、エントリーされたがアバターのプロフに画像がないときに使用されます

◆看板部(緑の所)
・体裁のために付いてるだけです。取り払ってもOK。なんの役割もありません

◆パネル部(白い所)
・プリム名称は Panel で始まる名前であれば何でも可。名称の重複も可
・プリムの概要説明の部分は一覧表示にて参照しますので他の用途で利用不可
・内部に含むスクリプトは Board_Panel の1つ
・内部に含むテクスチャは不可。(エントリー者の投稿画像の操作で消えてしまう)
・パネル部分のプリム数は制限無し。LINK可能なMAXまで対応します
・パネル部分の画像面について画像の回転と繰り返し数は設定された値を引き継ぎます
・パネル部プリムのLINK番号は参照していますが順不同で問題ありません
・パネル部プリムを増減した場合は、メインのメニューから「設定読込」を再度実行してください
・パネルの最大数やLINK番号を意識しない構造のため、コンテスト開催中に動的にパネル部を追加しても動作します(他の人が触らない条件で)




■システム的な制限やワンポイントなど

・投票可能な最大のユニークなアバター数 = 400
・1エントリー毎の最大得票数 = 400
 → 仕組み的に外部のWEBサーバーを用いず、SecondLife内のLSLのみでの実装のため、メモリー上で投票者の情報を保持するのはメモリーの上限値の制約を受けてしまいます。大きなイベントなどで投票者が上記の指標を越えることが明確な場合、利用することが出来ません。
そんなときは先着400名様まで!と、逃げ口上を用意してもいいかもねw
なお極端に表示名の長いエントリーが多いなど利用状況によっては上記の指標値以下で限界となることも予想されます。

・フローティングテキストの文字の高さはプリムの高さに比例する
 → 設定項目に「文字の高さ」として行送りを必要数分付加することで高さを変更できるようにしていますが、プリムの高さ(Z軸方向の高さ)に比例するものなので、MESH部品等で見た目の高さと数値的な高さが異なるというような条件にて柔軟に文字の高さを変えることも可能です。標準プリムの場合はプリムのスライスやプロファイルカットなどで見た目と実体を変えることも出来ます。

・画像の登録方式をUUID指定でなく実体ファイルのドロップとした理由
 → フォトコンテストなどでSecondLife外で提出された画像を流用するという場合に実体ファイルがあれば、そのままローカル環境に転用できることから利便性がよいと思ったからです。

・登録エントリーをスクロール表示(表示切換)でなく1パネル1エントリーとした理由
 → やはり単純構造こそ正義! ってところで、弄りやすさに尽きることと、コンテストですから全員とも同時に見えないと平等の条件じゃない!って気持ちからですね。

・動的にパネル部を増やせるけどプリムの位置編集はしたくないとか・・・
 → パネル部分にスクリプトを1つ含むことから、そのままだとLI数を消費してしまうのでエントリーが増えたらパネル部を増やすという流れを想定していますが単純にLI数を最初は少なく・・・という狙いや、このパネルの位置はVIPさんに予約という運用であるならば、あらかじめ「当該部分のパネル部の中身のスクリプトだけを抜いておく」ことで、そのような目的もできますね。後からパネル部のプリムを増やしたならば「設定読込」の操作を忘れずに。




■UPDATE

v 1.1 - 20190113 - ドロップ画像のfull-permチェック追加。一部のメッセージ文言変更。省メモリー化など


2019/01/14

Posted by まゆみ.H
X f B! P L

Search (in blogs)

Featured

今も続くアバターの身長問題。身長=158cmは子供ですか、そーですか。

もともとリアルサイズなアバター故にアジア圏以外が主催のSIMなどでは低身長として扱われることも少なくなかったのですが、さほど気にせず自分の好みの見た目として楽しんでいました。ところが、先日、とあるSIMを訪問した時に「身長が5フィート以下だから子供は帰りなさい」というメッ...

Picks

クリエイティブ・コモンズ・ライセンス

template by QooQ