ASTER 正式版 開発進捗情報   Recently updated !


現在進行中。


MoveTowards 動作を実装中。

2024 年 11 月 11 日

ASTER public preview バージョン 0.9.23 を公開。

Zip Download : AsterPublicPreview_0.9.23

HTML ドキュメントは rev.0.9.15 までの機能で書かれています。不足分は随時追加・更新されます。

ASTER Docs : ASTER :: Documentation Pages

追加機能は以下ハイライトで。

  • 新モーションテンプレート MoveTowards を追加、先行して Swap 機能を実装。
  • MvtUtil 、インスタンス選択を補助する機能。選択結果を JSON へエクスポート。
  • Batch Assignement 、JSON 配列からオブジェクト・インスタンスへ値を一括代入。
  • 動作サンプルの追加、更新

新しい用語とかも出てくるので Motion :: MoveTowards + Utilily を読みながらボチボチ遊んでいただけたらと思います。単純に 1 座標だけをターゲットにするのではなくインスタンスや複数座標を格納した配列も移動目標に指定でき、ターゲット選択などを補助する機能全般が MvtUtil というカテゴリに収まります。

正式版もいよいよ完成が見えてきました。Batch Assignment は Alt Val[n]、String[n] と Flag[n] と全部実装 ( ギリギリ ) 間に合わせました。

MoveTowards は今後 Swap 以外のバリエーションに取り組む予定。

次回は12月15日頃アップデートを予定。

2024 年 11 月 05 日

rev.0.9.15 を来週公開します。

動作確認とサンプル製作がひと段落して、ドキュメントも一応それなりに揃いました。

まず新しいモーションテンプレートである MoveTowards は先行して SwapEPs と SwapTgt のオプション.0 動作のみで公開されます。新しい動作及び動作概念だったので定義がまだ少し難しかったのですが、試行錯誤の末になんとか間に合いました。

一応簡単に説明すると MoveTowards :: Swap はインスタンス同士の位置を入れ替える動作で、SwapEPs と SwapTgt はターゲット選択プロトコルの違いで名称が区別されていますがパラメータにも互換性がある「ほぼ同じ」動作です。

CF25 の標準機能にもインスタンス同士の位置を入れ替える命令はすでにあり、ただしそちらはインスタンスの位置を一瞬で入れ替えてしまうため「動作」ではありません。ASTER の MoveTowards は制限時間内にインスタンスを目標まで移動させる「動作」であり、最終的には配列と連動させてインスタンスだけでなく配列の操作も伴う動作にしたいと考えています。

今回動作サンプルを作って確認したところ、シングルスワップだけでなくマルチスワップにも対応できています。

シングルスワップというのはスワップ動作中に追加で他ペアを追加ができない、現在動作中のスワップ動作が移動完了するまで他ペアの追加を許可しない仕様のこと。

マルチスワップというのはスワップ動作中に別ペアの追加が可能で、動作中でもペアの追加を許可するスワップ動作仕様にこと。動作完了タイミングの異なるペアが同時に存在できる「マルチ」に対応したスワップです。

もともと理論的にはマルチスワップに対応しているはずだったのだけど実際動かすまで確信持てなかったのですが、作ってみたら苦も無く想定通り動いたのでこれはラッキーでした。

2024 年 10 月 27 日

動作デモ

この動作サンプルでは Target と Pursuer で別々に選択し、選択した順番に応じて自動的にペアを作っています。ペアが作れなくて余った分は無視される仕様です。

インスタンスの移動中は Motion Controller にグループ登録されている状態なので、インスタンスの重複登録やモーションの上書きは Controller 側で自動的に禁止してくれます。また Reject や Sleep、Stop といったモーション共通の基本操作に完全対応。

実際のイベントは以下のようになっています。

デモ動作は 20 行以下にまとめられます。移動計算が不要でインスタンスの選択や選択解除もエクステのサポートがあり、簡潔なイベントを書くことができます。

2024 年 10 月 22 日

大谷選手のせいでドキュメントの製作が先週まったく進みませんでした。

2024 年 10 月 14 日

ドキュメントは今週末までが締め切りということにして、作業に区切りをつけることにした。Rev.0.9.15 がベースのドキュメントになっていて、来週はドキュメントのみ先行していた一部機能を実装する。

