2017年12月3日日曜日

RayCastとか呼ばれてるllCastRayのお話 乗り物向け

前に書いたのが出てすぐくらいだったので改めて書くかなぁという感じで
 
とりあえずリファレンスになるようなヴィークルがあるといいいんだけど
知ってる限りではこいつくらいしかないんだよなぁ



処理の考え方 とりあえず路面追従のみする場合

・とりあえず速度ベクトルから”未来のタイヤ位置”を調べる
 
 この辺はタイヤの位置と角度の制御がセントラルコントロールだと楽です
 計算に必要なパラメータが全部揃ってるのでちょー簡単

 で、ルートプリムの位置と 回転と 速度ベクトルを調べて
 1フレーム(約0.035秒)後のタイヤの位置座標を計算します
 単純に速度ベクトルを0.035倍するだけでOK

・RCを実行する
 
 でそのタイヤ位置から
 ローカル座標系(ルートプリムをゼロ位置ゼロ回転とする座標系)で
 それぞれのタイヤの未来位置から
 Z軸のプラス50センチからZ軸のマイナス1mに向かってllCastRayを実行する
 検出の最大数は 子プリム検出とかしないなら最大でも2でいい
 UUIDはルートプリムのものを拾うようにしとくと
 自社検出を効果的にフィルタリング出来るはずだ

 ノーマルのベクトルはいらん どうせ使わん

 これを変換すればタイヤの未来位置における”接地面までの高さ”が出る


・タイヤをストロークさせる
 理想的なサスペンションシステムは
 車体をロールさせずに完全に垂直にストロークするので
 とりあえずタイヤのストローク位置はRCの数値そのままオフセットすればOK

 ストローク量が一定以上の場合は
 フルバンプとフルリバウンドの位置で止める処理入れとくとええ


ソースを使わず大体の流れをまとめると大体こんな感じ


サンプルコード書くとタイヤ位置ごとにRCを実行して高さをfloatで返すだけの関数を
4回実行するだけでいけるからちょー簡単なんだけど

ルートプリムからのタイヤの初期位置 の定義が無いとそこが厄介なのよねぇ





でもって荷重移動を足す

でまぁ これに荷重移動によるサスペンションストロークを足したいってなるわな?
ストローク最終決定する前にRCの生データを足せばOK 簡単だな


タイヤ”だけ”を考慮した場合はこれでいい





でまぁこれが一番厄介な箇所になるんだけど

実際のところほとんどのSLの地上ヴィークルには
当たり判定のための通称"ソリ"がついているのだ

こいつを4輪がまともに接地するように調整するのがまぁかなり厄介なんだけど

ピッチングのみを制御するならまだなんとかなる
ローリングのみでもまぁなんとかなるな

複合した場合
タイヤ4つが同時に接する”ソリ”の回転と位置を合わせることになるんだけど

むしろソリを回転させてから
それに合わせてホイールをストロークさせたほうが楽だな

となると さっきのRCの計算ともちょっと違うねぇ

でそのホイールのストロークでもサスペンションのフルバンプは出るわな?
でそうなった場合挙動にリミットがかかるわけかんだけど

その辺はピッチとロールの数値で直接リミッターかけたほうが多分楽だよなぁ

底辺と角度が決まってるからArcCosでRだしてからのRsinθか?
この辺の式は整理すればもうちょいわかりやすい構造になるはずだけどなぁ

ああ普通に tanθx(底辺Y) でストローク出るかいけるじゃん

変に合成ベクトルでやろうとしなけりゃいけるな


大体の考え方はこれでいけるはずだから
後は誰かが頑張って実装してください だなぁ


計算の順序は ソリをピッチとロールさせて
それに合わせて4輪のストローク量を決定して

そこから更に接地分を足す と



んでこれ前荷重状態で地面がなくなった時の挙動が厄介か? いやそうでもねぇか
ある程度真面目に方程式を解けば
イニシャルDでやってた インの前輪だけ浮かすコーナリングとか
あのへんも実現出来そうではあるな



これで合ってるかどうかは実装してみんとわからんなぁ



ちなみにもっと雑な実装方法もなきにしもあらず
"ソリ"を先に回転させてコリジョンで挙動安定してから
RCで接地計測するの
時速20キロくらいまでならこういうガバガバ実装でもそこまで違和感出ないはずだ?

とりあえずこの辺かねぇ

以上

2017年12月2日土曜日

スクリプトから見た イベント時のSIMパフォーマンス改善方法について

まぁ2017年が終わるのに今更そんなカビの生えたネタかよみたいなところはありますが
 
未だに"ヌルい"運営してるところが結構あるという話を伝え聞きますので
今一度最新のトレンドも込で年末イベント向けのパフォーマンス改善の話とします
 
 
ちょー雑にチェックポイント

・SIMFPSが44.0を下回るとヤバイ
・SIMのスクリプトタイムが10を超えるとヤバイ
・軽くしたいならビジターは全員座らせろ

・装着スクリプト負荷のチェックは必須
 スクリプト総数15枚 スクリプトタイム0.05ミリ秒以内が目安

・アパレルで一着に3枚以上のスクリプトが入ってるのは異常と知れ
 特に今時パーツ単位でのリサイズやカラーチェンジのため"だけ"
 パーツ単位でスクリプトが入ってるのはおかしい
 5年以上前には既に入れなくてよくなってる

・スタッフやオーナーやメイン演者だから
 重くていいという道理は 無い
 特にオーナーとスタッフは
 ビジターに対する模範として徹底的に軽くしろ

・いくらそのSIMに取って重要な住民だろうと重いのはやめさせろ
 そいつのためだけにSIMを沈めるだけの覚悟があるなら別だが




んじゃ詳細

ctrl+shift+1を押して出る統計情報から

まず平時のチェック項目

・SIMFPSの確認
 44.0を切るようならアカンです
 逆に1.0くらいは割と色々な条件で落ちます

・アクティブなスクリプト
 大雑把に3000切ることを目指しませう

 普段土地レンタルしている土地ならスクリプト数は
 土地プリムの20%程度を目安に減らすことを目標としませう

 200プリムなら40程度 

