2018年の "G5" と "G5/STD-UI-SS" の開発状況について
技術的なはなし
こんにちは、 GONDWANA を作っているなかのひとこと伊藤兎です。
昨年は GONDWANA を OpenGL 系のフルスクラッチで書いていた開発コード名 "G3" から、 UE4 エンジン採用の新型 "G4" へ移行し、今年7月までブログに報告しているように "G4" を開発していました。
では、その後 8月からはどうなっていたかと言うと、 UE4 エンジン採用はそのままながら、より土木用土の機能を強化できるよう、地形のシステムを単なるポリゴンの面貼りだった "G4" までから大幅に変更し、完全なボクセルベースのデータと描画のシステムへ移行した "G5" の開発を試みておりました。
↑ボクセルベースで地形を処理・描画しているのですが"表面"だけ見ると従来との違いは見えません。
でも…、↓
↑新型の "G5" ではいつでもどこでも一瞬で地形を縦横断をして見られます。
すぱっとまっすぐに切断面を見るほか、巨大な穴を開けたり、孤島のように注目したい土地だけを残して切り取ってみたりもできます。切り取った地中の地質体についても簡単に見られるよう実装を進めています。
この機能は任意性の高い3D縦横断図や地質体の視認が容易になるだけなく、3D地図を見ながらの切土、盛土による地形編集、DEMとポリゴンでは表現の難しい崖地やトンネルの表現など、土木屋さん的に嬉しい機能を3D地図へ導入しやすくなりました。
↑ほかにも非常に要望の強かったリアルタイム・コンター機能を追加するなど、これまでのGONDWANAへ頂いていたユーザーニーズにも対応を進めています。事前計算で生成済みのコンターと違い、 "G5" の地形編集機能や切断面表示でも "G5" のリアルタイム・コンター機能ではコンターを視認できます。コンターの間隔や色もユーザーの好みや同時表示する地図に合わせて設定できます。
↑地物の機能にも非常に高いユーザーニーズを頂いていたボーリングデータへの対応を追加しています。ボーリング地物は KuniJiban とシームレスに連携して利用できるよう開発しています。
↑3D地図の地中から柱状図を視認できるようにしてみたり。
さて、ここまでは GONDWANA の技術的な的な話でした。
2019年、ビジネスアプリとしての実用製品の GONDWANA へ
"G5" ではビジネスアプリとしてのUI(ユーザーインターフェース)の実装を施しています。
これまでは GONDWANA は本体の機能開発や実験的な試作を続けて来ましたが、各段階でのβテストへご参加頂いた方、開発ブログなどで進捗を見守り頂きご期待を頂いている方、弊社営業へお問い合わせを頂いている方々も多く、そうしたユーザーの皆様へそろそろ土木ビジネスアプリの実用製品として GONDWANA を本格的に提供したい流れから、2018年末よりこのような本格的なビジネスアプリのUIの開発を進めています。
データ連携や編集もエクセルとの相互入出力にも対応、GONDWANA本体では表示の難しかった地物データの一覧や概要の表示対応などビジネスアプリのユーザビリティーを大幅に向上しています。
また、G5/STD-UI-SS は GONDWANA 本体とは別に独立して動作可能です。 GONDWANA 本体は必要に応じて G5/STD/UI-SS のタスクバー右上の「G」ボタンから簡単に起動と終了が可能で、使わない時にはタスクトレイへ小さく収める事もできます↓
G5/STD-UI-SS は単独でも土木屋さんのデスクトップに常駐してウェブ地図サービスをさっと使いたい場合のインターフェースとして単独でも便利なように開発しています↓
毎年、リリースを計画してはβテストからのフィードバックや新機能開発などでリリースを翌年へ翌年へと調整してきましたが、今年も "G5" の開発からリリース計画をまたしても翌年へと調整をさせて頂く事が必要となり、開発のなかのひととしてもリリース版へのご期待を頂くユーザーのみなさまにはたいへん心苦しくはあるのですが、2019年にはビジネスアプリとして実用性の高いリリース版の GONDWANA をいよいよ提供開始できると思いますので、どうぞ、いましばらくお待ち頂ければ幸いです。
それではみなさま、本年もありがとうございました。また2019年以降も引き続き GONDWANA ならびに弊社 五大開発株式会社 をよろしくお願いいたします。
G4-4.0.7.2 CBT Release
Release Note
- 新機能
- タイルサービスに対してローカルファイルシステムへのキャッシュ機能が実装されます。
- 標準のローカルキャッシュ保存先は G4FS (
filesystem/
) 下のvar/cache
です。- 設定ファイル
DataCenter.cache_prefix
にてvar/cache
以外の任意の G4FS パスへ変更できます。
- 設定ファイル
- タイルサービスごとのキャッシュファイル構造は上記パスに
tile/{type}/{name}/{z}/{y}/{x}{.ext}
の形式となります。{type}
: 標高タイルの場合はaltitude
、地表面のレイヤーの場合はsurface_layer
。{name}
: タイル定義のタイル名です。タイル名に/
文字を含む場合はディレクトリー区切りとして有効に扱われます。{z}
,{y}
,{x}
: タイル座標です。{.ext}
: タイル定義のurl_pattern
の末尾がファイル拡張子となっている場合は、そのファイル拡張子となります。
- 標準のローカルキャッシュ保存先は G4FS (
- 地形の物理シミュレーション機能の実装分離とデータ生成時の未使用メモリーに対する最適化などで、「準備中」で行っていた処理が282倍高速化され、LOD=15でも1秒未満で完了するほとんど気にならない程度になりました。
- このため、実験的に本バージョンから「準備中」を排除したリアルタイムの地形ローディング動作へ切り替えました。
- 時間分割型のタスクシステムの応用により「準備中」の後に、さらに地形の実際の描画が可能になるまでの間、一時的にプチフリしたような状態になる時間が体感上大幅に軽減されました。
- 「地表面のレイヤー」メニューGUIに「発光度」の設定が追加され、太陽が沈む夜のシーンでも地表面のレイヤーの視認性を確保しやすくなります。
- 設定は「なし」「弱」「強」「数値指定」から選択でき、標準設定は「弱」です。
- 隣接地形のLOD効果に係数を設定可能になります。
- 従来:
{LODレベル減衰量} = {隣接距離} × {-1}
(係数は-1
に固定){隣接距離}={X軸距離}+{Y軸距離}
(等距離面が菱形になります。広域の表示でやや違和感が生じます。)
- 以降:
{LODレベル減衰量} = CEIL( {隣接距離} × {係数} )
{隣接距離}=SQRT({X軸距離}^2+{Y軸距離}^2)
(等距離面が円形になります。広域の表示でも感覚的な距離の一致性が向上します。)
{係数}
はコンフィグレーションのPlanet.adjacency_cell_factor
に実数値で与えます。{係数}
の標準値は-0.7
です。この設定では、中心地のLODレベルが15
の場合、隣接距離が1増加する毎にCEIL(14.3)=15
,CEIL(13.6)=14
, ... ,9
,8
,8
,7
,6
,6
, ... のように従来に比べ穏やかに減衰するようになります。
- 従来:
- タイルサービスに対してローカルファイルシステムへのキャッシュ機能が実装されます。
- 変更
- バグ修正
- 起動後、初回の注視点または視点の操作の際にHUDの表示が若干乱れる問題が修正されます。
- 再現困難だが使っているとたまに発生しG4が落ちてしまうバグが修正されます。
- しばしばタイル間の補完が行われないバグが修正されます。
関連チケット
Videos
G4-4.0.7.2-dev Ultra fast start-up demo from Usagi Ito on Vimeo.
G4-4.0.7.2-dev realtime terrain loading from Usagi Ito on Vimeo.
Screenshots
「地表面のレイヤー」メニューGUIに追加された「発光度」の設定:
G4-4.0.7.1 CBT Release
Release Note
- 新機能
-
メインメニュー
->地表
->LODの設定
: 「地形・地表面のLODの設定」メニューGUIが追加されます。 -
LOD調整値
が新たに導入されます。- LOD制御方式に応じて決定される中心地及び付近の領域のLOD値を任意に加減できます。
-
LOD中心地点の選択
が新たに導入されます。- 旧仕様: 常に注視点を中心
- 新仕様: 中心を「注視点」、「視点」、「地物」から任意に複数組み合わせて設定可能
- この新機能により視点を注視点から離し地表に水平に近い視野で眺めたい場合や、散らばった地物の周囲も精細に眺めたい場合などユースケースに応じた領域の精細化を選択的に使用できるようになります。
-
LOD制御方式の設定
が新たに導入されます。- 旧仕様: 常に最大の精細度から展開
- 新仕様: 3つの設定タイプから選択可能
- Type-0: 常に最大の精細度から展開する
- Type-1: 視点の高度に比例して自動的に精細度を制限する
- Type-2: 視点からの距離に比例して自動的に精細度を制限する
- この新機能によりユーザーが望む視野または具体的な精細度設定に応じたLOD展開による視界を得られるようになります。
-
- 変更
- コンフィグレーションの
Planet.adjacency_cell_distance
の効果と有効な値の範囲が変更されます。- 旧仕様: LOD細密化の中心地と同じLODレベルを適用する隣接した領域の距離。有効な値は
[ 0 ... 2 ]
。標準値は2
。 - 新仕様: LOD細密化の中心地から距離に応じて線形に減衰するLODレベルを適用する領域の最大距離。有効な値は
[ 0 ... 64 ]
。標準値は16
。 - 値を小さくした場合、実行時の負荷は減少しますが、視覚的にはLOD細密化の中心地に近い領域でも四分木構造に基づき粗いLODとなりやすくなります。
- 値を大きくした場合、実行時の負荷は増加しますが、視覚的にLOD細密化の中心地に近い領域のLODレベルがなだらかで段階的な減少となり視覚的、直感的な細密化精度が得られるようになります。
- 旧仕様: LOD細密化の中心地と同じLODレベルを適用する隣接した領域の距離。有効な値は
- コンフィグレーションの
Planet.pmc_pool_initial_count
の標準値が1024
から256
に変更されます。- この変更は 4.0.7.0 による負荷軽減と 4.0.7.1 に伴う負荷軽減の効果により、通常使用におけるリソースの要求量がおよそ 1/4 に低下したためです。
- 実行中にアクティブではない下位のLOD領域の処理を軽減する事で実行中のCPU/GPU負荷が軽減され、より快適に使用しやすくなります。
- コンフィグレーションの
- バグ修正
- 注視点の移動などに伴う地形の再構築が発生した場合にしばしば特定の領域が欠落して穴が空いたような状態となるバグが修正されます。
関連チケット
Screenshots
G4-4.0.7.0 preview-7 CBT リリース
preview-7 系の最初のリリースになります。 preview-6 系では GUI の拡充を中心に更新してきました。今回のリリース以降の preview-7 系では、地形機能、地物機能、内部処理の高効率化を中心に更新します。今回のリリースでは負荷の大幅な軽減と安定性の向上、地表面のレイヤーシステムの改修が中心です。引き続き CBT となりますが、ご試用、ご意見など頂ければ幸いです。
Release Note
- 新機能
- 地表面のレイヤーの合成手法に既存の不透明度に加えて、新たに4つの手法が追加されます。
- 「加減算」: 加算合成を行います。係数を設定し、任意倍率での加算、減算が可能です。
- 「乗算」: 乗算合成を行います。係数を設定し、任意倍率での乗算が可能です。
- 「比較(暗)」: より暗い方の色を採用する合成を行います。
- 「比較(明)」: より明るい方の色を採用する合成を行います。
- 地表面のレイヤーの合成手法の簡単な解説が常に表示され、目的に応じた合成方法を選択しやすくなります。
- 地表面のレイヤー・メニューに「下地色」が追加されます。
- レイヤーの合成方法に応じて「白」「灰」「黒」から見やすいものを選択して使用できるようになります。
- 地表面のレイヤー・メニューに「後処理: RGB 反転」が追加されます。
- レイヤーの合成結果が暗すぎる場合、明るすぎる場合などに RGB 反転により視認性が向上する事があります。
- 地表面のレイヤーの合成手法に既存の不透明度に加えて、新たに4つの手法が追加されます。
- 変更
- バグ修正
- アプリの終了時に取得途中のタイルがある場合などに不正終了が発生する事があった問題を修正しました。
- ワイヤーフレームの設定が注視点の移動の前後で適用具合が乱れる事があった問題を修正しました。
videos
- 使いやすく軽快になった地表面の「レイヤーシステム」
G4 4.0.7.0-dev 使いやすく軽快になった地表面の「レイヤーシステム」 from Usagi Ito on Vimeo.
- ドラッグアンドドロップによるレイヤーの入れ替え(以前から可能でしたが、実装済みの旨があまり伝わっていないようなので動画を追加で撮影しました。)
G4-4.0.7.0 preview-7.0 CBT 地表面のレイヤー機能、GUIリニューアル 開発中の様子 2 from Usagi Ito on Vimeo.
screen shots
G4-4.0.0.26 (preview-6i) CBT Release
Release Note
- 新機能
Screenshots
preview-6 系の完了と preview-7 系について
今回の CBT リリースまで preview-6 系として GUI の機能強化、実装の追加を行ってきました。今回のリリース G4-4.0.0.26 (preview-6i) をもってひとまずのGUI周りの強化を終え、次回のリリースからは preview-7 系として消費メモリーの最適化、動作効率の向上による高速化、地表の生成と管理の仕組みのユーザーニーズに従った改良、地物システムの機能強化(ベクタータイル対応や shape 対応、GeoTIFF 対応など)など、G4の中核機能の OBT リリースへ向けたブラッシュアップを行います。今後とももうしばらく CBT ( closed-beta-testing ) となりますが、 OBT ( open-beta-testing ) フェイズへ移行できるよう着々と開発を進めておりますので今後とも G4 へご期待頂ければ幸いです。
動作例: "霧島山" を眺める
2018-04-19T15:55+09:00 頃に噴火の発表があった「霧島山」の周辺を G4-4.0.0.26 で眺める動作例です。ちなみに、動画中にちらっと遠くに見える島であり山である場所は「桜島」です。
G4はこのように美しい地形のビューアーとしてはもちろん、火山噴火を含む災害に対する防災用途でも利用性の高いソフトウェアとなれるよう開発を続けています。ご期待頂ければ幸いです。
【火山情報】19日15時55分、霧島山(えびの高原(硫黄山)周辺)に火口周辺警報(噴火警戒レベル3、入山規制)が発表されました。今後、噴火が発生する可能性があります。地元自治体等の登山禁止・入山規制等の指示に従い、危険な地域に立ち入らないでください。
— 内閣府防災 (@CAO_BOUSAI) 2018年4月19日
参考
G4-4.0.0.25 (preview-6h) CBT Release
Release Note
- 新機能
- 「地物詳細」メニューGUIが実装されます。 #70
- 地物HUDの地点を示す回転するアイコン部分を右クリックすると表示されます。
- このメニューで変更した名称、位置、タグ、ユーザープロパティー、などの地物の値は即座に地物へ適用されます。
- すべてのメニューGUIでメニューの表示直後からキーボードだけでも操作可能になります。 #107
- 例:
m
キーでメインメニューを表示、そのままキーボードのTAB
や↑
↓
←
→
でメニューを選択し、ENTER
でサブメニューを起動、そのままTAB
で設定したい項目へキーボードフォーカスを移し…、のようなキーボードだけでの素早いメニュー操作が可能になります。 - メニュー表示直後に
TAB
を押すとメニューで最も左上でキーボードフォーカス可能なGUIがフォーカスされます。 - メニュー表示直後はメニュー下部の閉じるボタン上に隠れたキーボードフォーカスが当たった状態です。そのまま
ENTER
すればメニューを閉じられます。(メニュー表示直後はユーザーがキーボードで操作したいか判断できないため閉じるボタン上にキーボード用のフォーカス表示は行っていません。)
- 例:
- すべてのメニューGUIの表示開始時にアニメーション効果が追加されます。 #98
- G4AI がロケーション検索を行った結果、複数の候補が提示される状況で、提示された候補から選ばずに対話の状況をキャンセル可能になります。 #111
- 「止めて」、「キャンセル」など、それらしい回答を伝えるとキャンセルされます。
- 「地物詳細」メニューGUIが実装されます。 #70
- 変更
- バグ修正
- メインメニューの第一階層でクリックすると展開中の第二回層が消えてしまい再表示されなくなるバグが修正されます。 #105
- 地物を追加する際にやや低い確率で地物HUDに正しく地物の情報が表示されないバグが修正されます。
- 画面外に大きく外れた位置に存在する地物が存在する場合に、地物HUDが本来存在する位置ではない画面左上に地物を表示する事があるバグが修正されます。
Video
地物Menu:
G4 4.0.0.25 GeoObject-Menu from Usagi Ito on Vimeo.