2008年02月20日
ラグ考察 1
最近、「セカンドライフのラグ」について、ダラダラと調べておりました。
LSL WikiのYahooおとぼけ翻訳先生や、先人たちの和訳を参考に自分なりにまとめてみます。
こういった技術情報は現状、能動的にならないとどうやら得られないようで、
ソラマメはどちらかというとその点受動的な印象を受けます。
ま、こんな記事はつまんないから流行らないのはわかりますがねっ!
SL重くてツマンネーの原因と対策を考察するのも大事です。
■SLにおけるラグについて
SLにおけるラグとは、ビュワーがカクカクしたり重くなったりする、いわゆるフレーム落ちの現象です。
原因と対策は主に二種類にわけられます。
サーバー(SIM)によるものと、クライアント(各PC)によるものになります。
■ラグの原因
・サーバー(SIM)によるもの
サーバー(SIM)は独立したCPUとして稼働しています。
当然計算をいっぱいすればするほど重くなります。
サーバー(SIM)が計算するものとして、スクリプト、物理計算が必要なオブジェクトなどがあげれるようです。
スクリプトに関しては、計算している時(動いている時)にサーバー(SIM)が稼働しますので、
常時動かなければいけないセンサーやリスナー系のスクリプトは、サーバーに(SIM)に負担をかけます。
たとえば、何秒ごとにこのアニメーションを再生!というA.Oや、何秒ごとに半径何mにいる
アバター情報を取得する来客センサーなど・・・。
逆に、そんなに動かないスクリプトはそんなんでもないということで、決してスクリプト=悪ではありません。
物理計算が必要なオブジェクトについては、サーバー(SIM)にRezしたプリムはその時点で衝突判定計算が
行われ続けますので、単純にRezされたプリムが多ければ多いほど高負荷ということになりますよね。
違うかな・・・。
さらに重力プリムやフレキシブルプリムとなると、えらい計算が必要になるんでしょうね。
あれ?でもこれはクライアント(各PC)の処理になるのかな・・・?両方かな?
しかしそう考えると、臨時プリムを同じ場所にダブらせて延々とRezし続けるプリムセーバーなんかは、
サーバー(SIM)に大変負担をかけるということになるでしょうね。
ちなみに臨時プリムは土地プリムに加算されませんが、アバターがそのオブジェクトにSitすると
途端に土地プリムに加算されるようです。これは気をつけなければいけませんね。
・クライアント(各PC)によるもの
テクスチャやプリムの読込み・表示性能はクライアント(各PC)のスペックや回線速度に依存します。
当然、必要以上に大きいサイズのテクスチャや、必要以上のプリム数でできたオブジェクトなどを表示する時は、
クライアント(各PC)に負荷がかかり、クライアントのスペックが満足でない限りラグを発生させます。
特にアルファ(透明)のテクスチャは高負荷なようです。
また、光源処理も各クライアント(各PC)が処理します。あとはパーティクル処理ですね。
各クライアントがゴリゴリのハイスペックマシンであれば、これは何の問題もありません。
しかし、まずそうではないですよね。
■ラグの対策
・サーバー(SIM)に対する・・・
常時動いているスクリプトの効率化。
たとえば、自動ドアを作りたい場合、センサーよりタッチイベントなどを使いましょう。
どうしてもセンサーを使う場合、必要な秒数間隔を再検討しましょう。範囲についても同様です。
リスン関数も同様に最小限に抑えましょう。
物理プリムの効率化
本当にそこにそのプリムが必要かどうかを再検討しましょう。
植物などのフレキシブルプリム等も同様に。
・クライアント(各PC)に対する・・・
PCを買い換えましょう。
これが一番手っ取り早いですが、そんなわけにもいかねーよバカか!と私に言われてもLSL Wikiによると
そう結論付けるしかないのですががががががっががが。
自分のビュワーの設定を見直しましょう。
環境設定をスペック以上の設定にしていませんか?私は結構していますウヘヘ。
では具体的に、土地オーナーとして、ユーザーとして、作り手として、
どのようなことに気をつければよいのでしょうか。
Second Life Wiki Region Performance Improvement Guideを見てみました。
上記も踏まえてまとめると・・・
土地オーナーとしては
・負荷の高いスクリプトを取り除く
・負荷の高いコリジョン(オブジェクト?)を取り除く
・大きなテクスチャを取り除く
・プリム数を減らす
・ヒュージプリムは使わない
ユーザーとしては
・負荷の高いスクリプトを取り除く
・アタッチメントしているプリムを減らす
・光源(フェイスライト)数を減らす
・パーティクルはなるべく控える
作り手としては
・常時動くスクリプトを再検討する
・プリム数を減らす
・テクスチャサイズを小さくする(512×512以下)
・パーティクルはなるべく控える
・過度のスカルプティ
ヒュージプリムは負荷やラグどうこうの前に問題があるようなので、
機会があればちゃんと調べてみようと思います。
過度のスカルプティ・・・
過度の標準プリムとどう違うの?スカルプティだったら何がラグに影響を及ぼすの?
次回このあたりを検証しつつ、超つまんねー記事は続くのであります。

