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

もともとリアルサイズなアバター故にアジア圏以外が主催のSIMなどでは低身長として扱われることも少なくなかったのですが、さほど気にせず自分の好みの見た目として楽しんでいました。ところが、先日、とあるSIMを訪問した時に「身長が5フィート以下だから子供は帰りなさい」というメッセージと共にEjectというかGo to HOMEで排除されてしまったのですが、常々でアバター身長は5フィート3インチ(あるいは2インチ)と思っていたので何故5フィート以下という制限にかかってしまったのだろうと疑問に思い現状でアバター身長の扱いはどうなっているのか調べてみることにしました。


■今でもビュワーによって身長の値が違っている
LSLのスクリプトから見る場合llGetAgentSizeの関数の返却値のZ軸方向の大きさを元にしてアバターの身長を得るのですが、このAgentSizeで得られる値がビュワー上での「見た目の大きさ」と異なるために、より正確に表現する目的で一部のTPVでは数値に補正をしています。

(各ビュワーのソースコードはこの記事時点での最新版を参照しました)

①補正値が無くAgentSizeそのままの値を身長とするもの

・Linden lab - official viewer




・Restrained Love Viewer



・Black Dragon viewer


・Alchemy viewer


・Catznip viewer


・Kokua viewer





②AgentSizeに0.17mを加算した値を身長とするもの

・Cool VL viewer
よく見たらこのビュワーだけ靴の分の高さを減算してますね。


・Singularity viewer



③AgentSizeに0.195mを加算した値を身長とするもの

・FireStorm viewer




このように公式ビュワーに準ずる仕様のビュワーが多数。(そもそもビュワーの種類自体が減ったというのもあるが・・・)






■公式仕様とはいえ見た目とかなり異なることは改善すべきでは?
実際、llGetAgentSizeからの返却値を実体としてアバターと比較すると、この画像のようになります。右の水色がllGetAgentSizeそのままのもの。左の緑色がllGetAgentSizeのZ軸に0.17mを加算した箱のプリムです。(なお、横幅と奥行きのサイズ=XとY軸の値はどんなスリムな人でも、肥満なアバターでも固定値なので、こんなおデブじゃなーい、と嘆かないように)
この状態だとプリムの位置をアバターの中心位置に高さを合わせているため足下から離れて見えていますが、それでも明らかにアバター本体より水色(右側)は小さいという事実が見て取れます。


見た目の正確さを図るため
足下の床位置で
アバターと箱プリムの底面の
高さを合わせてみます


さらに比較用にllGetAgentSizeのZ軸に0.195m (FireStorm仕様)を後ろに追加してます(紫色)
どうです?公式仕様とはいえ、見た目のアバターの背丈とllGetAgentSizeでの背丈が、かなり違っていることが分かります。そりゃ17cm~19cmも違ったら大きな差だよねってことで、プリムの見た目に合わせて正確に5フィート3インチのアバターを作っても、5フィート以下の子供じゃんって事になる訳なのです。

このことから精密にリアルサイズで家具や建物を作っても「アバターの大きさに合わない」という結果になってしまうのは、この為ではないでしょうかねぇ。

もう一つ比較用の追加でllGetAgentSizeのZ軸に1.125を乗算した物を追加(橙色) このZ軸に固定値を加算するのではなく係数で乗算するという考えは元のアバターの身長に影響を受けず、見た目と近い値になるということで先人が考えたものなのですが、残念ながらどこにも(viewer系では)採用例が無いという状況にあります。 (元ネタ → LSL WIKI - llGetAgentSize

参考までに各色の箱プリムが示している数値としての高さは
水色 → 1.41892m (AgentSize.Zそのまま)
緑色 → 1.58892m (AgentSize.Z + 0.17)
橙色 → 1.59628m (AgentSize.Z * 1.125)
紫色 → 1.61392m (AgentSize.Z + 0.195)

注:アバターのサイズ値は±3cmの誤差を生じる場合があるので常に厳密ではありません → 精度が3cm毎らしいです






■10年経っても変わってない LOL
というわけで周りの物がMESH化で、より精密に、より正確に再現できてもアバターは昔のままであるという、ちょっとした落とし穴じゃないかな。新人泣かせというか、通過儀礼なのかもww 多くの人が利用しているFireStorm viewerですが、FireStormのそれは今では独自仕様の1つになってしまっているという事実なのでした。しかしながらアバターの身長の扱いが異なるビュワーが存在すること、ましてや実際の見た目と数値をプリムで実体化したものでは違っていることを、もはや慣例として受け入れてはいても、新しいSecondLife住民は知らない事なのかも知れませんね。そもそもがアバターのBounding Boxの大きさからX,Y,Zのスケールとして返却しているだけという仕組みだから「アバターの見た目と数値を実体化した物が等しくないことは当然である」というか、そういう仕様だという認識が浸透すればいいのですが、そのためには公式のビュワーから対処して欲しいですね。。。:p




■身長200cm越が多い理由 (2019-10-06 追記)
各計算における比較をしてみると明白です。
左から
素の状態
+0.17m
+0.195m
×1.125

公式のビュワーに従い「素の状態」でアバターを作成すると、ちょっと格好良くしようと身長を高くすると、あるいは米国人などであれば普通に身長180-190が居ますから、米国人サイズで公式ビュワーの数値を参照しながらアバターを作ると、もれなく身長200cm越の背の高い人になるのです。


また、Second Lifeでのアバターの身長など見た目の調整(シェイプの調整)は、中央値を50とした値から増減した結果から最終的な見た目が生成されます。

左図では身長=50指定の男性体型で靴無し状態にて身長=1.93mとなっています。(CoolVLViewerで表示(身長+0.17m仕様)最終的な身長は各部の値により増減します)
左図では身長=50指定の女性体型で靴無し状態にて身長=1.84mとなっています。(CoolVLViewerで表示(身長+0.17m仕様)最終的な身長は各部の値により増減します)

このように身長=中央値とした状態から、その付近の身長が多いのでしょう。

ライブラリーにある初期アバターの身長を数値で190cmにすると
見た目での身長は214cm程になることから
単純に固定値を加算するのではなく、1.125の係数を乗算するというのがもっとも見た目の実寸に近い結果になります

この固定数値で係数を乗算する方法は
一見すると良さそうに見えますが
ある範囲を超える場合に正しく算出しなくなるので
固定数値(0.17または0.195)を加算する方法が正解です。

このことについて検証した記事は次の3つです。
Compare Realistic looking prim height detector1
Compare Realistic looking prim height detector2
Compare Realistic looking prim height detector3
3つの記事から結論だけ示すと

+0.17mというのは、この記事でも画像で示すとおり見た目の実像の身長です。

+0.195mというのは、0.17 + 0.025の値であり、0.025というのは実際にはアバターは物体表面から僅かに浮いて描画されるので(その高さが0.025) その分を加算して見た目の身長とした値です。

まぁ世の中、こんな10等身を遙かに超える
キャラも居るのですから
表現の自由ですが・・・ LOL


2019/10/04

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

Search (in blogs)

Featured

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

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

Picks

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

template by QooQ