WordPress.org の混乱が最終的に FreeWP を生むことになった。WordPress の Fork では無いと明言してる。

Vinny Green が主導する FreeWP の試みが成功するかどうかはまだ分からないが WordPress という商標が個人に帰属してる現状に対して FreeWP は最終的に然るべきコミュニティに権利を帰属する予定らしい。MovableType から派生したプロジェクトとしては WordPress の成功は意義が大きかったし、技術的な進化も普及も速かった。その結果今やセキュリティホールのいたちごっこ、うかつにフリーテーマを入れたらそいつが敵だったとかもはや安心できない。

WordPress 成功の後で現状はレッドオーシャンであり、FreeWP が短期間で今後天下を取るのは想像し難いが、新しい淘汰の波が必要な時期でもある。自分自身 WordPress を使ったブログを今後増やしたくないのは管理が面倒くさいからで、コメントを受け付けないスタイルの書き方だったら Hugo のようなジェネレータでもいけるし、書くことには集中できる。特定のテーマで書き溜めて終わったら放置したい人なので、WordPress は向いてないのだとも思う。

ちなみに Hugo だったら簡単な対話型 AI で Short Code くらいだったら実用的なコードを吐いてくれるし、今後は AI に安全な拡張プラグインやテーマを作ってもらえてそれらをコミュニティで AI が動作検証し安全性を評価してから共有する、そんなプラットフォームが流行るんじゃないかなと空想している。

2024 年 10 月 06 日

ドキュメント更新中。なかなか進まない。MoveTowards に関するドキュメントにはようやくたどり着いた。

MoveTowards という動作自体は別に珍しいものではないのだけど、設定補助機能が存外数も多くドキュメント追加が難儀である。地道に書いているがどうしても進行が遅い。そして終わらない。ドキュメントはある程度の完成度に至ったら一時作業は打ち切りにして、動作サンプルとかプログラムの追加に時間を使いたい。

公開は 11 月が濃厚か。

今後の方針として FileSystems はベータ版に実装があった機能の多くを ASTER 正式版では未実装にします。新しい決定としては HWND の一部もしくは全機能を今後廃止もしくは別エクステンションとして切り分ける可能性について。HWND はウィンドウコントロール Alternative などを含み筆者は個人的に使うのですが、ASTER の機能全体が多機能化する中で FileSystems や HWND は JSON との機能的連携も可能性が無いので、このまま ASTER に実装を続けるより ASTER 正規版では切り捨てるべきなのかなと考えています。

作業時間的にあたらしいエクステを計画するということ自体がムリゲーなのですが、作者的な希望としては切り分けたいという願望があるということです。

2024 年 09 月 26 日

少しずつ作業を再開。まず Rev.0.8.11 までのドキュメントを更新中。

九月までは JSON 関連のドキュメントに修正や加筆で忙しく、従来機能のドキュメント更新が終わったら次に Rev.0.9.x 系のドキュメントを追加します。MoveTowards 機能とユーティリティが追加されており、動作サンプルなども並行して作成されています。

追加される機能は羅列ですが以下。

rev.0.9.01 Expression(number) :: Convert to Unique ID from GrpName.
rev.0.9.02 Expression(number) :: EventDetect :: Get Unique ID.
rev.0.9.03 Action :: JSON Pointer :: Batch Assignment :: to the Object Instance’s Alterable Strings[n]. >> 一括代入処理
rev.0.9.04 Action :: ObjectControl :: Pick the Target LPRO Directly for MoveTowards. (Default Max 1)
rev.0.9.05 Condition :: ObjectControl :: EventDetect :: Target ON ( Tally-Ho )
rev.0.9.06 Condition :: ObjectControl :: EventDetect :: Off Target
rev.0.9.07 Action :: ObjectControl :: Reset the All Targets for MoveTowards.
rev.0.9.08 Action :: JSON :: Create New Array with the Fixed Value of the All Targets for ObjectControl :: Motions :: MoveTowards.
rev.0.9.09 Action :: ObjectControl :: Cache as the related Object Instance. >> Related 登録は Active Object 以外でも機能する.
rev.0.9.10 Action :: ObjectControl :: Destroy the related Object Instance. >> 無効なLPROだった場合および命令実行後必ず関係を解消するためのクリア
rev.0.9.11 Action :: HWND :: Start Window Auto Position Change Mode >> 有効時、Motion を無効化を仕様とすることで並行処理の負担減を狙った.
rev.0.9.12 Action :: HWND :: END Window Auto Position Change Mode >> Condition を無くすことで処理軽減を狙う.
rev.0.9.13 Action :: ObjectControl :: MoveTowards :: Configure Params of MoveTowards >> Multiple Pick Out 機能に対応した実装を含む.
rev.0.9.14 Action :: JSON :: Create New JSON 2D-Array with Xy Coordinates of All Targeted for MoveTowards.
rev.0.0.15 Action :: ObjectControl :: MoveTowards :: Swap Each Positions ( Swap EPs ) >> 群A・Bを選択しペアを作り位置を交換する