LSL WikiのYahooおとぼけ翻訳先生や、先人たちの和訳を参考に自分なりにまとめてみます。
こういった技術情報は現状、能動的にならないとどうやら得られないようで、
ソラマメはどちらかというとその点受動的な印象を受けます。
ま、こんな記事はつまんないから流行らないのはわかりますがねっ!
SL重くてツマンネーの原因と対策を考察するのも大事です。
■SLにおけるラグについて
SLにおけるラグとは、ビュワーがカクカクしたり重くなったりする、いわゆるフレーム落ちの現象です。
原因と対策は主に二種類にわけられます。
サーバー(SIM)によるものと、クライアント(各PC)によるものになります。
■ラグの原因
・サーバー(SIM)によるもの
サーバー(SIM)は独立したCPUとして稼働しています。
当然計算をいっぱいすればするほど重くなります。
サーバー(SIM)が計算するものとして、スクリプト、物理計算が必要なオブジェクトなどがあげれるようです。
スクリプトに関しては、計算している時(動いている時)にサーバー(SIM)が稼働しますので、
常時動かなければいけないセンサーやリスナー系のスクリプトは、サーバーに(SIM)に負担をかけます。
たとえば、何秒ごとにこのアニメーションを再生!というA.Oや、何秒ごとに半径何mにいる
アバター情報を取得する来客センサーなど・・・。
逆に、そんなに動かないスクリプトはそんなんでもないということで、決してスクリプト=悪ではありません。
物理計算が必要なオブジェクトについては、サーバー(SIM)にRezしたプリムはその時点で衝突判定計算が
行われ続けますので、単純にRezされたプリムが多ければ多いほど高負荷ということになりますよね。
違うかな・・・。
さらに重力プリムやフレキシブルプリムとなると、えらい計算が必要になるんでしょうね。
あれ?でもこれはクライアント(各PC)の処理になるのかな・・・?両方かな?
しかしそう考えると、臨時プリムを同じ場所にダブらせて延々とRezし続けるプリムセーバーなんかは、
サーバー(SIM)に大変負担をかけるということになるでしょうね。
ちなみに臨時プリムは土地プリムに加算されませんが、アバターがそのオブジェクトにSitすると
途端に土地プリムに加算されるようです。これは気をつけなければいけませんね。
・クライアント(各PC)によるもの
テクスチャやプリムの読込み・表示性能はクライアント(各PC)のスペックや回線速度に依存します。
当然、必要以上に大きいサイズのテクスチャや、必要以上のプリム数でできたオブジェクトなどを表示する時は、
クライアント(各PC)に負荷がかかり、クライアントのスペックが満足でない限りラグを発生させます。
特にアルファ(透明)のテクスチャは高負荷なようです。
また、光源処理も各クライアント(各PC)が処理します。あとはパーティクル処理ですね。
各クライアントがゴリゴリのハイスペックマシンであれば、これは何の問題もありません。
しかし、まずそうではないですよね。
■ラグの対策
・サーバー(SIM)に対する・・・
常時動いているスクリプトの効率化。
たとえば、自動ドアを作りたい場合、センサーよりタッチイベントなどを使いましょう。
どうしてもセンサーを使う場合、必要な秒数間隔を再検討しましょう。範囲についても同様です。
リスン関数も同様に最小限に抑えましょう。
物理プリムの効率化
本当にそこにそのプリムが必要かどうかを再検討しましょう。
植物などのフレキシブルプリム等も同様に。
・クライアント(各PC)に対する・・・
PCを買い換えましょう。
これが一番手っ取り早いですが、そんなわけにもいかねーよバカか!と私に言われてもLSL Wikiによると
そう結論付けるしかないのですががががががっががが。
自分のビュワーの設定を見直しましょう。
環境設定をスペック以上の設定にしていませんか?私は結構していますウヘヘ。
では具体的に、土地オーナーとして、ユーザーとして、作り手として、
どのようなことに気をつければよいのでしょうか。
Second Life Wiki Region Performance Improvement Guideを見てみました。
上記も踏まえてまとめると・・・
土地オーナーとしては
・負荷の高いスクリプトを取り除く
・負荷の高いコリジョン(オブジェクト?)を取り除く
・大きなテクスチャを取り除く
・プリム数を減らす
・ヒュージプリムは使わない
ユーザーとしては
・負荷の高いスクリプトを取り除く
・アタッチメントしているプリムを減らす
・光源(フェイスライト)数を減らす
・パーティクルはなるべく控える
作り手としては
・常時動くスクリプトを再検討する
・プリム数を減らす
・テクスチャサイズを小さくする(512×512以下)
・パーティクルはなるべく控える
・過度のスカルプティ
ヒュージプリムは負荷やラグどうこうの前に問題があるようなので、
機会があればちゃんと調べてみようと思います。
過度のスカルプティ・・・
過度の標準プリムとどう違うの?スカルプティだったら何がラグに影響を及ぼすの?
次回このあたりを検証しつつ、超つまんねー記事は続くのであります。

