・実行環境がすべて収録されたパッケージは下記URLから取得してください。 http://someiyoshino.main.jp/file/tsukasa/tsukasa_engine_starter_kit_v2_2.zip
・ドキュメントは下記URLから取得してください。最新版は第3版第2刷になります(上記パッケージにも同梱されています)。 http://someiyoshino.main.jp/file/tsukasa/tsukasa_engine_guide_book_for_v2_2.pdf
・ソースコードはGitHub上で開発継続中です。 https://github.com/t-tutiya/tsukasa
・スターターキットを展開したら、main_dev.exeを実行します。ランチャーが起動し、サンプルを実行できます。サンプルコードはscript/sampleフォルダに収録されており、コードと比較しながら挙動を確認できます。 ・first.rbが最初に実行されるスクリプトファイルになります。このファイルに司スクリプトを記述することでゲームを実装できます。
司エンジン開発フォルダルート直下のフォルダとファイル構成は以下になります(ファイルについては最低限の物のみ説明しています)。
tsukasa/
main.exe ……実行ファイルです。ruby本体をラップしていて、実行するとTsukasa.rbを読み込んだ後、main.rbを実行します
main_dev.exe ……main.exeにデバッグモードが付与された物です。標準出力用のコマンドプロンプトウィンドウを表示します。
main.rb ……rubyのソースコードです。司エンジンの初期設定を行い、first.rbを司スクリプトとして実行します。
first.rb ……最初に実行される司スクリプトファイルです。初期状態では"./script/demo.rb"を読み込みます。このファイルを書き換えることで、任意の司スクリプトを実行できます。
rakefile ……rake用のスクリプトです。現在はユニットテストを実行するspecタスク/testタスクのみを提供しています。
.rspec ……RSpecの実行時オプション格納ファイル
GemFile ……Bundler用のインストールパッケージ記述ファイル
GemFile.lock ……Bundlerで使用
README.md ……readmeファイル。概要と更新履歴を収録。
init.rb ※内部で使用
Ayame.dll ※Rubyで使用
LIBEAY32.dll ※Rubyで使用
libffi-6.dll ※Rubyで使用
msvcrt-ruby220.dll ※Rubyで使用
script/ ……司スクリプト/tksスクリプトを格納するフォルダです。ゲームで使用されるスクリプトを配置することを想定としています。
sample/ サンプルコードが収納されています。
demo.rb ……サンプルコードのランチャーです。
block/ ……ブロック崩しゲーム
demo_game/ ……ノベル脱出ゲーム
jump_action/ ……ジャンプアクションゲーム
nomaid/ ……野メイド
sample/ ……サンプルコード群
doc/ ……ガイドブックとドキュメントを格納するフォルダです。
datastore/ ……セーブデータなど保存を想定しているフォルダです。初期状態では空です。
plugin_control/ ……カスタムコントロール用のrubyファイルを格納するフォルダです。このフォルダに配置された.rbファイルは自動的にrubyプログラムとして読み込まれます。
HorrorTextShader.rb ……カスタムシェーダーサンプル
plugin_script/ ……ユーザー定義コマンド用の司スクリプトを格納するフォルダです。このフォルダに配置された.rbファイルは自動的にtsukasa言語として読み込まれます。
default_script.rb ……Ruby/DXRubyのラッパーコマンド群
helper_script.rb ……tsukasaのラッパーコマンド群
text_layer_script.rb ……TextPageのヘルパーコマンド群
resource/ ……画像ファイルや音声ファイルの格納を想定したフォルダです。サンプルで使用するファイルが収納されています。
char/ ……立ち絵画像
Fonts/ ……プリレンダ済みフォント
icon/ ……アイコン画像
music/ ……BGM
rule/ ……トランジション用ルール画像
system/ ……司エンジンのrubyソースコードが格納されています。
Tsukasa.rb ……司エンジンを構成する最低限のコードを読み込みます。
lib/ ※Rubyで使用するシステムフォルダ。
spec/ ……ユニットテスト(Spec)用のrubyソースコードが格納されています。
test/ ……ユニットテスト(Minitest)のrubyソースコードが格納されています。
tools/ ……司エンジンをサポートする外部ツールが格納されています。
FontDataMaker.rb ……TrueTypeフォントデータを司エンジンで使用できるプリレンダフォントデータに変換します。
ConvertFont.rb ……FontDataMaker.rbの内部で使用しています。
フォルダ構成 ・プラグインフォルダをネイティブファイルのフォルダとスクリプトファイルのフォルダに分離した
ビルド関連
ユニットテスト関連
内部ロジック
サンプル
default_script.rb
helper_script.rb(utility_script.rbから改名)
Controlコントロール
Windowコントロール
Drawableモジュール(旧Drawableコントロール)
Layoutableモジュール(旧Layoutableコントロール)
Clickableモジュール
ClickableLayoutコントロール
Imageコントロール
TileMapコントロール
Inputコントロール
RuleShaderコントロール
Shaderコントロール
TextPageコントロール
pluginフォルダ
main.rb処理
ファイル構成
テスト
司スクリプト
default_script.rb
_SYSTEM_環境変数
Controlコントロール
Windowコントロール
ClickableLayoutコントロール
TextPageコントロール
Dataコントロール
Inputコントロール
司スクリプト記法の変更
Window(旧:Tsukasa)
Control
ALIAS 追加
_CHECKINPUT 追加
_CHECKBLOCK 追加
_DEFINEPROPERTY 追加
_DEBUGTREE 追加
_DEBUGPROP 追加
_DEBUGCOMMAND 追加
_DEBUGTEMP 追加
_DEBUGLOCAL 追加
_DEBUGSYSTEM 追加
YIELD 引数が設定できるようにした。
DELETE 第一引数で削除するコントロールをパス指定出来るようにした
INCLUDE/PARSE file_pathオプションをpathに改名
CHECK
MOVE/PATH
LOOP
_STACKLOOP 廃止
WAIT 廃止(仕様を更新し、ユーザー定義コマンドに変更)
Char(旧:CharControl)
コントロール名/ファイル名を変更
image_pathプロパティを追加
CLEAR 追加
Image(旧:ImageControl)
コントロール名/ファイル名を変更
file_pathプロパティをpathに改名
初期化時のみentityを設定出来ていた仕様を廃止
DRAW 追加
DrawableLayout(旧:RenderTargetControl)
コントロール名/ファイル名を変更
LINE 追加
BOX 追加
CIRCLE 追加
TEXT 追加
TextPage(旧:TextPageControl)
TileMap(旧:TileMapControl)
Layoutable(旧:LayoutableControl)
コントロール名/ファイル名を変更
ユーザーが直接生成できないように変更
_TOIMAGE 廃止
Drawable(旧:DrawableControl)
RuleShader(旧:RuleShaderControl)
Sound(旧:SoundControl)
Layout(旧:LayoutControl)
ClickableLayout(旧:ClickableLayoutControl)
標準ユーザー定義コマンド(default_script.rb)
ユーティリティーユーザー定義コマンド(utility_script.rb)
データストア
定数定義
v1.2.1p7(2016/05/16)
v1.2.1p6(2016/05/14)
※今回からDXRuby v1.4.4以降対応になります。
ファイル構成
Control
ImageControl
TextPageControl
TileMapControl
ClickableLayoutControl
RenderTargetControl ・枠線表示機能を削除
ユーザー定義コマンド
司スクリプト
クラス構成
Control
LayoutableControl
DrawableControl
ImageControl
CharControl
Tsukasa
ClickableLayoutControl
TileMapControl
標準ユーザー定義コマンド
Controlクラス
TextPageControlクラス
ImageControlクラス
司スクリプト
標準テキストウィンドウ
追加ユーザー定義コマンド
サンプルコード
・サンプルのコードやリソースデータは以下の方々に提供して頂きました。提供していただきました。ありがとうございました。 ・ページ送りアイコン、背景、テキストウィンドウ:BA2さん ・キャラ画像:Wednesdayさん(https://twitter.com/wednesday1029) ・音源ファイル:あおいたくさん(https://twitter.com/aoitaku) ・カスタムシェーダーサンプル:鳴海つかささん(https://twitter.com/kiku_masa_mune) ・野メイド/ブロック崩しサンプルゲーム:あおいたくさん(https://twitter.com/aoitaku)