2013年10月24日木曜日

SL用 モバイルビューワについて

とりあえずまー現存ビューワーで3D表示まで対応してるのはこいつしかありません

Android版のみです

Lumiya
https://play.google.com/store/apps/details?id=com.lumiyaviewer.lumiya


んでこいつですが
うちが使ってみた感じでは

・mesh対応
 riggedの表示も問題ない

・光源演算非対応
 ずーっとフルブライト状態なのでフェイスライト不要?w

・タッチとか座るとかは一応出来るっぽい
 面指定のタッチが出来ないので一部HUDや設置物では動作に不安がある
 モバイルビューワーを全面的に想定ならマルチサーフェス以外に
 ダイアログ等での操作が出来る仕組みが必要かも

・TP以外でのSIM越えは不可能

・IMとかチャットはある程度可能
 ダイアログ操作も可能

・sit時にコントロールイベントが拾えないっぽい
 なので自分で運転するタイプのヴィークルは全部アウト




動作に関して

・IS11T(悪名高きレグザフォンw もう会社無いからアップデートも絶望的)
 ログインしてチャットする程度ならギリギリ
 3D表示は重すぎて全く使い物にならん
 装着物等の変更はアキラメロン
 3G回線も使えるので停電時の緊急連絡等もいける

・MemoPadHD7(2013年夏発売のローエンド最新機種 通称廉価版Nexus7)
 3D表示で特にストレス無く歩ける
 服装の切り替え等も特に問題なし
 たくさん人がいる場所だとわかんないのでなんとも
 乗り物使っての移動とかはどっちにしろ無理
 外付けキーボードあればチャットとかも問題なくいけるのかねぇ まぁATOK必須だが




動作スペック的に大丈夫なら300円払う価値はあるのかもしれん
スマホでのINは画面サイズと解像度的にチャットとIMのみっぽい


あとなんかあったらコメントでよろ

以上

2013年9月23日月曜日

ヴィークルスクリプトについて(下書きそのままぶちこみ版)

tipsというかメモ書きレベルのお話

うちのスクリプト組んだ時の内容だからこのセオリーがそのまま全部使えるわけではないので
そこだけ注意

・DTCARは機能だけを参考にする
 機能的にはあれがかなり優秀なので

 pgupとpgdnでギアコントロール
 左右キーにハンドル
 前加速 後は減速と後退

 同時押しで飛行モードとかは入れるなよw

・ベーススクリプトはAelonPerkinsのRealisticCarかTerraのDIY Planeを使う
 シンプルでロジック構造にそこまで癖がないのでおすすめ

 ちなみにArlonの基礎パラメーターそのまんま使ってもほぼ問題ない

 修正すべきバグはいくつか存在するが
 そのままだとタイヤ制御周りがステアリング反応速度のボトルネックになるのと
 後進中のステアリングがぶっ壊れてるのと
 コーナリング中にブレーキングしようとすると強制カウンターステアで死ぬので
 その辺は最優先で解決する必要がある

 一番確実なのは”前進中に後キー”押された時を検出して
 その時だけはブレーキングモードにする処理系と

 タイヤ制御をコントロールイベント内部では状態フラグだけ書き換えて
 タイマーイベントでフラグ書き換わり時のみ実際の処理を行うようにする

 どうせブレーキランプとかバックランプも連動させるんだから
 状態フラグはinteger型のビットマスクに全部ぶちこんて
 messagelinkedで一括送信する仕組みにしとけ捗るぞ

・もう全部のタイヤと座席にスクリプト入れるとかするな
 ただし完全シングルスクリプトなんてもんはタダの自己満足だ

 そこ気をつけるだけで普段使いのユーザビリティーが400%くらい向上する
 あえて完全シングルスクリプトにしない理由は
 複数タイマー制御する処理とかイベントスタックとかを考慮すると
 完全シングルにするより ある程度処理系カテゴリーで分けたほうがトータルでは軽い

 といっても3~5枚程度に入るようにはしとけ