・スクリプト実行
 ここが常に100%になることを最低条件とします

・時間
 常にフレーム合計時間が22.200ミリ秒を超える場合何かがおかしいです
 
 スクリプト時間 は10ミリ秒切ってることが最低条件
 ほんとは3くらいにしときたいんだけどねぇ

 逆に スクリプト時間と余暇 とフレーム時間合計 以外が
 1.0を超えるのも割とまずいです


・スタッフ・住民・常連客の装着スクリプト数とスクリプトタイム
 装着スクリプト数は平時で50枚未満 イベント中は20枚未満
 スクリプトタイムは0.1ミリ秒を切りませう
 0.1超えてる時点でスタッフとしては重すぎます
 ほんとは0.05切りたいところだけど最近だとちょっとむずかしい

 消費メモリは多少参考になるけど
 スクリプト数が多けりゃ普通にアカン数値になるので
 基本的にはスクリプト数とスクリプトタイムを観測すること

でまぁこの辺のチェック項目で一つでもボーダー越えたらアウトです




イベント時のチェック項目

・ビジターのスクリプト数とスクリプトタイム
 実際のところスクリプト数が150枚越えてたら問答無用でTPHOME対象
 警告してダメならBANでもOK
 それを理由にテロリストになる可能性はあるけど
 そったらそれはそれでARする理由になるのでOK

 50枚超えてる程度なら
 軽量化にご協力ください
 不要なHUD等を外してください
 という感じの"お願い"すりゃええ

 ほんとの理想は来客全員完全ゼロスクリプトではあるんだけど
 そんなことしたら服装の選択肢が極端に狭まる上に
 イベントの性質によってはそれが不可能な場合が多いので

 最低限のAOとかその辺の装着を許可した場合
 15枚くらいが最大値かなという感じ
 スクリプトタイムは0.06ミリ秒くらいまでは大目に見ませう

 超えるやつは両方共大幅に超えちゃうので個別対応でいい


・監視スタッフとしてのエスマネの有効性
 正直エスマネの上位スクリプト が使えないと
 イベント中のリアルタイム監視は無理HUDタイプの監視スクリプトは止まる
 ライブパフォーマンス系のイベントなら最低一人はエスマネが常駐しませう
 
 ある程度期間のあるイベントの場合は各種自動監視スクリプトを活用しませう




有用なスクリプト命令群

まず装着物一覧がUUIDで取得できる関数 HUDを除く
http://wiki.secondlife.com/wiki/LlGetAttachedList

からの 個別オブジェクトのスクリプト数 スクリプトタイム 等の取得
http://wiki.secondlife.com/wiki/LlGetObjectDetails

OBJECT_NAME,OBJECT_RUNNING_SCRIPT_COUNT,
OBJECT_TOTAL_SCRIPT_COUNT,OBJECT_SCRIPT_TIME

この辺取得すりゃ十分だな
これ使ったセキュリティーゲートを通ること自体を
プライバシーの侵害云々でゴネるようならお帰り願うしかないなぁ

ちなみに装着HUDの一覧は取得できないので
アバター全体から HUD以外の装着物の数値を引いたものが
HUDのスクリプト量になる

チェックタイミングは

これを使って通過時にすればOK セキュリティーゲート風にしときゃええな



2017年11月10日金曜日

SL用にハイエンドPC組んでもあんまりパフォーマンス上がらない理由

VR用にグラボをGTX1060入れました VRAMはもちろん最大の6G

コスパ厨なら3万切る3Gモデルでも問題はないんだけど
まぁ大体経験上VRAM少ないグラボで碌な目に会ってないので

んでまぁSLクライアントでむやみにハイエンドなグラボやSSDを入れても
全体のパフォーマンスアップが頭打ちになるどころか
ボーダー超えるとCPUとGPUが寝るようになる現象について

大体の結論みたいなもんが出た
 
ボトルネックになってるのはGPUでもCPUでもなく
恐らくGPUでレンダリング可能なデータに変換する周りの
レンダーパイプライン周りの処理がボトルネックだ
 
なのでレンダリングエンジン自体の
根本的なアップデートがないとパフォーマンスアップは不可能というとりあえずの結論 

でまぁFPS上げたかったら描画距離を256までにしろってことのようだ




じゃぁなんでそんなことになるのかというと

とりあえずLLが想定してる標準的なレンダリング距離は256mのようだ

描画距離が2倍になるとレンダリング対象オブジェクトの処理量が
単純計算でもにXYZ軸で8倍になり
(実際の具体的な数値はもうちょい小さいはずだ)
 
どうもなんかそのへんの処理で”細かい大量のオブジェクト”の処理が
どんどん肥大化してクソオモになるらしい?

 
でまぁSLのオブジェクトは
そんな処理をするための最適化されたモデルになってるわけでもないので
描画距離を伸ばすと指数関数的に処理が増大することでひっかかる原因になるようだ

実際描画距離を絞るだけでCPU使用率とGPU使用率が上昇して
FPSも16切るくらいから30以上まで上昇する



でまぁ多分これ”画角”に対するレンダリング省略処理を入れることで
解決しようとするのがセオリーなんだろうけど
というか今も隠れたオブジェクトのレンダリング省略は入ってるんだが

描画距離を一定ボーダー以上にすると
どうもそれ以前の領域での処理量がえらいこっちゃになるっぽい


でまぁそこを解決する手段なんだけど
多分SLクライアントが本格的にマルチスレッドとか
リクエスト数リミット周りの上限対応すりゃいけんじゃねぇの?知らんけど


ちなみに根本的な解決にならなかったのは以下の通り

・最新のハイエンドCPUへの換装(CPU使用率が寝る)
・最新のハイエンドGPUへの換装(GPU使用率が寝る)
・M.2SSDへの換装(全体的なパフォーマンスアップにはなったがFPS改善せず)


もちろんこの辺が完全に無意味ってわけでもなく
フリッカーさんとかだとレタッチやらで十分なパフォーマンスアップがあるし
動画撮影や編集でのかなりの速度アップが望めるので

