[PR] | 2025.04.19 18:34 |
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
category : |
カレンダー
プロフィール
最新記事
(10/15)
(06/17)
(01/09)
(12/14)
(06/20) カテゴリー
|
XOPS関連サイト「みかん箱」の運営や、OpenXOPSの開発などを行う[-_-;](みかん)のブログ。近状報告や独り言などを書きます。
| |||||||||||||||||||
PR
手元の工程表(?)も一通り埋まってきました。 意味もなく「デザインルールチェック:DRC」機能の画像でも貼っておきます。 (クリックで拡大) 主要機能に含まれるか微妙ですが、オプション設定機能とその設定画面の 作り込みに入っています。 ソフトウェアのカスタマイズ性っというのは、使いやすさに直結はしないものの 意外にも重要視されることがあるので、しっかりと作っておきたいです。 XopsAddonCreatorも各オプション項目は「タブ」でグループ分けします。 (ポイントエディタ(XPE+)やMIFエディタと同じです。) ただ今回は、HSPではなくVC++でWIN APIを直叩きしてるので、面倒極まり ないっす。 正直ここまで面倒だとは思わなかった。 規模的にクラスとかライブラリを作るまでのことではないんですよね。 学校自体は長期休みですが、最近は他人からの頼まれ仕事をこなすことが 多くなってきました。 すなわち、他人のために自分の時間を費やしている状況です。 XopsAddonCreatorの開発も終盤に近いですが、これから開発に割り当て られる時間が減っていくかもしれません。
ポイントエディタ・XPE+にて目玉機能の1つだった、「ミッション作成ウィザード」を組み上げ ました。 作業は移植に近く、機能もデザインもポイントエディタに実装されたものとほぼ同じです。 強いて言えば多言語対応されていることでしょうか。 これを作ってて思ったことは、ブロックデータとポイントデータをオブジェクト化してクラスに まとめなきゃダメかなぁ~ ってこと。 今は構造体に入れてグローバル変数化してるけど、これだと1万行超えのソースコードの そこらじゅうからデータを読み書きしてるわけです。読み出しもそうですが、それ以上に 書き換えを1ヵ所でまとめてやるようにしないと、おっかないですね。 現に「元に戻す」機能が既に怪しくなってるし (え これはデータ管理部分の作り直しかな。。 うわぁぁー 面倒くせぇー!! っと、そんなことを思いつつ、「デザインルールチェック:DRC」(旧・ポイントチェック)機能 を作っています。 別件で、 3年ほど前に勉強がてら作っていた「偽XOPS(fxops)」ですが、色々考えたので書いて おきます。 現行公開している偽XOPS(バージョン:fxops_20100417)の開発は正式に終了する 予定です。ソースコードのメンテナンス性も悪く、これ以上手を入れるつもりはありません。 後継のプロジェクトとして「OpenXOPS」というものを始動しようかとも考えましたが、 ちょっと考えさせてください。 (...次回に続く)
当初の予定には無かった機能なのですが、思い付きで開発してみた。 (クリックで拡大) メタセコイア形式の入出力機能と、DirectXのXファイルの出力機能 を実装してみました。 BD1からMQO(メタセコイア形式)へは、nine-two氏提供の公式ツール「bd2mqo」、一方で MQOからBD1への変換はka-navi氏の「MQO2BD1」をそれぞれ参考にし、同等(っと思われる) 機能を提供します。 BD1からXファイル出力については完全オリジナルですが、現行のポイントエディタ(XPE+) で使用しているアルゴリズムを移植しています。 余談ですが、Xファイルの出力機能をなぜ現行のポイントエディタが有しているかというと、 3Dビュアーにマップ表示を行うためです。 一度マップデータをXファイルにモデルとして 落とし込んで、そのモデルを表示しているわけです。 (ポイントエディタでマップを開く際に時間を要するのはその・一度変換するためです。) 無論、今回のXopsAddonCreatorではそんな回りくどい方法はやってません。 技術的はBD1からMQOや、BD1からXファイルなんかより、ダントツでMQOからBD1が大変 です。公式のMQOフォーマット情報をもとに、ファイルの構文解析を行うロジックを自前で 作る羽目になりました。とりあえず試作しましたが、まだ完全じゃないかもしれません。 とりあえず、これでXOPSのマップデータとメタセコイア形式が、1つのソフトウェア上で共有 できるようになりました。需要があるかは知りませんが。
前回ソースコードが1万行を超えたことに触れましたが、これくらいの規模になると何処に何を 書いたか自分でも分からなくなってくるんですよね。 ここ数日はハードウェアを集中的にやり込んでました。 一通りキリが良いところでこちらに戻って参りましたが、ソースコードを目で追うのが大変です。 以下、残りの主な作業内容です。 ・オプション設定項目の追加 ・オプション設定項目の多言語化 ・各種ショートカットキーの実装 ・ミッション作成ウィザード ・デザインルールチェック:DRC(旧・ポイントチェック) ・ポイント検索機能 ・ポイントの説明文編集 今までに触れてきたリストで、上記に含まれていないものは実装が概ね完了しています。 ~あぁ本当に面倒な物だけ残ったなぁ。 「ポイント検索機能」については、機能もインターフェースも全く決まっていません。 「ミッション作成ウィザード」は現行XPE+(ポイントエディタ)に採用した物をそのまま移植する 予定です。 本当はさらに強化した機能も脳内には浮かんでいるのですが、あまりにもシステムが複雑で 作り上げる自信がありません。せっかく思いつきましたが今回は見送りです。 UV座標関係については仮実装しましたが、さらなる強化提案を頂いたので検討しています。 この辺は『マップ作成のし易さ』に直結する問題なだけに、出来るだけ機能を作り込みたい。 公開時期は未定で、計画としては本当に皆無です。 っと言いつつ、実は(公開時期について)開発ペースからある程度予想出来ていたりしますが、 根拠も自信もありませんし皆さんにお約束できるものでもありませんので、まだ公表しません。
最近ふと気が付くと自分のやりたいことと やるべきことを自問自答しています。 ハードのSDカードの件は、「なんかやけに遅いな・・」っと思っていたらクロック周波数が構想の 半分で動いてました。 動作速度下げて色々テストしていたまま忘れてました。 なんていうアホ。 速度を倍に戻すとだいぶマシになりました、っといっても今だ遅いことに変わりないのですが。 XopsAddonCreatorの件は、ボチボチ進んでいます。 ◆やったこと ・「MIFからBD1とPD1を開く」機能実装 ・歪んだブロックのマーキング ・代用キーで操作可能に ・「イベントビュアー」を実装 ・距離計測機能を追加 ・人の到着待ち範囲を表示する機能追加 歪んだブロックの判定ですが、各面の法線を使います。 各6面はそれぞれ4つの頂点から構成されていますが、その4つの頂点のうち3つの頂点を使って 三角形を4通り作ります。 それらの法線・計4本の誤差を調べれば、その面が歪んでいるか判定 でき、結果ブロックが歪んでいるか調べられます。 ただこれだけだと裏返しになっていうブロックまでは判定できないので、対象のブロックの中心座標 を求めて、その座標を起点に全6面全てが裏向きなばら、裏返し状態でないことが確認できます。 前回書いた通り、これからするべき課題を書いておきます。 ◆工程表 ・最近開いたファイル機能実装 ・UV座標マッピングをできるように ・オプション設定項目の追加 ・オプション設定項目の多言語化 ・未使用の認識番号の検索機能実装 ・選択されたデータの数値移動機能実装 ・ポイントテンプレート機能実装 ・各種ショートカットキーの実装 ・XOPS起動機能 追加 ・ミッション作成ウィザード開発 ・デザインルールチェック:DRC機能実装 ・help browser実装 ・ポイント検索機能実装 ・自動バックアップ機能実装 ・ポイントの説明文編集機能実装 「デザインルールチェック:DRC」というのは、XPE+(ポイントエディタ)でいう「ポイントチェック」です。 XopsAddonCreatorはブロックの編集機能も有しているので、ブロックのチェック機能に加えて、 ブロックデータとポイントデータの組み合せてチェックできるようにしようかと思っています。 例えば、ミッションスタート直後に埋まっている人・武器を見つけて警告してくれたりしたら素敵ですね。 まだまだ先は長いです。 あまり関係ないですが、ついに全体のソースコードの行数が1万行を超えました。 自分1人で作ったプログラムの中で、単一作品のソースコードとしては自己最高記録更新中です。
※過去のブログ記事は 原則として編集・修正していません。 | ||||||||||||||||||||
△ TOP |