テキストファイル内のソースコードを読み込んで動的に実行したい

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
moba
記事: 82
登録日時: 9年前

テキストファイル内のソースコードを読み込んで動的に実行したい

#1

投稿記事 by moba » 9年前

こんばんは。お世話になります。
いわゆる「マップイベント(ツクール用語)」にスクリプトを設定することを考えています。
例えば、以下のようなテキスト(json)ファイルの、script: にあたる部分を読み込んで実行したいです。

コード:

{
	NPCs: {
		{
			id:0
			note: "Pythonのつもりで書きました"
			script: "
				var this = GetThisEntity()
				this.WalkTo(Dir.Left) #自分でどこかに定義した関数とクラスです
				this.WalkTo(Dir.Up)
				this.WalkTo(Dir.Up)
			"
		}
		{
			id:1
			script: null
		}
	}
}
このように、ソースをデータ駆動に(?)することはできないものでしょうか。

追記:
UnityではC#をスクリプト(?)に使っていますが、あれはハードコーディングということになるのでしょうか。
追記:
データ駆動を勘違いしていました。すみません。タイトルを修正しました。

Tepp
記事: 13
登録日時: 8年前
住所: フォッサマグナ
連絡を取る:

Re: テキストファイル内のソースコードを読み込んで動的に実行したい

#2

投稿記事 by Tepp » 8年前

スクリプトを組み込みたいということですが、
ゲーム制作ではこの場合、LuaやSquirrelといったスクリプト言語が使用されることが多く、
これらを利用するのが得策かと思います。

これらはゲーム制作での実績が多く、またC++から容易に呼び出し、呼ばれることが可能です。
詳細はググっていただければ多くの情報が出てきます。

もちろん、mobaさんが例に出しているように独自のスクリプト言語を構築するということも可能です。
ただしその場合はテキストファイルを読み込み、自分でその構文を解析する必要が出てきますのでコストが高いです。
(また独自スクリプトを他人に書かせる場合、学習コストも高くなります。)

尚、UnityのC#(スクリプト)は今回のような話とは関係ないです。
ハードコーディングという解釈で問題ありません。

moba
記事: 82
登録日時: 9年前

Re: テキストファイル内のソースコードを読み込んで動的に実行したい

#3

投稿記事 by moba » 8年前

返信が遅くなってすみません。
スクリプト言語について分かっていないと気づけたので、
よく調べてみようと思います。
Teppさんご回答ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る