Beta 版に実装があった FileSystems は実装をほぼ諦めました。ASTER は JSON との連携だけでもかなり機能が多くなっており、FileSystems とかはまだ全然手を付けられる見込みすら立たない。

2024 年 09 月 10 日

作業をそろそろ再開。が、まだちょっと忙しいため本格的活動は 10 月以降。

次回 Public Preview アップデート版では MoveTowards 動作が実装されます。ASTER の MoveTowards はインスタンスを特定の目標地点へ指定されたフレーム時間内までに移動完了させる機能としてデザインされています。CF25 Extensions にはすでに Easing Object があり、これが MoveTowards に近いですが、ASTER に実装される MoveTowards はもっと複雑なタスクを一括処理するコンセプトです。

基本的概念としてインスタンスを目標 ( Target ) と追跡 ( Pursuer ) に分け、Pursuer に目標座標を与えて実際に移動させる動作を MoveTowards と定義しました。

この MoveTowards を実装するためにオブジェクトインスタンスの選択と選択内容の保存を補助する機能をすでに JSON を使って実装完了してあります。

MoveTowards の基本動作としてはインスタンス同士の位置交換に利用される前提なのですが、これを応用して目標座標をインスタンスではなく JSON Array から取得する機能も視野に入れて作っています。

前述された Easing Object でも ForEach Loop などを使えば上記動作を自作することは可能なのですが、やや複雑なループイベント処理の自作が必要です。目標の一括設定と追跡動作の一括指定を拡張機能に一任したかったため作っているのが ASTER 版 MoveTowards だと思ってください。

2024 年 06 月 19 日

rev 0.8.11 をアップロード

Zip Download : ASTER_public_Preview_0.8.11

ASTER Docs : ASTER :: Documentation Pages

以下更新内容を含みます。
rev.0.8.07 Motion :: Orbital :: Set Target 機能
rev.0.8.08 Motion :: Orbital :: Event Detection :: Get Current Angle Value
rev.0.8.09A Motion :: Reverse the Motion Movement Value ( ByName )
rev.0.8.09B Motion :: Reverse the Motion Movement Value ( Directly )
rev.0.8.10A JSON :: REGEX Exact Match :: GET Submatches :: to JSON Array
rev.0.8.10B JSON :: REGEX Partial Match :: GET Submatches :: to JSON Array
rev.0.8.11 HTML ドキュメントを更新 ( 0.8.10B 迄の仕様及び機能に準じた内容 )

ASTER rev 0.8.11 は今後安定性を評価しながら問題が無ければ rev 0.9.0 になります。

rev 0.8.11 はベータ版で機能実装があったほぼすべてのモーション関連機能が揃っています。加えて Event Detection という概念が追加され、ベータ版と比較して機能性は向上しています。

rev 0.9.x 以降は MoveTowards の実装に入ります。作者の必要な機能は単なる移動ではなく配列と連動したモーションを考えています。このために JSON の実装が必要だったので ASTER 正式版では JSON 機能が標準化されました。

ここから二カ月ほど更新が止まります。おそらく九月頃に戻ってきて rev 0.9.x をアップロードします。この期間返信とかもできなくなるので、皆さんどうぞ体調にお気をつけてお過ごしください。

2024 年 06 月 09 日