・やばいとおもった時に安全に停止出来る事が全てに優先する
 人間やばいと思った時ほど普段の癖で操作してしまう
 前後や左右の同時押しで特殊機能が発動するタイプのスクリプトは
 安全性が最優先の場合 問 題 外

 それでもそういう機能を入れたいってならデフォルトはONでも全くないから
 ”オフ出来る”ようにしとけ そんだけで随分評価が変わる

・フィーリングで迷ったら演出上はもっさりにしとけ
 イベントスタックしまくって入力反応がちょー遅いとかそういうのは問題外だが
 アクセルめいいっぱい踏み込んでももっさり加速しかしないとか
 ハンドル切れ角がMAXになるまでに時間がかかる 程度なら
 個々の車両の特性なのでドライバーがなんとかする



どうせ後で追記するだろうからとりあえずこの辺にしとく

以上

2013年8月29日木曜日

公式wikiのLSLライブラリーのお話


結構有用っぽい感じのコードがあったので適当に紹介

http://wiki.secondlife.com/wiki/LSL_Library

ただシンプルすぎて逆に使いにくいとか
コマンドのUIがあんまり親切じゃないとか
負荷コントロール周りでちょいきになるのがあったりするので

配布したり売ったりするならそこをなんとかしませう





個人的に気になったのはこれ

http://wiki.secondlife.com/wiki/Linkset_resizer_with_menu

メニュー付きのりサイズスクリプト
最大と最小の調整がソース内部で可能っぽいのと
初期に戻すって項目もあるのがいい

ただ微調整するときに毎回タッチしないといけないのがめんどいので
クローズ選択するまではダイアログがすぐに出る仕様の方が親切かも

http://wiki.secondlife.com/wiki/User:Daemonika_Nightfire/Scripts/*DS*_Resize_Script

ってかこいつが商用システムに一番近いやつか?
thisとallの選択とか位置とサイズの記録機能もあるっぽいし
説明欄使うっぽいから別スクリプトで利用してる場合は要注意





あと気になったのがあったら追記するかも

以上

2013年8月5日月曜日

SL車両 デモカーrezzer向けチェックリスト

デモカーのrezzerがある場合
最低でもここをチェックすればおkってリスト

ちなみに特定メーカーをdisする目的ではなく
あくまで走行安全性のためのチェックリストであり
これが出来ていないから全く駄目ってわけでもありませんが
少なくとも同じ車種でまともな操作系のがありゃそっちにするわな的な

キー説明

前 カーソル↑ or W
後 カーソル↓ or S
右 カーソル→ or D
左 カーソル← or A
上 PageUp     or E
下 PageDown or C



・前進中に前キー押しながら後キーを押して離してアクセルが保持されるかどうか

 これでいきなりバックはじめたりアクセルがキャンセルされるのは非常に危険です

 何故かというとSIMラグでアクセルを離したつもりになってるのに離れてないことがあり
 そういう状態で減速しようとして後キー押すと暴走事故になるため


・前進中に左右キーどちらかを押した状態で後キーを押した際に
 きちんと左右キー押している方向で旋回を継続されるかどうか

 これは上記のとの複合ですがいきなり逆向いたり
 異常なスピンモードに入ったりするのは事故につながります



・停止状態から後キー押しながら左右キーできちんと押した方向に曲がるか
 (バックギア搭載車両を除く)

 万が一壁に刺さった際の脱出や
 普段の車庫入れ等でこの操作が逆になっていると
 集中力ががストレスでマッハです


・停止時 あるいは前進中に前後キーが同時に押される際に
 前進後退停止 以外の異常な挙動をするかどうか

 いきなりウィリー開始して壁にすっ飛んでったり
 飛行モードになったりすると
 積極的な加減速で挙動を制御するサーキットやワインディングでの走行ではかなり致命的
 随伴車両が居る場合多重クラッシュの大惨事になる可能性すらあります


・shift押しながら左右キーに特殊機能が割り当てられていないかどうか

 割り当てられてるとマウスルックでの運転が出来ません
 あとキーボードのマッピングによっては該当操作が走行中に出来ません


ってなところかなー
想定外の操作をしても動かない のは仕様ですが
想定外の操作をすると暴走する は不具合やバグです 事故ります

以上

2013年6月7日金曜日

スカルプテッドプリムについて