ある程度最新のCPUにしてSSDと大容量メモリを搭載して
3万円前後のまともなグラフィックボードにすることは
現在移動すら辛くてビューワーがクラッシュしまくるような状況では
十二分に効果的なのでそこは誤解なきよう



以上

2017年11月8日水曜日

SANSARまともに体験したいならVRHMDをカウノデス

やはりVRHMD所有前提のインターフェースだった


でまぁSANSARのためだけに買うならRIFTの方がええんだけど
直販で一週間以上待つ覚悟とか色々考慮するとVIVEでもいい
 
ただVIVEをAmazonでまともなルート購入が 現在は不可能なんだよなぁと
 


新品で103000円は明らかにおかしい値付け
というかマケプレ出品なのでサポートつかないんじゃねぇかな

色々気にする人は ツクモのネットショップで買っとけ 確実だ

VIVE Kit 99HAHZ049-00 《送料無料》 TSUKUMOネットショップ

RIFTも並行輸入品でも作動自体は出来るらしい?との情報がある
初期不良とか修理対応で詰むので ガチで急ぐ人向けかなと

多少割高だし直販以外は基本
壊れたらジャンク屋逝きにしかならんのでかなりハイリスクだけど



直販はこ↑こ↓
https://www.oculus.com/rift/

というわけでSANSARをVRHMDでやった感想 について


・とりあえずHMDつけずにアポロミュージアム行け ロード終わってからHMDつけろ
 初期ロードが大体一時間かかる上にバックグラウンドロードもないけど 耐えろ

 あそこがSANSARで体験できることのほぼ全てだ
 宇宙船とロケットが全部実寸なので十分博物館行く代わりになる

・アトラス内の”つかめる”オブジェクトはやはりハンドセット持ってる前提だった
 RIFTだと対象物をポイントして黄色い枠が出たらサイドトリガーで拾える
 投げるモーションの加速具合は結構ピーキーと言うか十分強いので
 別にフルスイングしなくてもOK

・移動は割りとVRで標準的な方法
 ルームスケールじゃなくてもOK
 スティックでポイントすると放物線でマーカーが出る方式と
 スティック自体である程度平行移動が出来る


・初めて訪れるアトラスは全部ローディングで固まる
 これバックグラウンドロード とか 予約ロードが出来れば随分違うんだが
 そういうのが一切出来ないのでもう致命的な欠陥レベル
 steamVRでもOculusHOmeでもバックグラウンドロードくらいは出来たぞ

・VR Readyならとりあえず全アトラス大丈夫?
 使ってるグラボがVR Readyじゃないのでカクついてるっぽいのだ
 グラボアップデートしたらまた見に行ってみるかねぇという感じ


大体この辺かなぁ
とりあえずVR Readyの最低ラインであるGTX1060 6Gのグラボは以下の通り

コスパ厨に受けがいい3Gモデルでは多分ムリなので
モデル選定に対して出力可能枚数とファン数を重視した

シングルファンモデルはケースサイズで物理的に入らない場合を除き
積極的に選ぶ対象にはならん




以上

2017年8月25日金曜日

SLRRモーターコア関係での問題解決メモ

今回の話の要点

・問題
 子プリムとルートプリムを同じ位置に配置して
 子プリムでセンサーを実行した場合
 ルートプリムで実行した場合と挙動に差が出る

 具体的には完全に同じ座標にある別オブジェクトが
 子プリムでは検出できない ルートプリムでは検出可能


・解決策
 子プリムの位置を極小距離オフセットすることで解決



じゃ本編


○はじめに

SLRRで車体を回転せずに後退させるために必要な措置についての解決


要はルートプリムと同じ座標に回転するセンサー置いて

そいつで計算させた結果を使って全体を移動すれば
その場で車体を180度旋回させるなんてクッソダサい動きしなくていいわけよ

ルート以外全部回転させるって荒業も前には試したけど
SIMラグがひどいときとかはトランスフォームに数秒かかってて
結局180度回転させるのとあんま変わらんじゃんみたいな


でまこの仕組を路面電車リリースした後に移植作業してたんだけど
で致命的な問題が出て正常に作動してなかったのが
今回動くようになりました ヤッタネ


○現象

停止位置マーカーに到着した際の不可解な挙動

具体的には ルートプリムでセンサーを実行している際には
座標的に完全に重なっている別オブジェクトをセンサーで検出出来ていたんだが

(これは到着オブジェクトが停止マーカーかどうかを検出させるルーチンで一番重要)

子プリムではゼロ点で重なっている別オブジェクトをセンサーで検出出来ない

(これ多分厳密には座標系が違うとかそういう関係の話だと思うが未検証)

○解決策

センサープリムを進行方向に対して0.001m後ろにオフセットすることで解決


以上

2017年8月21日月曜日

SANSARについて 雑に

とりあえず結論としては

現状VRHMD持ってないなら行っても実質的に移動以外何もできん上に
要求PCスペックも高いので一般消費者が行ってまだどうこうなるものではない

んでもって新しもの好きの純粋消費者にとってはSL2になるかもしれんが
既存ユーザーにとってSLの代わりになるものでもない というか別物



じゃ適当に解説


○まずSANSARのプラットフォームとしての立ち位置

初期は次期SLとかNGPとか言われてたやつのようだ
SLのシステム上のネガというか
主にグラフィックのアップデートに関する障壁を取っ払って
よりリッチなコンテンツによるエクスペリエンスを目指したようなんだけど

ゲームエンジンのライセンス周りとかコンテンツ供給者との
すり合わせがうまくいかなかったっぽい

でまぁVRHMDが流行ったのでそっち方面に舵を切ったと



そういう部分では ある意味2007年あたりのSLと似てるんだよな

当時の"ハイスペックパソコン”の使いみちの一つだったり
現在のバーチャルマネーブームの流れだったり

とにかく最新の流行りのガジェットの”使いみち”の一つという感じ

2007年当時のゲーミングPCがSANSARにおけるVRHMDだな



○入れるステージ(Atlas)の中身について

まぁSIMエッジが無くなって
オブジェクトが全部ゲームレディのmeshデータになったSLという感じ