Posted by Geteee Gausman at 13:52
│Diary
この記事へのコメント
>過度のスカルプティ・・・
なんでもかんでもスカルプトで作るなということでしょうか・・
SLだとプリム数で換算しがちですが、1つのスカルプテッド・プリムのポリゴン数は多分32x32=1024で、キューブは6です。
1つのスカプリは約170個のキューブのポリゴン数と一緒になるわけで・・
なんでもかんでもスカルプトで作るなということでしょうか・・
SLだとプリム数で換算しがちですが、1つのスカルプテッド・プリムのポリゴン数は多分32x32=1024で、キューブは6です。
1つのスカプリは約170個のキューブのポリゴン数と一緒になるわけで・・
Posted by magnum Yoshikawa at 2008年02月20日 14:04
字が。。。字が多いです!!!
Posted by オンマ
at 2008年02月20日 14:14
at 2008年02月20日 14:14hugeはなんでダメなんだろうねぇ?
まぁ、ラグ以前に ”rezしにくい”、”カメラの視点固定がうまくいかない”って問題があるけど。
hugeの記事期待。
にしても、解ってるつもりでも改めて考えてみると植物もフレキシだもんなーちょっと盲点だった。
コリジョンやアルファ、光、バンプは結構みんな気付かずやってるよね。
半透明の床、壁で覆われた建物見るとぞっとするw
まぁ、ラグ以前に ”rezしにくい”、”カメラの視点固定がうまくいかない”って問題があるけど。
hugeの記事期待。
にしても、解ってるつもりでも改めて考えてみると植物もフレキシだもんなーちょっと盲点だった。
コリジョンやアルファ、光、バンプは結構みんな気付かずやってるよね。
半透明の床、壁で覆われた建物見るとぞっとするw
Posted by Ilha.McMillan at 2008年02月20日 14:35
>>magnumさん
ああなるほど!
そう考えると「過度のスカルプティ」は納得がいきますね!
すごくわかりやすいです。
次は体感を交えつつちょっと実験してみたい思います。
ありがとうございました。
>>オンマちゃん
眠れない時に、ぜひどうぞ!
>>いーりゃ
10×10×10m以上のプリムを「ヒュージ」というけれど、
果たして実質どれくらい大きいのか、がどうやら問題になるようだよ。
今度調べてみます。
ああなるほど!
そう考えると「過度のスカルプティ」は納得がいきますね!
すごくわかりやすいです。
次は体感を交えつつちょっと実験してみたい思います。
ありがとうございました。
>>オンマちゃん
眠れない時に、ぜひどうぞ!
>>いーりゃ
10×10×10m以上のプリムを「ヒュージ」というけれど、
果たして実質どれくらい大きいのか、がどうやら問題になるようだよ。
今度調べてみます。
Posted by Geteee Gausman at 2008年02月20日 15:32
いや~ 活字中毒の僕にはピッタリでした~
約にたちますわ~ ありがとう!
もっとこういうのも 増やしてくださいw
できうる限りで
約にたちますわ~ ありがとう!
もっとこういうのも 増やしてくださいw
できうる限りで
Posted by UG at 2008年02月20日 16:35
なるほど、お勉強になりました。
これからも頑張って検証してください。
そしてSIM埋め尽くすヒュージよりでかくなってください。
なんのこっちゃわからんがw
これからも頑張って検証してください。
そしてSIM埋め尽くすヒュージよりでかくなってください。
なんのこっちゃわからんがw
Posted by †マリ† at 2008年02月20日 18:07
>>UGさん
お久しぶりです!お元気ですか!
まさかこんな駄字列に喜んでいただけるとは・・・。
できうる限りでした
>>マリちゃん
だれが Hugeee Hugemanよ!
お久しぶりです!お元気ですか!
まさかこんな駄字列に喜んでいただけるとは・・・。
できうる限りでした
>>マリちゃん
だれが Hugeee Hugemanよ!
Posted by Geteee Gausman at 2008年02月20日 20:38
勉強になります。
ゲティさんらしくないですが・・・
ゲティさんらしくないですが・・・
Posted by のぶ子 at 2008年02月20日 20:51
>>のぶ子さん
らしくないことをして気を引こうという魂胆が見え見えですよね!
らしくないことをして気を引こうという魂胆が見え見えですよね!
Posted by Geteee Gausman at 2008年02月20日 21:51
つい最近SASUKEの歩道のテクスチャが1024×1024だったつーのに気づき、泣く泣く全部張り替えたんですけど、SIMのデータにはほとんど変化ナシな結果でしたよん。
(作業労力だけムダにかかりましたTT)
歩道全部って結構な量だと思うんですけどねw
デカイテクスチャはあんまし影響しない気がします。
それよりもSASUKEでものすごーく影響出してたのは、箱からボコボコ10プリムのクラゲがでてくるというヤツでした。(見かけ上は1プリム)
さすがにそれを全部撤去したときはスクリプトの動きが格段によくなりましたっけ。
(作業労力だけムダにかかりましたTT)
歩道全部って結構な量だと思うんですけどねw
デカイテクスチャはあんまし影響しない気がします。
それよりもSASUKEでものすごーく影響出してたのは、箱からボコボコ10プリムのクラゲがでてくるというヤツでした。(見かけ上は1プリム)
さすがにそれを全部撤去したときはスクリプトの動きが格段によくなりましたっけ。
Posted by keito
at 2008年02月20日 22:23
at 2008年02月20日 22:23>>けいちゃん
お久しぶりですね!
以下私の見解ですが・・・
>歩道のテクスチャが1024×1024だったつーのに気づき、泣く泣く全部張り替えたんですけど、SIMのデータにはほとんど変化ナシな結果でしたよん。
テクスチャの読込み・表示はクライアント(自分のPC)の性能によりますので、確かにこれはサーバー(SIM)のデータにはそんなに影響しないと思います。
ただサイズの小さいテクスチャに変えたことによって、初めてSASUKEを訪れた(キャッシュなし)ユーザーはより小さいサイズのテクスチャを読み込みますので、その分ラグは減少するのではないかと思います。
ですのでそれはとても有意義な作業だったのではないかと思いますよ!
そして
>箱からボコボコ10プリムのクラゲがでてくるというヤツでした。
これはサーバー(SIM)が、プリムがRezされるたびに計算を行いますので、これを除去すると同じくサーバーが計算を行うスクリプトの処理がその分軽くなったのだと思います。
各人のPCで確認できるラグは、様々な要因が複合技となって現れますので、一概に何が原因だとは言えませんが、その可能性を一つ一つ探っていくけいちゃんのその作業はすごく有意義なのではないかと思います!
ありがとうね。
お久しぶりですね!
以下私の見解ですが・・・
>歩道のテクスチャが1024×1024だったつーのに気づき、泣く泣く全部張り替えたんですけど、SIMのデータにはほとんど変化ナシな結果でしたよん。
テクスチャの読込み・表示はクライアント(自分のPC)の性能によりますので、確かにこれはサーバー(SIM)のデータにはそんなに影響しないと思います。
ただサイズの小さいテクスチャに変えたことによって、初めてSASUKEを訪れた(キャッシュなし)ユーザーはより小さいサイズのテクスチャを読み込みますので、その分ラグは減少するのではないかと思います。
ですのでそれはとても有意義な作業だったのではないかと思いますよ!
そして
>箱からボコボコ10プリムのクラゲがでてくるというヤツでした。
これはサーバー(SIM)が、プリムがRezされるたびに計算を行いますので、これを除去すると同じくサーバーが計算を行うスクリプトの処理がその分軽くなったのだと思います。
各人のPCで確認できるラグは、様々な要因が複合技となって現れますので、一概に何が原因だとは言えませんが、その可能性を一つ一つ探っていくけいちゃんのその作業はすごく有意義なのではないかと思います!
ありがとうね。
Posted by Geteee Gausman at 2008年02月20日 23:48
字が 字が多い@@www
Posted by オンマ at 2008年02月21日 01:52
( ・ω・.)ノマイド
プリムセーバーの件についてですが
超低スペックPC使用時代から愛用してますが使ったからといって重かったことはないです
けど欠点があるとするなら土地の使用可能臨時プリム数超えた数をセーバーかけると
プリムが表示されなくなるということかな
一応愛用者としてほかにもいろいろ調べていきます
プリムセーバーの件についてですが
超低スペックPC使用時代から愛用してますが使ったからといって重かったことはないです
けど欠点があるとするなら土地の使用可能臨時プリム数超えた数をセーバーかけると
プリムが表示されなくなるということかな
一応愛用者としてほかにもいろいろ調べていきます
Posted by ツクハ at 2008年02月21日 02:12
>>オンマちゃん
眠れない時に、ぜひどうぞ!
>>ツクハちゃん
なるほど。
オレも色々調べてみますね!
ありがとう。
眠れない時に、ぜひどうぞ!
>>ツクハちゃん
なるほど。
オレも色々調べてみますね!
ありがとう。
Posted by Geteee Gausman at 2008年02月21日 12:24
コリジョンに関していうと、SIMが落ちるくらいの負荷がかかります。
物理かけたプリムが絶え間なくなにかにぶつかるような事があると速攻落ちますね。
乗り物の乗り捨ては、ぶつかってなくてもかなりやっかいになります。
また、SIT系オブジェクトは使用してるとき、してないときの数値差がハンパじゃないです。
って、知性派ゲティに拍車をかけてみる。
物理かけたプリムが絶え間なくなにかにぶつかるような事があると速攻落ちますね。
乗り物の乗り捨ては、ぶつかってなくてもかなりやっかいになります。
また、SIT系オブジェクトは使用してるとき、してないときの数値差がハンパじゃないです。
って、知性派ゲティに拍車をかけてみる。
Posted by Sincrea at 2008年02月21日 17:22
どうもこれはこれは
お世話になります。
お世話になります。
Posted by Geteee Gausman at 2008年02月21日 18:14
クレアさん
>また、SIT系オブジェクトは使用してるとき、してないときの数値差がハンパじゃないです。
ですが、FurryJapan様の「ラグ考察」ページ内に書かれています。
http://furryjapan.sakura.ne.jp/Lagtai.html
Sitした時に、Sitした人が装着しているスクリプト処理負荷値が「見える」ようになるだけで、Sitする前も後もサーバーの処理的には変化なし、ということらしいっす!
>また、SIT系オブジェクトは使用してるとき、してないときの数値差がハンパじゃないです。
ですが、FurryJapan様の「ラグ考察」ページ内に書かれています。
http://furryjapan.sakura.ne.jp/Lagtai.html
Sitした時に、Sitした人が装着しているスクリプト処理負荷値が「見える」ようになるだけで、Sitする前も後もサーバーの処理的には変化なし、ということらしいっす!
Posted by Geteee Gausman at 2008年02月22日 17:13
なんだって!w
「お世話になります」使ったので減点1
「お世話になります」使ったので減点1
Posted by Sincrea at 2008年02月22日 18:04
減点1だったら大した痛くないね!
Posted by Geteee Gausman at 2008年02月22日 21:36
じゃぁ追加で減点9で免停(ナニ
Posted by ツクハ at 2008年02月23日 00:03
免停だけはなにとぞなにとぞ
Posted by Geteee Gausman at 2008年02月24日 16:15