rev.0.8.01 Motion :: Oribtal 実装 ( Angular Rotate パラメータ標準組み込み )
rev.0.8.02 Motion :: Orbital :: Sleep 実装 (+ Event Detection )
rev.0.8.03 JSON :: Create 1D-Array with fill the data as boolean ( 真偽値で埋める )
rev.0.8.04 Motion :: Orbital :: Grow Radius 機能 (ByName)
rev.0.8.05 HTML ドキュメントを更新 ( uploaded )
rev.0.8.06 Motion :: Sinewave :: Grow Radius 機能 (ByName)
bugfixed JSON :: Get current Target Path が取得できなかったバグを修正
bugfixed Motion :: Orbital :: Omega が負数の時、Sleep の Trigger Angle 値が不具合
bugfixed Motion :: ExStrDebugInfo( “ASTER”, “Name” ) でグループ名指定が不具合
bugfixed Motion :: Orbital :: repetition = 0, Sleep Startup Flag = true が不具合
bugfixed Motion :: Orbital :: Sleep の Step Angle が特定 Omega 値で不具合

実装したばかりの orbital sleep 関連バグが修正多かった。動作サンプルを作る作業がデバッグを兼ね、HTML ドキュメントも並行して書いています。

F3 関連の新しい情報が出たので来週には記事をまとめ、ASTER 0.8.10 ぐらいまで実装を進めたら新版をアップロード準備します。

2024 年 05 月 27 日

プレビュー版に未実装だった Orbital Motion 専用の Sleep 機能と関連ドキュメントを追加。Orbital 専用 Sleep は指定角度で一時停止する機能、Event Detection を使った Sleep タイミングの検出も併せて実装した。

JSON Data Sharing Option 機能のドキュメントが抜けていたのを確認、動作サンプルも作り直す必要あり。

Orbital に Grow Radius 機能を付けてから Move Toward に移るか、FileSystem など他未実装を優先するか作業順で少し悩む。

2024 年 05 月 18 日

プレビュー版を公開。

Download : ASTER public Preview 0.8.1

Docs は画面上部にデイモード/ナイトモード切替ボタンがあるのでそれを使えば特にナイトモードは目に優しい。主にナイトモードで動作確認しています。

バージョン 0.8.1 Public Preview は正式版 ASTER の機能を紹介する先行公開版です。ベータ版と比較して未実装機能がまだ多数ありますが正式版がどのような進化を遂げたのかを体験していただけます。

JSON 対応を標準機能化し、セーブデータやデータロードに JSON を利用できます。JSON は JSON Data Sharing というオプション機能を使うとグローバルデータ的な利用が可能、フレーム遷移後もメモリ上の JSON データを保持したまま編集を継続できます。

正規表現は置換文字列に制御文字を含めることができるようになり、新機能である Event Detection では ID を使ったイベントの識別化が可能に、そして Partial や Exact Match でキャプチャグループを使った場合に検索結果からサブマッチ文字列を取得できるなど、多くの改良や追加機能が含まれています。

Object Control は 開発中の Orbital Motion 以外はベータ版機能を 80 % 程度までカバーしています。今後はベータ版に実装されていた機能を網羅しつつ新しいモーションとして MoveToward を実装予定。新機能としては Object Control にも Event Detection が実装され仮想壁との接触判定をイベント化できるようになりました。

ベータ版のドキュメントはメモ程度のブログ記事しかありませんでしたが、正式版の全機能を網羅した公式ドキュメントのページが新設されました。

Preview 版は現在あらゆる部分で完成度がまだ低く、今後ゆっくりとですがブラッシュアップされます。進捗は一週間ごと隔週更新。

ASTER ベータ版を知っている方も知らない方も是非 Preview 版をお楽しみください。

2024 年 05 月 09 日

ASTER :: Documentation Pages

先行してドキュメントを公開。現時点までに実装された機能がほぼ全て網羅。

サイトは Hugo、利用しているテーマは Lotus Docs

今後は暫時 Shortcode を追加したり、まだドキュメントが未整備の部分とか残っているのでそれを修正したり。ランディングページもまだデフォルトのままです。

肝心のエクステンション本体については現在動作テストをしながら動作サンプルを作っています。プレビュー版では Orbital の一部機能が未実装なので Orbital のドキュメントは付属していませんが実装された機能だけで動作サンプルは付属します。

公開は来週予定。週末くらいかな。

2024 年 04 月 29 日