ほんともうぶっちゃけて言っちゃうとVR対応したBlueMarsだもう
カメラ回転の制限がきついところとか
最初にAtlasのデータ全部ダウンロードさせられるところとか
ランディングがAtlas選択なところとかがモロだ

Atlasのデータがバックグラウンドでダウンロードできねーのに
一回マップがローディングになると一時間ほどなんも操作できなくなるので
これはもう致命的な欠陥言っていいれべるなんじゃねぇのと

でまぁVRの使用用途の可能性
として一番わかりやすいのはアポロミュージアムだ
実在するミュージアムにいかなくても所謂”サイズ感”とかがわかるのが
あーいうVRミュージアムのメリットだな

SLでも似たような試みはされたんだけど
移動が見下ろし視点で天井が高くなってしまうためにどうしても限界があり

かといってマウスルックのようなFPSスタイルで
3D空間を動き回るのはかなりの特殊技能なので
自分の目で見るリアルサイズ感みたいなのはVRならではじゃないかなみたいな



○操作等

一応通常のPC環境でもステージに入ることは出来る
が 見下ろし視点で移動が出来るのみ 歩く以外の移動手段がTPしかない
その歩きがもう問題外で遅い なんなんだアレはw

ctrl押しながら任意の場所をクリックするとTPみたいな動きをする
これ自体はVRコンテンツでよくある操作方法なので特に違和感とかなし

ステージ上の何かに干渉するためにはVRHMDのハンドセットが必須のようだ
マウスやキーボードではステージ上にあるオブジェクトに対する操作が一切できないので

アポロミュージアムでの音声再生やゲームエリアでのボール投げ等も出来ない


ちなみにマップ上でVR使ってるかどうかは割とすぐにわかるというか
腕の動きが明らかに違うので実際に見てみることをおすすめする


○VRHMD所有者に試してもらった

ボールは投げられるようだ
ただボールを拾う操作がかなりシビアなようで

拾おうとして手を近づけすぎるとめり込んですっ飛ぶとのこと

通常のVRプラットフォームなら
ハンドセット向けて拾う操作すると吸い付くようにピックアップされるぽい
あとボールを持った手 の形もなんかおかしいらしい 実装抜け?


○終わりに 儲かるの?的な

現在自宅に自分用のVRHMDを手に入れることが出来ている人間は
確実に最新技術に興味を持った金持ちなので

そういう人間向けにコンテンツを供給する場 になるんだろうな
あくまでVR主体 VRじゃないモードは添え物というかおまけという感じ

んでもって実はそういうコンテンツって今のSLで
フリッカーさん達が好むようなmeshコンテンツそのものなので

現状SLでゲームレディレベルのmeshコンテンツを
自作出来るだけのスキルを持っていれば
コンテンツ供給者としての技術障壁ってことだとあんまりないのかなみたいな

ちなみにゲーム内通貨はs$って単位になってて
レートは1$が100S$でほぼ安定してるので

1s$が1円くらいの認識でよさげ


以上

2017年4月27日木曜日

一般論として高く売りたいなら売れない原因は潰しといたほうがいいんだけどねみたいな話

一般論だよ

かといってリリースしようとする時点で

んなこたわかってるよ
潰せるんだったら潰しとるわバカみたいな話にもなるので

ある程度QAみたいなことが出来る人間にテストしてもらうか
テスト版ってことで安く出して
人柱から意見を集めるみたいなのが手段としてあるわけです

金銭的な開発コストはただ作るだけの制作費の倍以上かかる

まぁでもそこでワイとかみたいな
めんどくさい操作方法しまくったりして粗の指摘しか出来ない
性格の悪いキチガイにエンカウントするのが嫌だってんでしょ


んでもってそういう連中が提示する"解決策"も
あからさまに実現することが不可能ないちゃもんとして受け取って
それをやるんだったら売る意味ね~じゃん
もうこっちに関わらなくていいからどっかいけばーか
とかそういう話なんだろ


でまぁあれよ
SecondLifeという場所への参加者として自分のクリエイティビティを
発露する行為自体を否定したいわけじゃねぇのよ

ただ権利を行使したときの責任ってもんもあるわけよ
大体の場合責任の度合いはそのまま値段なわけよ

その上でまぁ”可能なら高く売れて欲しい”ってのがあるだろうし
そのために

でも高く売れるために自分のスタイルを貫けないなら
やらんほうがマシだみたいな意見も尊重したい


でまぁ

大体の場合○○が欲しいから作ったor調べて買ったみたいな人間は
それを手に入れるためにものすごい調べたりするはずなんだよ

なのでもう
同じく○○が欲しいと思っている同士がそれを買ったりした場合

貴様が欲する○○はその程度のものだったのか?みたいな部分で
価値観やらなんやらの相違で行き違いが出たりするわけさ


△△から出てる○○?知ってるよ でも出来が悪いから買いません
これで済んでれば簡単でいいんだけどねぇ

