GONDWANA開発ブログ

五大開発株式会社のGONDWANA開発に関する公式ブログです。

2018年の "G5" と "G5/STD-UI-SS" の開発状況について

技術的なはなし

こんにちは、 GONDWANA を作っているなかのひとこと伊藤兎です。

昨年は GONDWANA を OpenGL 系のフルスクラッチで書いていた開発コード名 "G3" から、 UE4 エンジン採用の新型 "G4" へ移行し、今年7月までブログに報告しているように "G4" を開発していました。

では、その後 8月からはどうなっていたかと言うと、 UE4 エンジン採用はそのままながら、より土木用土の機能を強化できるよう、地形のシステムを単なるポリゴンの面貼りだった "G4" までから大幅に変更し、完全なボクセルベースのデータと描画のシステムへ移行した "G5" の開発を試みておりました。

f:id:godai-gondwana:20181228130649p:plain

↑ボクセルベースで地形を処理・描画しているのですが"表面"だけ見ると従来との違いは見えません。

でも…、↓

f:id:godai-gondwana:20181228130908p:plain

↑新型の "G5" ではいつでもどこでも一瞬で地形を縦横断をして見られます。

すぱっとまっすぐに切断面を見るほか、巨大な穴を開けたり、孤島のように注目したい土地だけを残して切り取ってみたりもできます。切り取った地中の地質体についても簡単に見られるよう実装を進めています。

この機能は任意性の高い3D縦横断図や地質体の視認が容易になるだけなく、3D地図を見ながらの切土、盛土による地形編集、DEMとポリゴンでは表現の難しい崖地やトンネルの表現など、土木屋さん的に嬉しい機能を3D地図へ導入しやすくなりました。

f:id:godai-gondwana:20181228131817p:plain

↑ほかにも非常に要望の強かったリアルタイム・コンター機能を追加するなど、これまでのGONDWANAへ頂いていたユーザーニーズにも対応を進めています。事前計算で生成済みのコンターと違い、 "G5" の地形編集機能や切断面表示でも "G5" のリアルタイム・コンター機能ではコンターを視認できます。コンターの間隔や色もユーザーの好みや同時表示する地図に合わせて設定できます。

f:id:godai-gondwana:20181228132156p:plain

↑地物の機能にも非常に高いユーザーニーズを頂いていたボーリングデータへの対応を追加しています。ボーリング地物は KuniJiban とシームレスに連携して利用できるよう開発しています。

f:id:godai-gondwana:20181228132209p:plain

↑3D地図の地中から柱状図を視認できるようにしてみたり。

さて、ここまでは GONDWANA の技術的な的な話でした。

2019年、ビジネスアプリとしての実用製品の GONDWANA へ

"G5" ではビジネスアプリとしてのUI(ユーザーインターフェース)の実装を施しています。

f:id:godai-gondwana:20181228133126p:plain

f:id:godai-gondwana:20181228133316p:plain

これまでは GONDWANA は本体の機能開発や実験的な試作を続けて来ましたが、各段階でのβテストへご参加頂いた方、開発ブログなどで進捗を見守り頂きご期待を頂いている方、弊社営業へお問い合わせを頂いている方々も多く、そうしたユーザーの皆様へそろそろ土木ビジネスアプリの実用製品として GONDWANA を本格的に提供したい流れから、2018年末よりこのような本格的なビジネスアプリのUIの開発を進めています。

f:id:godai-gondwana:20181228133723p:plain

f:id:godai-gondwana:20181228133737p:plain

データ連携や編集もエクセルとの相互入出力にも対応、GONDWANA本体では表示の難しかった地物データの一覧や概要の表示対応などビジネスアプリのユーザビリティーを大幅に向上しています。

f:id:godai-gondwana:20181228135308p:plain

また、G5/STD-UI-SS は GONDWANA 本体とは別に独立して動作可能です。 GONDWANA 本体は必要に応じて G5/STD/UI-SS のタスクバー右上の「G」ボタンから簡単に起動と終了が可能で、使わない時にはタスクトレイへ小さく収める事もできます↓

f:id:godai-gondwana:20181228134153p:plain

G5/STD-UI-SS は単独でも土木屋さんのデスクトップに常駐してウェブ地図サービスをさっと使いたい場合のインターフェースとして単独でも便利なように開発しています↓

