Ads by Google

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Ctrl+右クリックで出るメニューに項目追加

海域変動システムの手動設定がやりづらいという報告が結構きているので、
Ctrl+右クリックで出るメニューに項目を追加することにしました。
以下のような感じになります。

メニュー追加

これで大航海時代Onlineの入港許可地図を見ながら直観的に設定できるのではないかと思います。
尚、大航海時代Onlineのアップデートが近いため、公開はアップデート後になる予定です。

テーマ : 大航海時代Online - ジャンル : オンラインゲーム

更なるCPU使用率の低減と安定化

現状でもそれほどCPUに負担をかけない交易MAP C#ですが、
個人的に気になる点があるのでそれを修正しました。

気になる点は以下のものです。
・文字列の表示をDirectXのDXライブラリに丸投げのため、表示する文字数が多くなるとCPUを多く消費してしまう
・航路図の描画で画面外の描く必要のない線を多く描いてしまっている

航路図はバウンディングボックスを細かくすることで描画負荷を軽減することにしました。
バウンディングボックスを可視化すると以下のようになります。

バウンディングボックス


文字列の描画でネックはアイテムリストです。
以下のように変更しました。

アイテムリスト


パッと見違いがあまり分からないかもしれませんが、
DirectXとWindowsコントロールのハイブリッド描画となっています。
うまくその他の部分に溶け込むように配置できたかなと思います。
この部分を大きく変えたため、動作チェックに時間がかかってしまいました。

達成状況に絞込み追加とか

あまり更新されないDASですが、現在達成状況ダイアログに絞込み機能を追加中です。
イメージはこんな感じ

絞込み追加イメージ

これで沈没船を除いた達成状況とかを確認できます。

テーマ : 大航海時代Online - ジャンル : オンラインゲーム

危険海域変動システムの可視化

危険海域変動システムが実装されたときから少しづつ可視化を実装してたのですが、陸地のマスクをどうするかで結構迷いました。

地図のマスクを作りステンシルバッファに描画後、海域を矩形でフィルする、というのがスマートな気がしてたのですが、VRAMの使用量が単純に倍に増えてしまうという問題があります。

基本的にCPU、GPU共に利用率を最低限にし、大航海時代Onlineの動作に迷惑をかけないアプリケーションにするのが設計段階からの個人的な決めごとだったりするので、VRAMの使用量をあまり増やしたくなかったのです。

最終的には海域毎にマスク付きのテクスチャを作成するという方法で実装しています。
海域に陸地がない場合はそのまま矩形でフィルし、広い海域等で少しだけ島がある場合もマスク付きテクスチャを作成せず、単純に矩形でフィルするだけになっています。(ラパ・ヌイ等)
なので太平洋にある島は色が赤くなったり青くなったりします。

マスク有りとなしでは以下のような感じです。
マスク有り

マスクなし

尚、設定用のドクロアイコンはどうも評判が良くないのでなにか違うものに変更するかもしれませんが、適当なアイコンが思い浮かばないのでしばらくはこのままでいくと思います。

テーマ : 大航海時代Online - ジャンル : オンラインゲーム

コンパス解析のアルゴリズム

コンパス解析は基本的にオリジナル交易MAPと同じものです。
北を指す黄色の矢印がどこにあるかを画像から解析します。
最終的に256ヵ所の点から場所を探しますが、点の位置は以下のような感じになっています。

コンパス 

解析は以下のように行われます
・1つ飛ばしに黄色の場所を探します(最大128回の検索)
・見つかった場所以外に黄色の場所がないか探します(+-5で最大10回の検索)
・最小と最大を足して2で割った場所を角度とします
・2で割ると小数が出ることがあり、この場合512段階の分解能となります


・10で黄色が見つかる
・最小として9で黄色が見つかる
・最大として12で黄色が見つかる
・(9+12)/2=10.5となり、10.5を角度とする

テーマ : 大航海時代Online - ジャンル : オンラインゲーム