webを適当に見た感じ日本語でまともな解説やってるサイトがほぼ無いです
あっても情報が2008年代とかで
大規模な仕様変更が2009年以降におきてるんだけど
その後のまとめ解説が見つけられなかったですよ


というわけで軽く解説



どういうものかってのを3Dやってる人ならこれでわかるって表現だと

UV座標上のピクセルにオブジェクトの位置座標を
RGBで対応させたものがスカルプです




んじゃ実際のスカルプについて適当に

まずはデータ形式から

SLの画像データは32bitのbitmap(RGBA)なので
そこから頂点精度は8bitとなります

んで昔のドキュメントだと頂点数は32*32って解説されてたと思うんですが
実際の形状データは32*32"面"ですので
頂点は33*33です

これは最初のスカルプの仕様が球体のみで
全部のポリゴン終端が収束されてる前提での仕様でした



その後ご存知の通り仕様変更がおきました


データ上33*33ですがプリムパラメータにより

球体         32*33
シリンダー 32*33
トータス     32*32
平面        33*33

とデータ解釈が行われます

其の関係でUVマップは格子状で数量固定にせざるをえないので

昔言われてた"スカルプは頂点の切り貼り厳禁"って話になるわけですな
仕様さえ理解してりゃ制限があるにはあるけど
実際にはいくらでも出来るんですけどね


昔のチュートリアル自由形状UV展開して配置して
アップロードしたものの見た目がいまいちよろしくないってのがあったと思いますが
あれはピクセルデータリード解釈についてきちんとした情報がなかった時代に
試行錯誤到達したですので
最初から仕様通りのUV頂点配置のオブジェクト作ってしまえば
綺麗なデータが作れるというお話です



次はビューワー上の実装でのお話

スカルプマップの画像は最低64*64でないと正常にリードされません
これは前記のとおり頂点解釈が33*33であるためです

んでリードされるピクセルですが
33ってことは基本一個おきリードですが片方の終端は連続リードされます
んで連続リードされる頂点ですが
SLビューワのデータリードは左下原点です

なので上端と右端が2ピクセル分連続リードされます

ってなところですな


次アス比スカルプ

現在ガチ勢が使ってるのは大抵アス比スカルプですな
LOD安定性ってことだと正方形アス比のスカルプはいまいち使いにくいので
アス比スカルプ使う場合がどうしても多くなります

アス比スカルプといっても奇数は配列に出来ないです
あとは四角面総数が1024にならないとあかんです

面数配置のリストはこんな感じ

4*256
8*128
16*64
32*32
64*16
8*128
256*4


んでもってLODについて

LODってのは要は遠距離オブジェクトのポリゴン省略して
レンダリング負荷を減らすための仕組みです

LODはちょいめんどくさい話になるんですが
アス比の場合長い方からLODがかかります

んでもって(シリンダーにした場合の)断面方向は
4頂点以下には絶対にならないようになってます
(テロとかで右クリック選択出来ないオブジェクトを使われないようにするため)
なので角材を組み合わせたオブジェクトとかは
極端なアス比スカルプのほうがいいってことになります




実際にモデリングする際のtips

テクスチャ解像度のコントロールのために
UVを調整するってのが"ほぼ"出来ません
(気合と根性で出来るっちゃ出来るけどツールと腕に依存する)
なので頂点配置数で解像度コントロールすることになります

あとはLODが弱い頂点は形状のアウトラインとしては使いものにならないので
実際に形状として使える頂点数は全体の50%から25%になります
それ以外の頂点は曲線表現の中間調点とかそんくらいの用途です

ってなところかな

あと細かい部分の質問はコメントにでも書いてもらえれば
わかる範囲で返答するかもしれません

以上

2013年4月17日水曜日

SIMオーナー向けスクリプト負荷管理のお話 Ver.0.5

まー参考データなので鵜呑みにしないこと
結局最終的には各自の判断による自己責任だ




想定はパブリックアクセスのSIM
(どうせ身内しか来ないってSIMでもアクセスコントロールしてないなら該当です
 負荷なんぞ知らんってのが本当に出来るのは
 プライベートな自宅まるまる1SIMの場合くらいです)


