アーカイブ

2012 年 3 月 のアーカイブ

X-Plane 10 on MBP 2008 / X-Plane 10 を 古いMacBook Proで快適に使う設定

2012 年 3 月 12 日 コメントはありません
X-Plane 10

UKから届いた X-Plane 10

 

Amazon.co.jpでX-Plane 10が「在庫有り」になっていたので、ぽちっと注文したのが12日前。
なんと、在庫有りで出品していたのは英国の会社で、発送にRoyal Mailの普通郵便で送るから到着に12日も要した。
他の出品者が国内発送だったり、Amazon以外の国内のショップから買うこともできたのに、まさかUKから来るとは…全く気付かなかった。
スチール缶の中に8枚組みのDVDと、インストールとフライトのそれぞれ簡易マニュアル 入り。

機体を追加したり、シーナリーを追加したり、少し手を加えてからいざフライト。
インストール直後の設定だと、主に雲の描画設定が最高になっていて重い。
しかし日本のコミュニティは寂れていて、X-Plane8とか9くらいまでの情報しか無かった。

結局試行錯誤を繰り返し、自分のMacBook Proで快適に動き、なおかつ見た目も良くなる設定を導き出した。
ちなみに「快適」の基準は、カスタムシーナリーでゴテゴテの羽田とサンフランシスコでの日中 のランディングがスムースにできるかどうかで判断したので、フレームレート見てFPSいくつだ、というスペック狂的最適化はしていない。

自分のMacBook Proは2008年の17インチ。

MacBook Proのスペック

インストール先のMacBook Proのスペック

 

基本的な性能としては、CPUが Intel Core 2 Duo の2.4GHzに、RAMが4GB、グラフィックはGPUがNVIDIA GeForce 8600M GT に256MBのVRAM。
OSはLionになっていて、普段は自宅での仕事用にBootCampでWindows 7を動かしているので、iPhoneアプリ開発用のXcode以外は何も入っていない素に近い状態。

もう4年近く前の機種なので、CPUのCore 2 Duoはかなり古い印象だし、メモリーもこれ以上増やしてもチップセットの制限であまり良くはならない、ノートPCなのでグラフィック性能はどうにも…

で、この環境で快適に使うのに今のところベストだと感じている設定が以下の通り。

X-Plane 10 快適な設定

古いMBPで快適なバランスのとれた設定

 

重要なのは、アンチエイリアスの設定を弱めて負荷を軽くしつつ、解像度を下げて画面を若干ぼやかすと、なんと見た目の雰囲気は大して変わらず処理負荷は大幅に軽減されるところ。

compress texture to save VRAM : no
→ VRAM容量節約にテクスチャを圧縮するかどうかだけど、これを有効にすると重かったので解除。

texture resolution : high
→ 画面解像度を下げているので解像度を高めておいても、トータルのデータ量が少なくなってhighにできるのかと。

screen resolution : 1,280 x 800, 32 bit
→ ここがポイント、アンチエイリアスで滑らかにする代わりに解像度を下げてぼかす。意外と変にならず綺麗に見える。

number of trees : filled in
→ 負荷に影響すると言われていたけど、今のところ問題無い。

number of objects : too many
→ これは確かに負荷に影響するようで、ごちゃごちゃした複雑なカスタムシーナリーではこの設定でだいぶフレームレートが変わる気がした。しかしながらこの設定で複雑なサンフランシスコも羽田もヒースローもOKだった。

number of roads : tons
→ これもobjectsの次に負荷に影響している気がする。少なくすると羽田から離陸した後、レインボーブリッジのループが表示されないのでtonsにしてみた。

number of cars : none
→ 車はいらない。車が見えるほど低く飛び続けることはないし、ただ一方向に道路上を流れるだけで面白みを感じなかった。

world detail distance : high
→ highにしておかないと、高高度を飛んでいるときに眼下にオブジェクトがひょこひょこ表示されて微妙だし、ここまでは引き揚げられたので。

airport detail : high
→ ほんとうはTotally Insaneにしておきたいのだけど、離発着時のスムースさの観点でhighに抑えた。

shadow detail : overlay
→ これは選択が難しかった。Overlayだと地面に機体の影が反映されるだけ。3Dだと機体に自機の影が落ちる、例えばヘリのプロペラの影が機体に反映される。それ以上の設定ではいろんなオブジェクトに影が反映されるのだけど、なぜか影にジャギーが出て見にくいし、コックピットから自分の機体を見ることはないのでOverlayで。しかし他の設定にしても、特に負荷が高まったという印象は受けなかった。

water reflection detail : advanced
→ 水の反射の処理、これは上から2番目のadvancedが丁度良い。低くすると水面が変で、最高にすると負荷が高すぎた。