引き続きエクステンション用の Document を書いています。進捗は 88 %。Hugo を使わなければ無理だったが Hugo を使っても無理なものは無理。

作業自体は個人的に苦痛、かなり眠くなる。ドキュメントを書くことは許容できるが書いたドキュメントを HTML 使って体裁整えたり見出し作ったりは睡魔が襲ってくる。今回肝心な出来栄えはそこそこ。ドキュメントの量が多いためアップロード後に少しずつ改良施すしかない。

ドキュメントの完成はやはり 5 月初旬、現状までの機能で動作サンプルを作ってアップロード用のバイナリを用意してと準備があるので、5 月半ば迄にプレビュー版としてお披露目。お日柄も良さそうなので 5 月 15 日公開とします。

2024 年 04 月 23 日

エクステンション用の Document を書いています。

Bootstrap と Hugo を使ってオンラインドキュメント形式で提供します。Hugo は以前に Linux から使っていたのですが最近の Windows はターミナルシェルも便利になってどちらかというと林檎が必要無くなってきました。Hugo は静的サイトを構築するジェネレータとしては大変優れていて、じゃあ WordPress みたいに一般に普及するかっていうとそんなことは無く、当時から今もターミナルシェル操作が必須、そして Git と GoLang も必要でそのあとマークダウンとジェネレータの仕組みを理解する、環境構築後に学ぶことも多くそれなりに敷居が高いままです。

適当に高い敷居を乗り越えればあとは速い。速いんだけど進捗は現在ドキュメント全体の 35% 程度、あと一週間弱で 65% とか埋まるんですかねこれホント。

完成度とかドキュメントの体裁とかは多少後回しにしてとにかく HTML 化を進める予定です。機能追加は先週までの時点で開発がしっかり停まっていて、ドキュメントを一旦完成させるまで進展は無いです。

エクステンションの公開時期ですがどうもやはり5月半ばか6月になりそう。正式版のプレビュー版という形で提供して、そこからマイナーバージョンアップを重ねながら完成を目指します。徐々に忙しくなってきたのでこの機会を逃すと公開が九月以降になってしまうので、それは避けたいと思ってます。

2024 年 04 月 12 日

Orbital の基本動作実装が一応終わった。いわゆる Circular Motion だが、ASTER では回転の中心点を他オブジェクトに依存する「衛星」をイメージした動作設計が基本なので「 Orbital 」と命名した。ベータ版ではパラメータをなるべく少なくするため採用したアプローチの一つでもあったのだが、正式版ではパラメータを少なくするという制約は捨てることにした。

ベータ版ではパラメータを少なくした分あとから追加設定を足すための命令を改めて発行する必要があった。そのために逐一ループ処理行うわけだが、これだと処理効率は良くならない。いっぺんに設定できたらその方が効率は良いので、正式版の Orbital はほぼ全てのパラメータを文字列で一括送信する試みをやってみることにした。

その結果パラメータ数は一度に 12 個を一括送信することになった。ただしこれでも全機能ではない、まだ GrowRad とかは拡張機能扱いにしたので最終的には 15 パラメータとかになる可能性もある。ホワイトスペースを使い放題使って良いので可読性は悪くないが、良いのかなぁこれで感はある。

パラメータを文字列で一括送信する方式は JSON との連携にもメリットが生まれる。JSON に保存したパラメータを ASTER に渡せばそのまま利用できるから、CF25 のエクスプレッションエディタでちまちまパラメータを書き直さなくても、JSON を扱う普段のテキストエディタからパラメータを更新するだけで値の動作検証をすることができる。

現時点で Orbital はモジュール化された Stop や Reject が組み込み済み、正常に機能していて、今後は Orbital 専用の Sleep 処理と GrowRadius などベータ版に実装があった機能を再現する。今若干モチベーションが低いため、今後一週間で両方実装できるか微妙。

MoveToward の開発にかかりたいのだが、Orbital が終わらないと着手できなくて、締切もあるので Orbital が終わったら一度プレビュー版として公開するための準備も必要になる。そうすると MoveToward がまた後回しになる。Align とか FileSystem も後回しにしているのでまだまだやること多い。

5月公開はまだ諦めてないのだが、ちょっと流石に無理かもしれない。ドキュメントの HTML 化は頭痛い。