f:id:godai-gondwana:20181228134515p:plain

毎年、リリースを計画してはβテストからのフィードバックや新機能開発などでリリースを翌年へ翌年へと調整してきましたが、今年も "G5" の開発からリリース計画をまたしても翌年へと調整をさせて頂く事が必要となり、開発のなかのひととしてもリリース版へのご期待を頂くユーザーのみなさまにはたいへん心苦しくはあるのですが、2019年にはビジネスアプリとして実用性の高いリリース版の GONDWANA をいよいよ提供開始できると思いますので、どうぞ、いましばらくお待ち頂ければ幸いです。

それではみなさま、本年もありがとうございました。また2019年以降も引き続き GONDWANA ならびに弊社 五大開発株式会社 をよろしくお願いいたします。

G4-4.0.7.2 CBT Release

Release Note

  • 新機能
    1. タイルサービスに対してローカルファイルシステムへのキャッシュ機能が実装されます。
      • 標準のローカルキャッシュ保存先は 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 の末尾がファイル拡張子となっている場合は、そのファイル拡張子となります。
    2. 地形の物理シミュレーション機能の実装分離とデータ生成時の未使用メモリーに対する最適化などで、「準備中」で行っていた処理が282倍高速化され、LOD=15でも1秒未満で完了するほとんど気にならない程度になりました。
      • このため、実験的に本バージョンから「準備中」を排除したリアルタイムの地形ローディング動作へ切り替えました。
    3. 時間分割型のタスクシステムの応用により「準備中」の後に、さらに地形の実際の描画が可能になるまでの間、一時的にプチフリしたような状態になる時間が体感上大幅に軽減されました。
    4. 「地表面のレイヤー」メニューGUIに「発光度」の設定が追加され、太陽が沈む夜のシーンでも地表面のレイヤーの視認性を確保しやすくなります。
      • 設定は「なし」「弱」「強」「数値指定」から選択でき、標準設定は「弱」です。
    5. 隣接地形の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, ... のように従来に比べ穏やかに減衰するようになります。
  • 変更
    1. 標準設定の地表のLOD最大値が 13 から 14 へ変更されます。
      • 地表描画の最適化により準備時間が大幅に高速化されたため、標準設定を上方修正しました。
      • 設定上は 15 へ変更して使用も可能ですが、 15 の地形データには現在「穴」が生じる事が仕様としてあります。この 15 での「穴」は #120preview-7 中の比較的近いバージョンで対応予定です。
  • バグ修正
    1. 起動後、初回の注視点または視点の操作の際にHUDの表示が若干乱れる問題が修正されます。
    2. 再現困難だが使っているとたまに発生しG4が落ちてしまうバグが修正されます。
    3. しばしばタイル間の補完が行われないバグが修正されます。

関連チケット

  1. #118
  2. #121
  3. #122

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に追加された「発光度」の設定:

f:id:godai-gondwana:20180713005319p:plain

G4-4.0.7.1 CBT Release