screen anti-aliasing : 2x(nice)
→ アンチエイリアスの処理。あまり高くしても解像度を下げているので細部の違いが分からない。1xだとジャギーが目立ってあまりよくなかった。

anisotronic-filter level : 2x(nice)
→ これは試行錯誤せず何となく2xだけど、どう影響が出るだろう?

number of cloud puffs : 10% not many
→ この雲の設定が一番負荷に影響する! 0%だと快適そのもの。treeやroadをデフォルトにすれば解像度を最高にしても平気。 でも雲が全く無いのもつまらないし、10%でも100%でもMicrosoft Flight Simulator X(FSX)と違ってわざとらしいモコモコになったりしないので表示はするけど最低限な10%。

AI機は飛ばさないので0にした。
AI機を例えば5機にしても、飛びながらその5機を見つけたり注目したりするか? と考えるとあんまり…
他機を意識するほどの出現頻度となると、うんと沢山出てきて貰わなきゃならないので負荷になるし。

とまぁ色々試行錯誤していますが…普段メインで使っている手元のMacは2010年モデル。
CPUは TurboBoostとHyperThreading対応のCore i5 2.53GHz、メモリーは8GB、グラフィックもVRAMガ512MBあるのでだいぶ快適なはず…

手元のMacBookはもっと高性能だけど…

手元のMacBookはもっと高性能だけど…

 

2年ごとに買い増しているので、今年もしMacBook Proラインでアップデートがあったら、このMBPをX-Plane用にしよう。

X-Plane は年末に10が出て、本来の「機体のテスト」よりも「ホビーとしてのシミュレーション」的な機能が追加されたらしい。
が、機体やシーナリーの互換性で多少問題があるようで、X-Plane 9用で配布されているものが使えたり使えなかったりする。

あと、CH-47 Chinook なんかは、X-Plane 7や8用しか見当たらず、10に入れてもエラーでロードできなかった。

それから、起動時にDVD1をマウントしておかないとデモ版になってしまう。
面倒なので、OS標準のディスクユーティリティで イメージ化しておいた。マウント早いし快適。

FSXとの違いは、やっぱり新しいプログラムなので、新しいCPU(FSXは64bit非対応)、新しいグラフィック(FSXはDirectX非対応)に対応していて快適そのもの。
それに何より、FSXは離陸からやらなきゃならないのに対し、X-Planeはランディングだけ、進入直前からスタートできて面白い。

機体の挙動もFSXのゲーム的なものではなく、航空工学やら物理演算に基づいた動きがなかなかよくできている。

カテゴリー: Gadget, IT news

PHPでNuSoapを使ってSiteCatalyst APIに接続する

2012 年 3 月 9 日 コメントはありません

Adobe SiteCatalystのAPI(AdminとかReporting)に繋ぐときに使える関数。
元はサンプルコードから抜き出したもの。

まずリクエストヘッダーを生成する関数。

function get_header($username, $secret){
    $nonce = md5(rand());
    $created = date("Y-m-d H:i:s");
    $combo_string = $nonce . $created . $secret;
    $sha1_string = sha1($combo_string);
    $password = base64_encode($sha1_string);
    $headers = '<wsse:Security SOAP-ENV:mustUnderstand="1">
       <wsse:UsernameToken wsu:Id="User">
       <wsse:Username>'.$username.'</wsse:Username>
       <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">'.$password.'</wsse:Password>
       <wsse:Nonce>'.$nonce.'</wsse:Nonce>
       <wsu:Created>'.$created.'</wsu:Created>
      </wsse:UsernameToken>
     </wsse:Security>';
    return $headers;
}

それから、実際にAPIをコールして結果を返す関数。

function api_call($soap_func, $wsdl, $rsids, $username, $secret){
	$client = new nusoap_client($wsdl, TRUE);
	if($err = $client->getError()) {echo "ERROR:".$err."\n"; exit();}
	$result = $client->call(
                $soap_func,
                array("rsid_list" => $rsids),
                'http://omniture.com',
                '',
                get_header($username, $secret)
	);

	return $result;
}

使い方は簡単。
この2つの関数を読み込んで、以下の様にコールするだけ。

$username = "******";
$secret = "*****";
$rsids = array("RSID1","RSID2","RSID3","RSID4");
$result = api_call(
	'ReportSuite.GetSettings',
	'omniture_wsdl_sj.xml',
	$rsids,
	$username,
	$secret
);
var_dump($result);

この例では、複数のReportSuite IDについて、レポートスイートの設定内容が返って来る。
Dr.Hの自動SDRとかはこれで動いている。

緑のイタリックは変えてね。
$usernameと$secretは管理コンソールで取得したウェブサービス用ユーザー情報。api_callの第一引数がコマンド。

ご利用は計画的に自己責任で。

カテゴリー: Web Access Analysis