2024 年 04 月 05 日

モーション追加に集中、HorizontalFlip、VerticalWrap、VerticalFlip、Sinewave を実装完了。明らかにデバッグ不足でドキュメントもまだ書いてない、だがこれらは基本処理に共通項が多く、合計 8 つのインターフェースを持つ一連動作は実質的に一つのモーション関数とみなすこともできる。

ヴァーチャルウォールとの衝突を検出する即時実行条件 ( EventDetectCondition ) はシンプルだが使い勝手が良い。Runtime Event のタイミングでコンディションも働いているため Event Detect Condition 時に Null 以外の動作は追加できない仕様だが、これだけでも色々な利用法が提示できる。Runtime Event タイミング時になぜ Null 以外のモーション追加や Reject 指定全般が利用ができないかというと、Event Detect Condition 中はエクステンション内部でループ処理の真っ最中だから。コンテナに対してイテレータでループ処理実行している最中に要素を削除されたり追加されるのは無理、要求をスタックしてループ処理後に追加や削除キューを改めて処理する仕組みが必要なのだ。これを実現するには現時点で時間が足りなすぎる。

モーションタイプは Orbital を追加すれば一応ベータ版に追いつきこれは来週終わる予定、Movetoward はベータ版に未実装だった機能なのでこれの製作が一番の難所になる予定。Movetoward は 5 月公開に間に合わないことをすでに見込んでいる。Stop Reject Sleep など基本動作はデバッグが進み動作は安定的と評価している。基本動作は今後 Reversal Velocity、Decrement|Increment Velocity, Change Amplitude が Orbital モーション実装後に予定される。

5月公開は、、、悩ましい。Movetoward 以外は間に合うけどドキュメントの整備や動作サンプルの作成に時間が取られる。

2024 年 03 月 31 日

なんとか予定通り Stop と Sleep の実装が間に合った。基本機能の中でも Reject が一番山場だった気がする。越えたら次の山はだいぶ低く感じるようだ。モーションもまず HorizontalWrap が実装済み、次に HorizontalFlip、Vertical と続くのだがこれらは既存モーション機能を拡張するだけ、次開発の山場は Orbital と MoveToward に焦点が移る。

4 月の開発ペース次第なのだが正式版公開について、判断に悩む。完成度に拘らなければ 5 月公開も可能、だが公開時点での完成度に拘ると 6 月過ぎても公開に至らない気がする。現状ベータ版として公開しているバージョンは正式版が出たら用済みで公開停止する方針。果たしてどうなるか。

2024 年 03 月 24 日

かなり遅いペース。Reject 処理を Template 化する工程以前のデバッグ不足だった。実装後バグが出て原因究明に時間を要した。ちょっと設計をミスったかもしれない。複数人でモジュールやコンポーネントを分担して作成するなら良いけど、ひとりでデバッグからモジュール・コンポーネントとか欲張りすぎた気がする、作業量が多い。それでもなんとか今週 Reject は完成させたが、今度は Stop、次に Sleep と基本機能の実装がまだ続く。これらは二週間かからないはずだが一週間はかかる見込み。検索効率は悪くて無駄なメモリも使うけど、一番原始的な方式で作ったほうが直感的だし、作業量はもっと減るしで、よく考えて決めた仕様だったけど今はそのせいで開発のスピード感が失われてることにちょっとがっかりしてる。

2024 年 03 月 17 日

オブジェクトコントロールの基本機能実装が続く。登録・解除・破壊・タイマー処理に対応。進行が遅い、その割にドキュメントは量を書いてる。仕様も忘れてしまうので、ドキュメントを書きながらプログラムをしてる感じ。

オブジェクトコントロールはまだ STOP や SLEEP など基本機能に未実装が残っていて、STOP はともかく SLEEP は時間少しかかりそう。REJECT は実装済みだが少々苦労したから、このペースだと 5 月公開もちょっと怪しい気がしてきた。ソースコードの量も増えてきているため、ヘッダーオンリーでどこまで書けるかまた懸念がある。

JSON に重要な機能追加、メモリ上のデータをグローバル化するオプション項目を実装。動作サンプルを作ってみた結果、まだデータ編集機能が弱いけど JSON を汎用セーブデータとして活用する目途が立った。フレーム遷移毎にファイルロードしてセーブしてまたロードという手間から解放される。