Release Note

  • 新機能
    1. メインメニュー -> 地表 -> LODの設定: 「地形・地表面のLODの設定」メニューGUIが追加されます。
      • 従来コンフィグレーションファイルの編集を行い再起動する必要のあった設定がメニューGUIから実行中に変更可能となります。
        • 最小LOD
        • 最大LOD
        • 視野角の考慮(LOD制御方式の設定)
        • 隣接効果適用距離(その他の高度な設定)
        • 初期リソースプールサイズ(その他の高度な設定)
      • 本バージョンで追加されたLOD関連の設定を変更可能となります。
        • LOD調整値
        • LOD中心地点の選択(注視点、視点、地物)
        • LOD制御方式の設定
      • 設定ごとの概説がメニューGUIに表示されます。
    2. LOD調整値 が新たに導入されます。
      • LOD制御方式に応じて決定される中心地及び付近の領域のLOD値を任意に加減できます。
    3. LOD中心地点の選択 が新たに導入されます。
      • 旧仕様: 常に注視点を中心
      • 新仕様: 中心を「注視点」、「視点」、「地物」から任意に複数組み合わせて設定可能
      • この新機能により視点を注視点から離し地表に水平に近い視野で眺めたい場合や、散らばった地物の周囲も精細に眺めたい場合などユースケースに応じた領域の精細化を選択的に使用できるようになります。
    4. LOD制御方式の設定 が新たに導入されます。
      • 旧仕様: 常に最大の精細度から展開
      • 新仕様: 3つの設定タイプから選択可能
        • Type-0: 常に最大の精細度から展開する
        • Type-1: 視点の高度に比例して自動的に精細度を制限する
        • Type-2: 視点からの距離に比例して自動的に精細度を制限する
      • この新機能によりユーザーが望む視野または具体的な精細度設定に応じたLOD展開による視界を得られるようになります。
  • 変更
    1. コンフィグレーションの Planet.adjacency_cell_distance の効果と有効な値の範囲が変更されます。
      • 旧仕様: LOD細密化の中心地と同じLODレベルを適用する隣接した領域の距離。有効な値は [ 0 ... 2 ] 。標準値は 2
      • 新仕様: LOD細密化の中心地から距離に応じて線形に減衰するLODレベルを適用する領域の最大距離。有効な値は [ 0 ... 64 ] 。標準値は 16
      • 値を小さくした場合、実行時の負荷は減少しますが、視覚的にはLOD細密化の中心地に近い領域でも四分木構造に基づき粗いLODとなりやすくなります。
      • 値を大きくした場合、実行時の負荷は増加しますが、視覚的にLOD細密化の中心地に近い領域のLODレベルがなだらかで段階的な減少となり視覚的、直感的な細密化精度が得られるようになります。
    2. コンフィグレーションの Planet.pmc_pool_initial_count の標準値が 1024 から 256 に変更されます。
      • この変更は 4.0.7.0 による負荷軽減と 4.0.7.1 に伴う負荷軽減の効果により、通常使用におけるリソースの要求量がおよそ 1/4 に低下したためです。
    3. 実行中にアクティブではない下位のLOD領域の処理を軽減する事で実行中のCPU/GPU負荷が軽減され、より快適に使用しやすくなります。
  • バグ修正
    1. 注視点の移動などに伴う地形の再構築が発生した場合にしばしば特定の領域が欠落して穴が空いたような状態となるバグが修正されます。

関連チケット

  1. #117

Screenshots

f:id:godai-gondwana:20180621125239p:plain

f:id:godai-gondwana:20180621132345p:plain

G4-4.0.7.0 preview-7 CBT リリース

preview-7 系の最初のリリースになります。 preview-6 系では GUI の拡充を中心に更新してきました。今回のリリース以降の preview-7 系では、地形機能、地物機能、内部処理の高効率化を中心に更新します。今回のリリースでは負荷の大幅な軽減と安定性の向上、地表面のレイヤーシステムの改修が中心です。引き続き CBT となりますが、ご試用、ご意見など頂ければ幸いです。

Release Note

  • 新機能
    1. 地表面のレイヤーの合成手法に既存の不透明度に加えて、新たに4つの手法が追加されます。
      1. 「加減算」: 加算合成を行います。係数を設定し、任意倍率での加算、減算が可能です。
      2. 「乗算」: 乗算合成を行います。係数を設定し、任意倍率での乗算が可能です。
      3. 「比較(暗)」: より暗い方の色を採用する合成を行います。
      4. 「比較(明)」: より明るい方の色を採用する合成を行います。
    2. 地表面のレイヤーの合成手法の簡単な解説が常に表示され、目的に応じた合成方法を選択しやすくなります。
    3. 地表面のレイヤー・メニューに「下地色」が追加されます。
      • レイヤーの合成方法に応じて「白」「灰」「黒」から見やすいものを選択して使用できるようになります。
    4. 地表面のレイヤー・メニューに「後処理: RGB 反転」が追加されます。
      • レイヤーの合成結果が暗すぎる場合、明るすぎる場合などに RGB 反転により視認性が向上する事があります。
  • 変更
    1. 地形関連んの処理効率がおよそ2倍程度に向上します。
      • CPU/GPUのリソース準備時間や、動作中の負荷が軽減されます。
    2. 地形システムが整理されわかりやすさが向上します。
      • 一般的な画像編集アプリでの「レイヤー」に近い構造と用語を扱えるようになります。
        • 用語の変更: 「地形レイヤーの地図画像(Cartograph)」→「地表(Surface)」
        • 用語の変更: 「地図画像スロット(Slot)」→「地表のレイヤー(Surface Layer)」
      • ゼロレイヤーシステムが廃止されます。
        • 同等の機能は将来の preview-7 中の更新でより高機能で便利な地物系の追加機能として追加する予定です。
    3. ワイヤーフレーム・メニューで「E(発光度)」を設定可能になります。
    4. 地表面のレイヤー・メニューがリニューアルされます。
      • レイヤー構造の操作がシンプルでわかりやすくなります。
    5. 今回のリリースからバージョン番号のリビジョン(3番目)が preview-7 の 7 と一致するようになります。
      • preview-6 までは 4.0.0.X としてビルド(4番目)をインクリメントしていましたが、バージョン情報としてわかりにくいため、 4.0.{preview-version}.{review-revision} とする事にしました。従来方式の preview バージョン表記 preview-7a, 7b, 7c ... に相当する preview-7 以降のバージョン番号は 4.0.7.1, 4.0.7.2, 4.0.7.3, ... となります。
  • バグ修正
    1. アプリの終了時に取得途中のタイルがある場合などに不正終了が発生する事があった問題を修正しました。
    2. ワイヤーフレームの設定が注視点の移動の前後で適用具合が乱れる事があった問題を修正しました。

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