目標値はあくまで参考値なので
"これ以上になるとなんかあったときに色々ときつい"て数値であり
少ないなら少ないほどいいです
というか特に理由がなければギリギリまで削れってことですな


前置きとしまして
SIMのフレームタイム(遅延無しでの処理可能時間)は約22mSecです

つまりなんだかんだでこれの半分が平時負荷になってるのが理想
人が多い時でも75%程度になってりゃ不意のスパイク負荷で処理落ちとかもほぼない

  機械っちゅーのはざっくりとした数値ですが
  負荷半分になれば寿命が倍になります
  逆に負荷が倍になれば寿命はです


具体的なリミット数値に関しては
状況に合わせてかなりフレキシブルな対応が求められるため
実測データと経験からやってくだされ

とまぁ投げっぱなしにするのもアレなので代表的なリミット数値を挙げておきます
所謂BANラインってのは別でありますがまぁそこは各自の自由で


・常設物のアイドル時スクリプトタイム 1オブジェクト辺り0.05mSec以下(0.01mSec以下が理想)
・アバターのアイドル時スクリプトタイム 一名あたり0.05~0.2mSec
・アバターの装着スクリプト総数    一名あたり20~100

大体このへんです
んでアバターの方がかなり大雑把な数値なのな理由がありまして

置物のみでなら平時のスクリプトタイムが合計で5mSec切ってりゃ十分です

アバターの方は服装によってかなり振れ幅があり
ガチの軽量化特化で服装を選べる上級者連中は大丈夫なのですが

そうでない人だと
"スキンヘッドor全裸になれというのかこのやろう"
って逆切れ型のクレームのほうが面倒なので
よっぽど多人数が集まることが想定される場合を除き
ある程度はスルーしてったほうが色々と平和です

ただしガチでSIM負荷がきついときはとっととTPHOMEしてしまいましょうw




・置物について

 ガチで全部コントロールしたいなら
 全部mod可品買い入れ&自作 が正道です
 んで不要なスクリプトは全除去してしまいませう

 カラーチェンジとかマルチアニメみたいな余計な機能満載してるような家具は
 ベンチスコア取る余裕も買い直す予算もない場合、nomod品は全部無視してしまいませう

 乗り物関係もnoscriptのディスプレイモデルが同梱されていない場合
 よっぽど軽いとかでないなら常設は諦めませう

 
 んでまぁ負荷関係で一番面倒なのはクラブ関係の設備でして
 ほんとに負荷考慮だと市販品はほぼ全部アウトです
 というか普通に売ってる奴はもう世代が古すぎるってのもあります

 かといってなんも知らん一般人が制御周り自作すりゃ軽くなるかってーと
 断言しますが100%市販品と同等か更に重くなります
 なのでもうここは有名クラブでの使用実績とかで判断するしかねーです




とりあえずの対策ってことならこんなもんかね
ユーザー側の話はガチで荒れる話なのでどうすっかねぇ

以上

2013年4月14日日曜日

ヴィークル基礎 Part.1

さて不定期連載のヴィークル制作講座でもやりますかね

第一回はいきなり地上ヴィークル開発のコア知識と業界の現状からいきませう

前提条件として
・ノーマルプリムの位置 回転 拡大縮小等の編集作業が出来
・親プリム 子プリム リンクナンバーについて理解しており
・27プリム以内でタイヤ以外のオブジェクトが全て制作可能で
・なおかつXYZ軸の意味がわかることを前提とします

そこすら出来ないとドキュメント量が半端なくなりますのでw



さて今回の教材となるたった一枚の画像

まぁ選定車種や造形に対するツッコミはあえて無しの方向でw
(フルスカルプでやってもいいんだがそれやると別の問題が出る)



1.造形リンクついて

大抵ヴィークルスクリプトで
最初に引っかかるハードルが

・27プリム以内でタイヤ以外のオブジェクトが全て制作可能で

この前提条件
物理スクリプト関係の知識がないと
まずこれを256プリム限界まで使い切ってしまうのですよ
んでそこから入れても動かないって相談がされるわけです

なのでまず27プリムで車体を作れるようなりませう




んでまぁここクリアすればもう完成したも同然でして
極端な例としましては

