【GAME】ARMA3 EXILE MODサーバの旅その23
この写真が物語っております。
(;´Д`)
座標がズレまくっとるんです。
大量に配置したオブジェクトを、1個1個調整してるんですよ。
ほら、ARMA3って、起動に時間が掛かるでしょ。編集しては、確認の繰り返し・・想像出来ますでしょうかw
ほとんどのEXILEトレーダーって、地べたに無造作に配置してるパターンが多いじゃないですか。
これが理由だったんでしょう。
ここまで来たからには、妥協はしたくないんですね。
先日までは、(数百個の)MAPオブジェクトと格闘していたんです。
こちらは、もう、妥協できる所まで完了しました。
0.01レベルで調整しないといけないんです。
これだと、Z軸で、0.03位かな・・と、目視で分かるようになってしまった私がここにいる・・。
オブジェクトには、大きく2種類あって、動作するか、又は、静的なシンプルオブジェクトがあって。
前者のもので配置してしまうと、問答無用で物理演算が働いてしまう。
ちょっとでも触れてたら、どっかに吹っ飛ぶ訳です。
(;´Д`)
トレーダーなんかだと、雰囲気作りのため沢山のオブジェクトを置くので、恐ろしい事になります。
なので、こういった場面では、シンプルオブジェクトを利用するのです。PhysX・物理演算も無いので、より高速で処理ができる。サーバにとっても、クライアントにとっても良い訳です。
しかし、オブジェクトによっては、シンプル化できないものがあるんです。
車両、ドアの開閉するもの、武器や装備品の多く、アイテムの一部など、結構存在してます。
これの判断材料が、今のところ分からない・・という問題が。
でも、一応、createSimpleObjectに、3Dモデルデータパスを指定すれば良いのは分かってるので、なんとかなりますが。
エディタ(M3Editor)が出力したデータは、クラス名だけで、そのままでは通せない(シンプル化できるオブジェはクラス名だけでも通るみたいだが)
上の写真の様に、様々なスクリプトを書いてはテストしてるのですが、一向に改善しません・・。
ほんと、手作業で一個づつ書き直していくしか無いんか・・。
(´;ω;`)
以下は備忘録なので。
M3Editor書式そのままを、シンプルオブジェクトで置く(上記の問題有り)
private _simpleObject = createSimpleObject [_x select 0, _x select 1];
_simpleObject setVectorDirAndUp [_x select 2, _x select 3];
一度ダミーで動的オブジェクトを作り、それを元に3Dモデルパスを取得後、静的オブジェを作成(問題有り:そもそもモデルパスが帰らない)
private _dm = (_x select 0) createVehicleLocal[0, 0, 0];
private _in = getModelInfo _dm;
private _so = createSimpleObject [_in select 1,_x select 1];
_so setVectorDirAndUp(_x select 2);
deleteVehicle _dm;
静的オブジェクトでも、綺麗に整頓してくれる便利な関数。だが、結局のところ微妙。
[_so,_in] call BIS_fnc_adjustSimpleObject;
オブジェクトの作成で、以下のように5引数に”NONE”というのが最も高速なんだそうです。ちなみに、”CAN_COLLIDE”は、(物理演算しない?)強制配置になりますが、微妙でした。
private _so = createVehicle[(_x select 0),(_x select 1),[],0,"NONE"];//CAN_COLLIDE
createVehicleで作成されたオブジェクトは、非同期で作成されるので、ものによっては、生成前にコードが走ってしまう場合があります。なので、0.5秒は待てと、公式では言ってるようです。
(´・ω・`)知らんがな
(追記予定)
ディスカッション
コメント一覧
お久しぶりです。
なべさんもしかして鯖側でのオブジェクト設置とかでやってます? 私あれをやってたんですけど、位置ズレひどくて断念しました。
どもです。
M3Editorで配置すると聞いたような気がしたので、純粋にそれを信じてしまってましたが、もしや・・ですか。。
どえらい作業量が無駄と・・・
はじめまして。
いつも拝見させております。
完成したらぜひプレイしたいので頑張ってください
あ・・まりがとう御座います。
あまりに時間を掛けすぎてるので、飽きられてるかも・・と不安でしたが、少しばかり元気が出ました。
(´;ω;`)