f:id:godai-gondwana:20180608173200p:plain f:id:godai-gondwana:20180608173233p:plain f:id:godai-gondwana:20180608173218p:plain

f:id:godai-gondwana:20180608173255p:plain

f:id:godai-gondwana:20180608173130p:plain

f:id:godai-gondwana:20180608173309p:plain f:id:godai-gondwana:20180608173323p:plain

G4-4.0.0.26 (preview-6i) CBT Release

Release Note

  • 新機能
    • 「地物の検索」メニューGUIが実装されます。 #71
      • 「地物の検索」メニューはメインメニューから呼び出せます。
      • 読み込まれている地物群に対して、
        1. 「名称に含まれる文字列」による簡単な検索を行えます。
        2. 「タグ群」について含まれるタグによる条件を詳細に設定した検索を行えます。
        3. 「ユーザープロパティー群」について key の存在や一致条件、文字列の場合は大文字小文字の区別、ワイルドカード正規表現、数値の場合は大小関係等の詳細な条件群を複数組み合わせて設定した検索を行えます。
        4. 「地表面上の領域」について矩形または円形の特定領域に地物が含まれるかを設定した検索を行えます。
        5. 「高度の領域」について下限値と上限値の間に地物が含まれるかを設定した検索を行えます。
        6. 以上を任意に組み合わせた検索を行えます。
      • 検索結果では地物の概要情報の確認と「地物の詳細」メニューGUIの呼び出しができます。
      • より詳細な検索条件や動作効率の良い検索が必要な場合は従来どおりAPIをご使用下さい。

Screenshots

f:id:godai-gondwana:20180424195513p:plain

f:id:godai-gondwana:20180424195400p:plain

f:id:godai-gondwana:20180424195525p:plain

f:id:godai-gondwana:20180424195543p:plain

f:id:godai-gondwana:20180424195551p:plain

f:id:godai-gondwana:20180424195559p:plain

f:id:godai-gondwana:20180424195609p:plain

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はこのように美しい地形のビューアーとしてはもちろん、火山噴火を含む災害に対する防災用途でも利用性の高いソフトウェアとなれるよう開発を続けています。ご期待頂ければ幸いです。

参考

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
      • 「止めて」、「キャンセル」など、それらしい回答を伝えるとキャンセルされます。
  • 変更
    • コンフィグレーションファイルが JSON 形式に統一されます。 #68
      • 新しいコンフィグレーションファイルの配置場所は G4 配置ディレクトリー直下の G4Configuration.json です。
      • 設置ファイル、設定値が存在しない場合は自動的に標準値で生成されます。
  • バグ修正
    • メインメニューの第一階層でクリックすると展開中の第二回層が消えてしまい再表示されなくなるバグが修正されます。 #105
    • 地物を追加する際にやや低い確率で地物HUDに正しく地物の情報が表示されないバグが修正されます。
    • 画面外に大きく外れた位置に存在する地物が存在する場合に、地物HUDが本来存在する位置ではない画面左上に地物を表示する事があるバグが修正されます。

Video

地物Menu:

G4 4.0.0.25 GeoObject-Menu from Usagi Ito on Vimeo.