"既に走行可能状態になっているフルパーミッションの車両"
を入手してきてルートプリムとホイールだけの状態にして
向きと位置を合わせて車体をリンクするだけです


現在フルパーで流通してる世代の車両は
4年以上前に様式が既に完成しており
ホイールとルートプリムにスクリプトを入れるだけで動きます


・・・とまぁここまでが
"とりあえず走るようになるまで"のテンプレです
ここまで出来るようになってからこの先を読みませう





2.ヴィークルスクリプトについて

とりまwikiのURLを

http://wiki.secondlife.com/wiki/Category:LSL_Vehicle

まー色々と中間理論は端折りますが要点は以下に示す通りです


・SLヴィークルの基本的な計算式は
 速度÷加速時間=パワー
たったこんだけです 車体重量は加速するだけなら一切関係ありません


つまり馬力を上げまくればとりあえずパワーが出るなんてヌルいもんではありませんが
物理仕様の限界以内ならどんな車体でも最大900km/hまで安定して加速できます


んでSLヴィークルはルートプリムの回転と軸が重要でして

・X+方向を正面
・Z+方向を上面

これを守らないとまっすぐ走れません


ってな部分が基礎です
正直これ以上はユーザーの好みが関係するファクターが多すぎるので
気になった箇所からwikiで関数見ながら調整していく方法が正道です





3.実走行に関係するパラメーターについて


こっから先は更に上級者向けというか

ある程度リアル車両あるいはドライビングシミューレタでの
運転やセッティング出しが出来る前提の話になります

・旋回力パラメーターについて
 大抵のスクリプトだと”わかりやすく”するために定数でヘッダ領域についてますが
 DTCARとかだと想定がせいぜい普通車の時速60キロくらいまでです


 ってのがデジタル入力だと40キロから120キロくらいまでの

 まっすぐ走るために必要な修正舵が入れづらいので

 速度が上がるほど反応が鈍くなる数式の方が扱いやすいのです
 "とりあえず減速すりゃ安全"ってわかりやすいですしね
 そして低速域ではステアリング切れ角がある程度大きくなり
 転回等の小回りも可能になります
 無闇に上げるとどうしようもなくなりますので注意

・トーとキャンバーについて
 トーを"アクセルON時の直進安定性" キャンバーを"ステアリングの初期反応"とするならば
 それに相当するパラメータが一応存在します
 ただし調整のやり方はちょいと特殊で
 ”減衰時間"をダイレクトに指定する感じになりますので

 ある程度走りながら出す感じになります

・車体重量と重心、当たり判定について
 SLヴィークルにはいわゆるショックアブソーバーやサスペンションがありませんので
 "パワーがかかって居ないとき”の挙動は重量や重心位置、当たり判定の形状で決まります

 まーいろんなパラメータから逆算でパワー与えてゴリ押ししてもいいのですが
 このへんもある程度経験から出せるようになりませう






こっから下は碌なこと書いてないので 
  読み飛ばしてもらって結構


・4実際のカースクリプト


 まーご存知の方は知っての通り
 いわゆるサーキットSIMでは300キロオーバー領域まである
 "レーシングカー"が人気で主流です

 で、

  まぁそういうのは
  DTのベースでギアと旋回力のパラメーター”だけ”アホみたいに上げた奴で
  低速ぐるぐるしすぎの割には、高速域もそこまで曲がるわけでもなく
  核パルスエンジンでも使ってんじゃねーかってレベルの鬼加速です


 んなもん乗ってられっかってなるのは自明の理なわけですが
 そんなもんがもう4年以上未だに”トップシェア”を守ってるのは
 "他のスクリプトが調達できないから"なわけです
 まぁ理由とかはその業界詳しい人にinworldで聞いてください
 二時間くらいかけてたっぷり聞かされます


・5ヴィークル業界の今後?

 正直まぁ今から新規でヴィークルメーカー立ち上げるのは
 あんまりオススメ出来ませんが

 ほんとに自分が欲しいヴィークルは自作するか作ってもらうしかありません

 んでもって地上ヴィークルのスクリプトは完全自作以外の方法がほぼありませんので
 そこだけは一応覚悟してもらう方向になるのかなと



ってなところかね

以上