2024 年 03 月 09 日

ByName Object コントローラの基本機能が実装完了。モーションの一番基礎になる Null Motion をコントローラに名前を付けて登録、追加登録、検索、登録削除、重複インスタンス登録排除、など一通りできるようになった。

今回は「名前」で管理する範囲の中に、「モーショングループ」という新しい単位 (範囲) が含まれている点がベータ版と異なる。

ベータ版は原始的な仕組みだったので、モーションは必要なデータ全て一種類の構造体に放り込み、vector で集中管理していた。今回は各モーションを必要なデータごとに構造体も専用に用意し、モーション単位でデータ構造も個別管理している。名前で管理する以外にモーショングループ単位で内部的処理を行っており、実装するかわからないが名前以外に各モーション単位で命令を出すことができるようになっている。

今後はモーショングループという単位でモジュール的に動作を付け加え、コントローラのコア機能に拡張を施す要領でモーションを追加していく。

2024 年 03 月 01 日

全体で 41 個の関数、内訳として JSON 機能が 20 個、REGEX 関連が 11 個、Align が 5 個、HWND が 2 個、FileSystem が 1 個。数が合わないけどまぁいいか。

進捗として JSON 機能が充実、しかし想定より作業量多い。正規表現はほとんど完成したが JSON との連携機能などがまだ未実装、FileSytem は完全後回し。

3 月になったら Object Control 機能をと思っているが、そのためには Align を後回しにする必要がありそう。現状に Motion と Object Control の基本機能を付ければ正式版のプレビューとして公開できそうだが、動作サンプルがまだ未整理でこれも作業量は多い。各機能の詳細なドキュメントはこれまで頑張ってきたのでほぼ揃っているが、まとめると作業量的に 4 月公開はまだ無理かなという印象。5 月が濃厚。

2024 年 02 月 18 日

BETA と正式版の動作互換性については全く考慮されていません。その代わり仕様変更や新機能など盛りやすく、BETAより合理的な設計になっています。今回はちゃんとドキュメントも書きながら開発しているので、現時点までに実装された諸機能について全てなんらかの形で文章が付属します。

現在の進捗としてはオブジェクトコントロールが全く未実装ですが、正規表現とJSON 機能の実装は基礎部構築が終わり、特に正規表現の実装が BETA との機能比較で 90 % 完成、開発が先行しています。

JSON は標準機能として取り込んだのですでに JSON Pointer などは動作サンプル製作で活躍中。正規表現機能との連携も確認できています。

2 月中には正規表現の機能実装は終わり、3 月からオブジェクトコントロール機能に着手する予定です。こちらはちょっとまた苦労するのかもしれません。

いつ頃公開できそうか

オブジェクトコントロールに着手してからでないとまだいつ頃公開可能になるかについて、言及できそうもありません。

正規表現と JSON について機能実装にはあまり苦労していないのですが、これらは作者が風邪で体調崩した影響があり着手が遅れた割にその後は順調。

オブジェクトコントロールはコントローラ部分を新しく設計し直すので、試行錯誤が必要になりそう、こっちのほうが手強い予感があります。

ただし二回目なので、正式版が完成すれば BETA よりも断然効率的な設計になると思われ、自画自賛なのですが今回のソースコードは前回より圧倒的にモダンで美しいです。美しい、美しいとか言いながら開発しています。危ない人です。

それだけ BETA 版のソースコードはレガシーが混じっていて、特に正規表現の実装部分は Modern C++ を十分理解せず開発スタートしたため、C 言語みたいな書き方をしていました。

Clickteam の公式フォーラムで質問すると Yves 以外だと Defisym が親切に全部答えてくれるのですが、彼の公開しているソースコードはまさに現代的で、知識をアップデートしないとソースコードを全然読み進めなかったため C++20、C++23 が出たら C++23 と、どんどん知識をアップデートしていくことにしたという経緯があります。

Modern C++ はかなり美しく進化しています。レガシーでも機能実装は実現できますが生産性が違ってくるし Modern C++ はソースコードの保守が楽です。

3 月になってオブジェクトコントロール機能開発に着手した後、公開時期について予想が出せると思います。

Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です