大体そういうのって間違って買っちゃって
期待以下の出来だから(´・ω・`)ショボーンみたいな経験があり
それはそれで学習して目利きになるしか無いってのが
長期的な話ではあるんだけどそれ続けるのも結構大変よほんと



てかほんとそういう人は”気に入るもっとすごいもの”
が見つかるといいねぇ的なことを純粋に思うわけ

でまぁ可能なら教えてーなみたいな
(お前には教えてやんねーって? それも一興)

以上

2017年4月24日月曜日

SLRRモーターコア 計算方法のお話 メモ

三角関数の話です

うろ覚えなのでソース確認しないとだな

・二等辺三角形と三角関数を利用したRの決定

・レールにカントがついている場合のrot決定

・KFMでそれらを記述する方法

・二等辺三角形と三角関数を利用したRの決定

扇形軌道の視点と終点の接線の角度と直線での二点間距離で
二等辺三角形を作図するです

ベジェとか出やったほうがきれいに出るけどめんどくさいでしょあれ
なので先にRとθだけで作図出来る方法をやるです


まず現在の向きと位置をpos1,rot1として
ターゲットとなるガイドオブジェクトの位置をpos2,rot2とします

んでrot1とrot2に<1,0,0>を掛けて導き出した方向ベクトルをvec1,vec2

方向ベクトルから導き出した平面上での方角をdir1 dir2とします

dir1 = llAtan2(vec1.y,vec1.x);
dir2 = llAtan2(vec2.y,vec2.x);

んでこっからRを算出しますが
これはpos1,pos2間の距離とdirの角度の差を利用します

確か X=Rsinθ辺りの式を変形するとRを出せる式になるです

なので まずXを決定します

Xはpos1とpos2の中点座標までの距離で出てくるので

そっからX= llVecMag(pos2-pos1)/2とかだったかな
θ = (dir2-dir1)/2 だったっけかなぁ

これでパラメータ全部埋まったのでXとθからRが出ます
んでRが出たらそっから移動速度とフレーム数で円周上の距離を割ると

移動モーションで扇形軌道を描く線を通すための
Rとθが決定するので

あとは頑張って座標プロットしてモーション組んでください


・レールにカントがついている場合のrot決定

割と単純な座標計算です

<0,0,1>のベクトルをrot掛けてvec1_1出してな
これの前に出したdirの式使って正規化する

vec1_1=vec1_1/llEuler2Rot(<0,0,dir>);

これで正規化した”傾き”のvectorが出るからな

そしたら kant = llAtan2(vec1_1.z,vec1_1.y);

これでいけっかなぁ

まぁ航空機でのピッチロールヨーを出す数式と基本的に一緒

航空機と違うのは表示機ではなく実際の移動に使う部分だな


・KFMでそれらを記述する方法

とりあえず円は多角形で近似出来るだろー

フレーム最小のθとR使ってフレーム間距離出してな~
そしたら曲がる角度と移動距離が決定されるので

あとはそれをKFMに記述するだけでOK


大体この辺でいけるはずだ

んでこの理論で組んだモーターコアつくって
移動速度の外部コマンドでコントロール出来るブラックボックスにすれば
ツアーライドとかあのへんに汎用的に使えるんじゃねーの的な

以上

2017年4月11日火曜日

ANHELOのVIAS-API 軽くテスト

とりあえずドキュメントはここのようだ

http://www.anhelo.style/products/m28/devel_ja

ワイがセットアップで詰まったとこ

・ホイール回転周りの挙動になんかよーわからんところがある

とりあえずスクリプトリセット時にハードリセット毎回かけりゃええみたい
いやこれハードリセット後に安易にソフトリセットかけたらあかんのか

確実な作動を求めるならソフトリセットは使わんほうがええ

でまぁここだけクリアすれば
普通にコマンド通ってるしなんとかなるんでね?



んでまぁその他留意事項

・基本的に外装制御コマンドが全部別

まぁアナログマティックだからここビットフラグにするわけにもいかんだろうしな
この辺の制御は既存連中からするとAPIにぶん投げる前の演算が要るな

・アニメ制御がAPIに入ってない?
多分これこだわる連中はアニメにステアとか入れるだろて判断かねぇ

てな辺りかね



まぁこれぶっちゃけ共通APIにするためのセットアップ職人も必要だよなぁと
でも社外スクリプトシステムで”めんどくさい”とこ全部外出しだし

最初にこいつに対応したスクリプトさえ組めれば
サドパのチューニング屋は楽ができそうだねぇ

みたいな

以上


2017年4月9日日曜日

カースクリプトの世代に関しての話 その2

その1

補足説明というかより実用的な話

入力に対するレスポンスの話というか

まぁ要は入力に対する出力の話とか利便性の話なんよ

第一世代はまぁ昔過ぎて排除だ

第二世代と第三世代の違いに関して

とりあず超低速での登坂能力と

確実に作動するブレーキとバックギアな
これがついてりゃ大体の問題は解決する
というか既存ヴィークルでまずいやつの
ストレス原因大体そこなので

"さっぱり操作したとおりに動いてくれない"これだ

バックギアに関してはバックギアというギアを入れろって話じゃない
それをやるとレースシムになってしまうからな

停止状態 もしくはそれに近い状態で
ブレーキを押し続けるとリバースに入る機能
んで入ってから離せばすぐに止まる
この部分の動作が確実になることが求められる

それでいてブレーキを使いたいタイミングでバックに入られても困る

でまぁこの話を前提とした上でDTCARの話だ

DTCARがダメな理由の10割って入力がすっぽ抜けるんだよ
しかもそれがラグじゃなくてロジック上の問題なんだよ

DTCARのControlイベントのレート自体は別に他のと変わらないんだよ

ただ確定タイミングがタイマーイベントなんだよ
つまりアクセルのオンとオフって入力がある場合

押してから離すまでの時間が短いと加速しないし
かといって最低レートが0.2秒なんだよ
つまり一回アクセル踏んで離すまでの時間が 0.2秒の次は0.4秒なんだよ

時速100キロでなら一秒で27m動くんだよ
実際のレースの速度域って200キロオーバーだろ 50mだよ

んでその速度域だと
アクセルオフしてからまたオンにするまでに0.2秒なら最低10m進むんだよ 
ステアリング入力も同じレートだ

そんないつ切ったら曲がるかがギャンブルみたいな
ガッタガタのステアリングと
入力してから効き始めるまでがランダムな上に
細かいタイミングでのオンオフを受け付けないアクセルとブレーキで
どうやってその速度域で安全運転しろっちゅうねん

Arlon系ならとりあえず入力してから作動するまでのディレイは確実に一定だし
オンからオフまでの入力をとりあえず全部拾ってくれる


んでまぁ別にここそこまでスクリプト的に難しい問題かってーとそうでもねぇのよ
そうでもねぇんだけどメインロジックほぼ全交換な上に
ヴィークルパラメーターのセオリーがわかってないと
同じフィーリング出せるようになるまでに数ヶ月かかるんだよ


今なら一週間くらいで出せるやつもいるだろうけどね


んでもってそこ改善したらもっと売れるようになるかみたいな話だと
現状さっぱり売れてないなら売れるようになる”かもしれない”という程度だ

そのへんは車種のチョイスとかガワの出来もあるし
エフェクト周りの演出も影響するしなと

以上

SLのカースクリプトの"世代"に関して

まぁ雑に三世代あるのよ

時代背景によるものと機能によるものがある

第一世代

・HAVOK1時代のDTCARのような
 当時の最高速度制限を超えるためにImpulseを使ったもの

・入力制御をアバターベースとしているため
 ヴィークルのコントロールが 前進 後退 左右旋回
 となっているのが最大の特徴ともいえる 大抵飛行モード有り

 正直もうこの世代のヴィークルは
 フリービーで手に入るとかじゃない限り無視してOK
 わざわざ買うと残念な目にあうとこ請け合い



第二世代

・HAVOK4から現在まで の主流になっているもの

ヴィークルパラメーターの設定値を現在の特性に合わせた上で固定値
もしくはギアやモード等による可変値

スクリプト数の削減や多少の演出向上等もある

DTCARのmodやKCPがこれに該当する

また"ドリフトボタン"や"ドリフト専用モード"
のようなものが存在するのも第二世代の特徴
(大体ドリフトしっぱなしになるので大変危険)

現在市販してるヴィークルの大半がこれ
正直"動くだけでもマシ"程度で見ておかないと残念な目に遭う

まぁ要は第一世代よりはクルマっぽい動きにはなってるけど
まだSLの文法で駆動されているヴィークルがこれに当たる

まぁものすごく極端には
マウルスックでの運転を想定していなくて
キーの同時押しで”特殊モードが発動する”ものは全部第二世代でいい

それ以外で一番わかり易いところだと
"ロケットみたいな加速特性"や"ドリフトボタン"や
"ただただ停止するだけのブレーキ"なんだけど
この辺を廃すしたり改善するのはなかなか勇気がいる


第三世代

キー入力がリニアでシームレスになっており
アクセル ブレーキ ステアリング ギア "のみ"のもの

入力の時間積分による擬似アナログコントロールや
ある程度の"ダイナミックな"入力を行うことで
車体の挙動をダイナミックに制御できるもの

また3つ以上のキーの入力で車体自体の挙動
及びタイヤや灯火類等の外装の挙動が破綻しないもの

なのでまぁものすごい雑には
アクセルとブレーキとステアリングを同時押しして全部の入力をきちんと拾った上で
ギアや速度や加速度によって挙動や演出がリニアに変化するもの だな




んでこうやってまとめるとあれだな

大雑把には同時押し数と入力処理だな


第一世代 1ボタン1機能 全ボタンが独立機能 同時押し想定無し
             ボタンを押すと動く という程度

第二世代 nボタン1機能 同時押しの組み合わせによる特殊機能の発動
             ○○するボタンがあるという感覚
             組み合わせで複雑なことができるようになった分
             同時押しによる誤作動等の問題有り

第三世代 nボタンn機能 現実のアクセル ブレーキ ステアリング の入力に近い操作
             現実とほぼおなじセオリーで操作が可能

             ただし車体の挙動自体は演出成分多し

大体この辺かねぇ

車に対する理解によっては第一世代と第三世代が同じに見えるかもなぁこれ
まぁでも実際SLで移動のツールとして使う分には変わらんしなぁ

この辺はレースシムとレースゲームの境界線の話になったりするんだけど
この辺も結局"演出の程度の問題"にしかならんからなぁと

そういう意味で第一世代が主流の時代にも第三世代のヴィークルはあったりしたし
第三世代だからって無条件に売れるかってーとそうでもない
顧客と作者のスキルレベルと意識の話になっちゃうんだよなどうしても

てな辺りかねぇ

以上

2017年4月1日土曜日

20171108 足らぬ足らぬはリソースが足らぬなのだ

この記事を読むのに前提とする知識

・この記事の投稿日時はエイプリルフールです イイネ?

・ニコニコ動画のMADネタ
・プログラミング文法の知識
・PCゲーム 主にsteam配信タイトルの知識
・その他ネットスラング

最近良く見る話題として
高品質な○○を作れるような人間の頭数が不足している系の話


SLでクリエイターの頭数が足りない
てのはまぁ2010年辺りから根本的な部分は変わってねぇのよ
 
 
じゃぁなんで表に出なかったのかってことなんだけど
別にそういう人材に頼らなくてもとりあえず売れるレベルのもんが作れたり
 
なんらかの余ったリソース を対価に使うことでそういう人材を使うことが出来てたからなのだ

造成がしたい人間と造成されたものが欲しい人間の利害が一致すれば
双方が現金としての追加投資無しで成果物を手に入れられるのだ

ただし双方がロハでやる前提なので製造者責任もいい加減だし
出来にケチつけたら別のところ行かれちゃう恐怖が常につきまとうので
ほしいものではないって文句を言うことも大体不可能なのだ


まぁあれだよ
"実績が出来ますしそちらにとっても悪い条件では無いと思いますが?"
これだよ これでマウンティング合戦をするのだ
だからバックレられたりしょうもないケンカでずっこけたり
ちょっとトラブルがあったけど楽しかったねーって
ガバガバ運営ですらいい思い出としてアーカイブされるのだ

まぁ集客がまずくてマジで赤字だったりするとそうともいかんのだけど


仕事として頼んだら10万ドルPONで製造者責任とかもつきまとうけど
お友達として付き合いの中で相談するだけならロハや 双方に責任問題も出ない
ただそういうレベルの連中の内輪ネタのみでなんとかなる次元ってのは
所謂SLの商売連中 からするととっくにすっ飛んでる 




/*----------------------------横道------------------------------

素人が作ったようなもんでもとりあえず売れてたのは結局のところ

ガチプロが本気出して作ったもんを住民が誰も知らず
(じゃなけりゃこんな未完成なタダゲーじゃなくて
 普通のオープンワールド系MMO行くだろ単なる消費者は)
(ゲームレディ系のガチプロは最初から安すぎて来てないのだ
 もっと稼ぎがいい仕事するのに忙しいからな)

知ってる連中はフルスクラッチがいくらするかを知っていて
そんな高コストなものを求めていなかったし
 
そういうものを”カネ出して作ってもらう”という話にならんからなのだ
だって支払う報酬相場の100分の1くらいの額で
"そういうのが出来るAAAタイトルのゲーム"買えるじゃんってことだ
 
その辺は業務アプリがフルスクラッチより
パッケージ買ってくる方が安いってのと基本的には一緒


その結果が クルマならrippedKCPなのだ
鉄道車両ならVRCだな
 
-------------------------横道終わり-----------------------------*/



でまぁここ2年くらいで 物理世界ではインスタ映えみたいな概念が出てきた

SLだと ファッション連中はブログやコンテストではなく
フリッカーに"作品"として投稿するようになった

でまぁそういう連中が要求するクオリティーって
既存のアマチュアSLクリエイターでは絶対にクリア出来ねぇのよ
 
だってUV展開やリギングやウェイトペイント出来ないし
ノーマルやスペキュラマップも概念自体が無いじゃん
 
プログラミングにしてもrotationでのベクトル変換とか使い方知らんじゃん


じゃぁどうするかって大体SLでビジネスやってる連中のコンテンツを利用したり
必要ならばゲームレディアセットとかを持ってきたりするのね

大体の販売サイトがSLへの転用を明示しないにしろ禁止してるけどw

でまぁそういうところに食い込むことが
生き残りのためには必須 っぽい流れになってきたので
 
冒頭の 高品質な○○が作れる人間が居ない になるのだ


一回作れば10年くらいはそのまま使える固定資産
のつもりでSIM確保して造成してた人間からしてみれば

今のスキルアップが必須で短期間での完成が求められ
なおかつ 一ヶ月限定イベントみたいなSIMのクオリティでさえ
その辺のロハで働いてくれるアマチュアクリエイターではクリアできない

そういう状況に追いつけなくなってるのだ


じゃぁどうするかって話なんだけど
短期的な対策としてならガチャ商品への投資 毎月1万L$くらいでいい
ガチャで手に入る様な高品質なもの で風景のクオリティを底上げするのだ

もちろん建物や交通インフラはそうはいかないのでモジュールで買うのだ


長期的な対策はなぁ 自分でそういうものを生産出来るようになるしかないな
それが無理なら月給支払って人を拘束することになる

ただそれは商売的な手法に足を突っ込むということなので
 
素人が作ったものなのでとかそういうネムい言い訳は通じなくなるし
プロ系のツールは初期投資額も50ドル単位くらいで結構かかるようになる
(それでも10年前の10分の1のコストなんだけどね)

 
あとなんか書こうとしてたけどどうせしょうもない話だからどうでもいいや
エイプリルフールだし


以上

VICEのお話 最近の状況とちょっとした歴史

御大層なタイトルつけたけど 内容的には

・VICEの登場した経緯

・VICEの所謂禁止武器やフィールドBANNEDとかの話

・所謂HACKEDとかLLCSedとか言われてる技術の話

・VICE搭載ヴィークルを選ぶときの話

・VICE武器を買うときの話

・これからVICE入りのものを作りたいって人向けの話

この辺をメインで書いていこうかと


・VICEの登場した経緯

時は2007年代 当時はTCSってのが主流でした
んでまぁこいつが当時としてはセンサー使う関係でAIMとか命中判定が大雑把で
センサーは重いって言われてた関係であんまり人気が無く

初期のVICEはTCSヴィークルにはほぼポン入れで使えて
物理弾とコリジョンを使用する軽量なCSってことで登場しました

(当時のSLの想定戦場が大体WW2以前のレシプロ機想定だったので
  誘導弾とかハイレートな銃やグレネードランチャーは考慮されてません)

基礎APIが全部無料で手に入ったのと
当時のterra系航空機にほぼポン入れでいける簡易性から一気に普及
ほぼ全ての戦場がVICEとなりました



・VICEの所謂禁止武器やフィールドBANNEDとかの話

 hackedとかLLCSedとかの話と厳密には関係するのですが先にやっておきます

 WW2戦場で航空戦が激化すると所謂
 "当時の技術革新レベル"を既成品からの相対で再現しようとしたり
 "伝説"を取り入れようとする連中が出てきたりするわけです

 まぁ身も蓋もない言い方すると厨武器が登場したわけよ

 ものすごい高機動ですげー硬くて大口径の銃満載してるようなやつ

 大体そういうのってある程度公平な運営してるフィールドとかで禁止指定食らうわけよ
 んでまぁBANNEDされた方は "こっちは史実通りに作ってるだけだ"って主張するので
 大抵の場合平行線になるわけよー

 んでまぁそういう厨武器が運用可能なフィールドがいくつかあったんだけど
 大体そういうところは厨武器前提なので厨武器作ってるところの身内ばっかり集まるようになり
 ある程度飽きられたりしたら一気に過疎るわけです


・所謂HACKEDとかLLCSedとか言われてる技術の話

さてまぁ現役でやってる皆さんなら御存知の通り
程なくしてモダンウォーを想定する必要が出てきました

"対戦車ミサイルなら一発で戦車を撃破出来る"だの
".50calならかすっただけで腕が吹っ飛んで死なないとおかしい"だの
"アサルトライフルのタマで戦車にダメージが与えられるのはおかしい"だの
"最新型のハンヴィーはRPG-7に数発は耐えられるってディスカバリーチャンネルで言ってた"だの
"mk19搭載したハンヴィーが欲しい"だの
"イージス艦の砲ならこの発射レートが出せるはずだ"だの
"第三世代戦車なら最高速度70キロ以上だして行軍間射撃で移動目標に当てられる"だの
"カタログスペックならこの機動性が確保できてる"だの

まぁ大体その辺の"リアルな現代戦場"の想定が出てきました
(だたほとんどが妄想だの伝聞だのカジュアル系ゲームの話なんだよなぁ)

タマrezもSIMのスペック向上でカメラ式が主体になりつつあり
"現代的な"銃と同じ運用が出来るVICE武器の需要が発生しました

 わかりやすい例だと対戦車ロケット弾 40mmグレネードランチャー 対物ライフル
 スマート爆弾 対戦車ミサイル APFSDS HEAT 等

 んでまぁ本来のその該当クラスでは扱えないタマを無制限に発射可能な武器を
 いくつかのメーカーが出しました(現在はほぼ全部削除済みか禁止武器扱い)

 これをhackeddとかLLCSedとかいいます
 その技術自体はもう普通にマケプレで売ってますし(お高いですが)
 一部フィールドでは普通にそういう技術で作られた武器が運用されてます
 (もちろんゲームプレイが破綻しないレベルに"調整"されたものね)

 ただまぁ
 所謂厨武器みたいなもんを作ったら普通にBANNED食らいます
 その基準値も明確な数値じゃなくて"公平である"みたいなすげーファジーなので
 本来の性能なら○○に勝てるんだからこれでいい 系の主張は大体アウトです
 (細かいレギュレーションが知りたいなら現役でやってる人に"現地で"聞いてくれ)


・VICE搭載ヴィークルを選ぶときの話

 まぁ最初はフリービーのを幾つか試すがよろし

 んで大体欲しい特性みたいなもんが見えたら
 現役でやってる人に現地で聞いてみると大体オススメを教えてもらえる
 まぁ たまーに厨武器をオススメされることがあるので注意だけどなー



・VICE武器を買う時の話

 市場にある銃の9割は 大体中身が標準と一緒です
 ちょっと凝ってるところでエフェクトがついてる程度
 標準APIそのままで使う分には自作の外装にスクリプト入れた奴でも
 特に制限無く投入自体は可能です 勝てるかどうかは別だけど
 (明確に標準API銃のみに制限してるフィールドも一部に有り)

 LLCS版にVICE版を同梱してたり LLCS版とVICE版を別売りしてたり
 VICEとLLCS両方で使えるって書いてあるところのやつは

 大抵技術力がそれなりに高いメーカーなので参考にするがよろし
 (一部クッソ重くて使いものにならないところもあるが)



・これからVICE入りのものを作りたいって人向けの話

 売上でどうこうする目的でならまぁやめとけって感じ

 自作のガワをポン入れで動くようにしたいってならVICEが一番楽やねー

 市販銃並のもんをローコストで調達したいってんなら
 普通にローコストな銃を買うがよろし 自作とあんまり変わらん

 自分とこで遊ぶの専用にVICEを使いたい 系の話だと
 CSから自作するよりは確かにお手軽なんだけど

 持ち込み武器は制限出来ないと思ってたほうがいい
 あと販売なり配布なりをするなら
 ある程度他メーカーの武器なりとバランスを見た方がいい
 BANNED食らいました 系の話がつくと一般客が寄り付かなくなる





大体この辺かなぁ

以上

エイプリルフールなので突然のポエム回

まぁあれよ

ひとは妥協を覚えることで大人になる

でもガキのままじゃないと走り続けられないよ

夢ってのはな 月世界旅行だ
まともに実現しようと思ったらざっと一兆円かかる

ただ一兆円なんか
東芝くらいの1企業が軽く吹っ飛ばせるし
案外大した額ではない

んでもってグーグルアースの月面ならすぐだろ?

月って表現を使うのはまぁそういうこっちゃね

歩いていくことは絶対に不可能に見えるから
そこに行きたいといっても ガキの戯言で済む

ガキの戯言で済むから 実際に実現しなくても良い
実現するための努力をしなくても誰も責めないし
やりたいって言うだけならタダだ

でもまぁたまに ゲームのコマを動かすように
ひょいと月でも火星でも冥王星でも
なんなら隣の銀河にでもいけちゃう連中がいてなw

月に行きたいといっていた人間をそういう目にあわすとな
何というと思う?

"おうちにかえしてください"だ
もしくは"元の平穏な生活に戻してくれ"だ

"奇跡も魔法も あるんだよ でも救いはないね"
仕方ないね

だってまぁ普通の人間は絶対に一生行けないままだし
いけないなら 行きたいと願い続けることもタダだから
"ビューチフルドリーマー"のままで居られる

まぁこの話の問題は
そいつらが月だと思ってるところが
実際には"そのへんにあるレベルのホールの舞台"なんだよな

でも 道が見えないから月に見える
そいつでも踏破出来るレベルの道を見せてもダメよ
その道のあまりの険しさに絶望して死んじゃうから


夢は現実にしてしまった以上
"現実にし続ける"コストと義務が発生してしまうからな

そんなもんに耐えられるやつなんかなかなかおらんぞ

みたいな

以上

2017年1月6日金曜日

VICE銃 の適当なセットアップ方法

自分で使う用にセットアップするならこんくらいの手順でいい


・まず適当にSDKかサンプル銃を入手します フルパーのやつ

 VICE標準銃なら 二箇所にスクリプトが入ってるはずだ

・ルートプリムと銃口辺りにスクリプトがあるので中身を抜きます

 プリムごとにフォルダ分けはしておくこと

・サンプルでスクリプトが入っていた同じ回転のプリムをリンクして 自分の銃に入れます

 実際のところ装着式なら回転とかはテキトーでもいいけど余計なトラブル回避のためにも
 スクリプトが入る部分のプリム構成は同一にしておくといい

・shift押しながら移動させて複製して 複製したのをtakeします

 中身のスクリプトの一部が llSetScriptStateで制御してるのでこの作業はとりあえず必須

 やるまではタマが出っぱなしになる 大体銃素人はここで詰むんだよな

・装着して位置と回転を調整します

 まぁここは普通のアパレルとかと一緒


以上


とりあえずこれで撃てるようにはなるはずだが
VICE標準銃だからエフェクトとかは皆無だし爆発物のビジュアルもしょぼいはずだ

あと現用のM4A1SOPMODとかHK416みたいにグレポンつけたいとかなった場合に
RPG7とかのスクリプト流用しようとして失敗するとか
ハングレ流用しようとして初速不足するとかその辺かねぇ



あと適当に注意事項

・マズルファイアとかはテクスチャアニメでやること VICEなら6プリム以内程度が望ましい
・ドロースリング実装時は最大でも1スクリプトで実現すること
・銃本体のフローティングテキスト消すのは違反でBAN対象

・不当に高威力のタマを連射するようなセットアップの禁止
・不当に高装甲のセンサーを使用することの禁止
 (超大型艦船のHPハックはある程度までは許容されている)

大体このへんかなぁ