カテゴリー: E.L.E.M.E.N.T-ME

今後のE.L.E.M.E.N.T-ME開発について

お久しぶりです。
しばらく投稿がありませんでしたが、Elem-MEの開発は進んでいるのでご安心ください。
今後のElem-ME開発について説明します。

公開予定について

現在のところ、β版(一通りの機能を実装した状態)の公開目標を「2017年末まで」に設定します。
ただ、目標なのでこの期日までに公開を保証するというものではありません。

動作環境と依存ライブラリについて

一応、Windows版・.NET Core版・Android版の開発を予定しています。
現在はWindows版の開発のみ行っている状態で、上記β版の公開ができた後にAndroid版の開発開始を予定しています。

.NET Core版とは、Windowsはもちろん、MacOSやLinuxでも動作可能なマルチプラットフォーム対応のバージョンです。
ただ、こちらは情報不足のため、実現可能かどうか調査した後に開発となります。
新しいことが分かり次第、別途記事を投稿します。


Elem-ME開発でC# 7を使用します

Elem-MEなどの開発には、今までC#のVer.6を使ってきました。
しかし、C# Ver.7が使用できることが確認できたので、既存コードも移行することにしました。

よって、公開済みのコードに大きな変更が行われる可能性がありますのでご了承ください。
(Elem-MEに限らず、Team.E.L.E.M.E.N.Tで公開しているコード全てが対象です)
また、引数や戻り値の型が変わる可能性もありますので、もしコードを利用した場合は変更を確認するようお願いします。
なお、今すぐに全てのコードをアップグレードするのは不可能なので、少しずつの移行になります。


【Elem-ME】テストプログラムv1をリリース

E.L.E.M.E.N.T Multipurpose Engineのテストプログラムをリリースしました。
確定仕様版初のテストプログラムです。

今回は、起動から終了までのエラー発生の有無、カーソル情報取得のテストとなっています。
もし良ければ結果をコメント頂けると助かります。
もしエラーがあったらできるだけ報告をお願いします。


E.L.E.M.E.N.Tの様々な変更について

今まで、なかなか進まなかったE.L.E.M.E.N.Tの開発ですが、いよいよ最終設計が完了し、本当の開発が始まりました。
(今までずっと開発進んでいたと思っていた方、すみません)

今回の仕様確定にて、今までと変更が発生した箇所があるので、以下に記載していきます。

正式名称の確定
今まで曖昧だった正式名称が確定しました。
その名も、「E.L.E.M.E.N.T Multipurpose Engine」、略称「E.L.E.M.E.N.T ME」または「Elem-ME」です。
なぜ正式名称が確定していなかったかというと、単なる「E.L.E.M.E.N.T」だと他の商標に引っ掛かるのではないかと思い、前後に何か付け加えようと考えていたためです。
今回決まった名前の「Multipurpose」とは「多目的」という意味で、Elem-MEがゲームエンジンとしてだけでなく、様々な用途で使われることを願って付けました。

【GE-E.L.E.M.E.N.T】利用者証について

今回は、GE-E.L.E.M.E.N.Tの機能の一つである「利用者証」(旧制作者証)について解説したいと思います。
利用者証は、GE-E.L.E.M.E.N.Tのユーザーを管理したり、制作者の制作物を改ざんから保護したりするためのものです。
以前も似たようなことを書いた気がしますが改めて説明します。

GE-E.L.E.M.E.N.Tはマルチユーザーに対応していて、1つのGE-E.L.E.M.E.N.T環境を複数のユーザーで共有できます。
これにより、ユーザーそれぞれセーブデータを持つことができたり、ユーザーごとに設定(コマンドカスタマイズなど)を分けたり、更にはレーティングコントロール(年齢制限など)を行うこともできます。
利用者証はユーザーごとのデータを暗号化するための鍵として機能し、外部からのユーザーデータ改ざんから保護したり、ユーザーデータを他の環境にコピー・移動・同期する時の暗号化に使われます。
また、ユーザー名などの情報を管理する機能も持っています。


【GE-E.L.E.M.E.N.T】またベースエンジン変更か・・・

ようやく、GE-E.L.E.M.E.N.T(以後、本ソフトウェア)の3D関係の実装に取り掛かろうとしたのに、とても大きな壁に当たってしまいました・・・。
現在のベースエンジンは「Siv3D」ですが、これにとても不都合な仕様があることが分かってしまいました。

>Siv3D の Model はボーンに対応していない
(「Siv3D ユーザー助け合い所」投稿より)

さすがにこれだと肝心のキャラを動かすことすらできないので、やむを得ずベースエンジンを変更することになりました・・・。
色々と代わりを探してみたのですが、よくあるゲームエンジンはプロジェクトのビルド時に予めアセットを専用形式にアーカイブしないと使用できない仕組みになっているものが多く、本ソフトウェアのように動的に素材を読み込む仕様に対応できませんでした。

結局、一番最初に採用した「DXライブラリ」が最も適しているので、再びこれを使うことにしました。
(前のコードもう無いかもしれない。連携部分の実装は作り直しになるのか・・・)

Siv3Dは先進的な機能がたくさんあって、是非とも使いたかったのですが、まあ残念の一言です。
おまけ程度ですが、元々C++用なのでC#で動かすためには結構大変な作業が必要だったこともいただけなかったです。
今後不足している機能が追加されたらもう一度戻ってみたいと思っています。


GE-E.L.E.M.E.N.Tでの「時間という概念」

注:この記事には難しい内容が含まれています。

「時間」って、すごく難しい概念だと思うんですよね。
GE-E.L.E.M.E.N.T(以後、本ソフトウェア)で時間の管理方法について検討しているところなのですが、いろいろ引っかかるところがあるのでまとめてみようと思いました。

時の流れる速さ(早さ)
ゲームではしばしば、「行動速度x倍」や「時止め」などの効果を用いることがあります。
これを本ソフトウェアで表現するにあたって、エレメントに「時間速度」という概念を取り入れる必要があります。
「時間速度」は、移動速度やプログラム実行周期を速めたり遅らせたりすることができます。

場所によって変わる時間
「4次元空間」などと言われたりもしますが、ある空間を移動すると時間を進んだり戻ったりということが可能な表現があったりしますよね。
本ソフトウェアでもこれをできないかと検討していますが、その場合現在のフィールドに位置情報を渡して時間を返してもらうのか、各エレメントがそれぞれ演算をして時間を決定するのか、方法はいろいろあります。

これらの概念を利用する制作物は限定されてしまうかと思いますが、それでもあれば役に立つこともあると思うので、難しい概念ではありますが取り入れてみたいと思っています。


(募集中)GE-E.L.E.M.E.N.T公式キャラクター募集について

GE-E.L.E.M.E.N.T(以後、本ソフトウェア)を公開するにあたって、配布時にすぐに使えるように公式キャラクターなどを基本セットとして同梱しようか検討しています。
そこで、皆様に公式キャラクターを作っていただけないか募集を行いたいと思います。


【GE-E.L.E.M.E.N.T】GUI機能を実装してみました

Siv3DにGUIウインドウを作る機能があるので、それを利用してGUI作成機能を試験的に実装してみました。
制作物のオプション変更画面などに使えるかと思います。


GE-E.L.E.M.E.N.Tの再設計について

最近、E.L.E.M.E.N.T開発に詰むところが多くなってきたような気がしました。
やはり、設計をしっかりしていないからだと思い反省しています。

そこで、まずは設計からしっかり固めようということで、一旦コーディングをストップして設計を完成させます。
設計書は公式Wikiに順次書き込んでいきますので、皆さんもレビューに協力いただけるとありがたいです。