2013年5月30日木曜日

【感想】Memory シリーズ(作・魂喰らい様)

また久々のブログ更新となってしまいました。最近はいろいろ雑用が多くて、趣味から離れている気がします……。

そんなわけで、今日は久々に気持ちを仕切り直して、シル学ユーザデータの感想を書きたいと思います。

memoryby魂喰らい
http://www.silversecond.com/game/SilGakuMOD/html/tdv209.html?#13064139890901

(以下、Memory シリーズ)
II / III / IV / V / VI / VII(上) / VII(下) / VIII / IX / X
XI / XII / XIII / XIV / XV / Last memory

こちらはシリーズもののSSです。地歴探究部で世界を救った後の、アウルのお話。先日ついに完結したので、一度振り返ってみました。

私、このシリーズ大好きなんですよ。このシリーズの投稿が確認されたら、即ダウンロードして読んでいました。

なぜ自分が Memory シリーズに惹かれたのか、その魅力をいろいろ考えてみたのですが……なんか上手く言えないんですね。あえて一言で表すと「ワクワク感」という変な言葉になってしまう……とにかく読んでいると段々高揚してくるんですよ! 妄想が広がるというか。

このシリーズはシルフェイドのキャラクターがたくさん出てきます。第一話は静かに始まりますが、話数を重ねるごとに登場人物が増えていき、賑やかになっていきます。

一方で、シル学本編では起こらなかった、得体のしれない事件が進行していきます。その事件の見せ方も巧くて、先が気になるように、各話絶妙な終わり方になるように工夫されています。

シル学原作キャラの賑やかさと、何か大きなことが始まりそうな展開。この2点が「ワクワク感」の主要な構成要素かもしれません。

それから、アウルを始めとする皆さんの主人公への思いも……いいですよね。いっぱいニヤニヤできました。賑やかなギャグも良かったですが、シリアスなシーンやラブラブな展開も良かったですね。

キャラの中でも、特にアウルのかわいさは素晴らしい! 真面目で主人公に一途で、そして世界を救ったことで成長し、ちょっぴり腹黒く(?)なったアウル……作者さんのアウル愛あればこそ、ここまで魅力を出せているんでしょうね。

私はシル学SSを自作したりもしますが、さまざまな面でこの作品から影響を受けました。一番直接的なのは、○ー○の扱いとか……。もっと内面的には、自分もこの「ワクワク感」を出せるようなSSを目指したい、と思っているので、全体的に影響を受けていると思います。

シリーズものなので比較的テキストの量が多くて、後から読むには少し躊躇してしまう人もいるかもしれません。また、これはシル学ユーザデータ集の仕様上仕方ないのですが、番号順に並んでいないので途中から読む人にとってはシリーズを順番に探すのが大変かもしれません(この記事の冒頭で番号順に整理したので、通しで読む際には手掛かりになるかも)。

しかし、それでも私はこの作品をおススメしたいです。シル学キャラたちの賑やかな会話が好きな人ならば、シリーズを追って見て損はないと思います!

特に、 VII(下) と IX と X が、私のおススメです。ぜひ読んでみてください!

2013年4月24日水曜日

もしシル学発売直後に Google Apps Script を知っていたら……

今年に入ってから Google Apps Script にハマっているのですが、面白い機能がたくさんあって飽きそうにありません。
最近試してみた「UrlFetch」も、アイディア次第で色々できそうな機能でした。

Google Apps Script では指定した URL から XML や HTML を読み込んで、自分のプログラムに利用できるのです。 (参考サイト: UrlFetchとXmlデータの利用

例えば、私の音楽素材を置いている以下のサイトから、
https://sites.google.com/site/kodaigyono/music

1日1回 html を読み込んで、曲名などのリストだけ取り出して、 ソートし直して表を作ることができるのです。
https://script.google.com/macros/s/AKfycbyQyAHpyXTZOTyvoxQ7jeGJQnIrbNFq-dYQ3B7mVS4-O94KZ4U/exec
(ファイル名降順にソート)

「読み込んだ html をデータとして利用できる」おかげで、 データを並べ直したり、複数のページのデータを統合したり、 データの解析などもできるかもしれない、そんな機能なのです。


この機能をもし、シル学発売直後に知っていたら……

ウルフさんに許可をもらって、シル学ユーザデータ集のデータを読み込ませてもらえたら……

データの各種ソートや、評価集計システムなんかを Google Apps Script で作れたかもしれない……

と、ふと思ったのでした。

これがあればシル学ユザデリスト(並べ替え加工)よりももっと便利なものが作れたかもしれません。 簡単な投票システム位は追加できたでしょうし、怪しげなスクリプトファイルを使う必要も無くなります。


ただ、これは「データをよそ様から頂いて自分の場所でウェブサービスとして公開する」ということになるので、 ウルフさんから許可を頂かなければできない話なのですが。

それに、今ではシル学ユーザデータ大賞も行われて各データの評価も一通りまとまり、 新データ投稿も落ち着いてきました。 敢えてこれからやるメリットは薄いんですよね。


残念ですが、何か別の機会に活用できたらいいなぁ。

2013年3月1日金曜日

ウディタのダウンロード機能で Google スプレッドシートを読み書き

今回の記事はいつにも増して長くなってしまったので、まず要点だけまとめます。
以下のような内容です。
  • ウディフェスの「迷宮航路グラナドア」を遊んで、ウディタの「ダウンロード機能」に興味を持った。
  • ウディタの「ダウンロード機能」でサーバーに情報(文字列)を送信できる。
  • Google Apps Script を使うと、送られてきた情報をスプレッドシートに書き込んだり、メール・カレンダー等の Google のサービスで利用できる。
  • よってウディタの「ダウンロード機能」と Google のサービスは連携可能。
ウディタで Google スプレッドシートの内容を読み書きするサンプルツールを公開しています。
サンプル:ツール(左上の「ファイル」→「ダウンロード」からダウンロードできます)
サンプル:スプレッドシート

(ここから本文開始です)

ウディフェス出品作品をいくつかプレイしているのですが、そんな中で「迷宮航路グラナドア」というゲームに惹かれました。テキスト表示とネットワーク機能を使ったシンプルなゲームで、想像力を掻き立てられます。

このゲームではネットワーク機能でプレイヤーの情報を集めて、ランキングや他の人の行動履歴を表示してくれます。ランキングに載れるように頑張っているのですが、なかなか上位に行ける気配がありません。

そんな「ダウンロード機能」、つい最近ウディタのベータ版に加わった機能なんですよね。「ダウンロード機能」の名前の通り、サーバーからゲームの更新データなどをダウンロードする機能なのですが、ダウンロードをサーバーにリクエストする際にパラメーター(文字列)を送ることができます。受け取ったパラメーターを集計すれば、ランキングや行動履歴などをデータベースに格納したり、集計結果をウディタにダウンロードさせてランキングをゲーム内で表示したりできます。

これまではウディタ+外部プログラムでしか実現できなかったことを、ウディタの機能のみで実現できるようになったのですね。

そんなダウンロード機能を使ったゲームを楽しんでた時、ふと、先日音楽素材サイトのメールフォームを作る際に使用した Google Apps Script を思い出しました。 Google Apps Script を使えば、 Google のサービスでウディタの送信を受け取れるのではないかと思い立ったのです。そこで試してみたところ、上手くできました!

ウディタで作ったこちらのツールで、こちらのスプレッドシートに書き込み・読み込みが可能です。「名前」と「メッセージ」を入力し、スプレッドシートに送信すると同時に、最新の3件を読み込んでウディタに表示します。日本語も書き込むことができます(ひょっとしたら文字化けやエラーがあるかも)。

このスプレッドシートはブラウザで普通に開いたときには「閲覧のみ」可能となっていて、書き込みできません。でもウディタからの送信を受け取ることで、スプレッドシートに書き込むことが出来ます(ウディタ以外でも「get 送信」のパラメーターで書き込めます)。

また、スプレッドシートの内容をテキストデータでダウンロードさせることも出来るので、サーバー側のデータをウディタで読み込むことも可能です。

スプレッドシートをデータベースのように用いれば、ランキング・行動履歴などのネットワーク機能を実現できそうです。さらに、Google Apps Script はスプレッドシートだけでなく、メール・カレンダーなど Google のサービスにもアクセスできます。ウディタのダウンロード機能と Google のサービスが連携できちゃうんですね。工夫すれば色々面白いことが出来るかもしれません(アイディアさえあれば……)。

とりあえず機能として「出来る」という事は確かめられましたが、ネットワーク機能を使ったゲームを実際に開発・公開する場合は、 いろいろと気になる問題がありますよね。サーバーのアクセス速度とか、どのくらいのアクセス数まで許容されるのかとか。この辺はよく調べてから使う必要がありますね。

あと日本語文字列への対応に手間がかかる点は注意が必要です。ウディタのデータベースに文字コードテーブル(のようなもの)を持たせて、データ送信の際に文字列を変換(URLエンコード)して対応させました。もし興味のある方がいらっしゃいましたら、ウディタ制作部分は暗号化していないので、のぞいてみてください。ウディタに慣れていないので、変な書き方などあるかもしれませんが。

 Google Apps Script 側のコードは長くなるので下の方に掲載しています。

そんなわけで、最近ウディタベータ版に追加された「ダウンロード機能」と、最近サイト制作に使った Google Apps Script が連携できたという話でした。思わぬところで両者が結び付いて嬉しくなったので、記事を書き始めたらついつい長文に……。

参考サイト

WOLF RPGエディター公式サイト
Google Apps Script — Google Developers
Google Apps API Japan - Google グループ
初心者のためのGoogle Apps Scriptプログラミング入門
Google Apps Scriptプログラミング [中級編]
逆引きGoogle Apps Scriptリファレンス « bmoo.net
JIS X 0213:2000 関連データ

Google Apps Script のコード

このコードでは ecl.js を利用させていただいております(http://www.drk7.jp/MT/archives/001324.html)。
 Google Apps Script 内に ecl.js をコピーして用いる必要があります。
// *********************************************************
// get リクエストが来たときに実行される関数
// *********************************************************
function doGet(param) {
  // 受け取ったパラメータをスプレッドシートの2行目に書き込む
  inputParamToSheet(param, 2);
  
  // テキストにスプレッドシートの1行目から4行の内容を書き込む
  var output = ContentService.createTextOutput();
  output.append(outputSheetToCsv(1, 4));
  
  // get リクエストしてきたクライアントにテキストを返す
  return output;
}

// *********************************************************
// get 送信で受け取った param を
// スプレッドシートの row 行目に書き込む
// *********************************************************
function inputParamToSheet(param, row) {
  // 配列に受け取ったパラメーター param を代入
  var data = new Array();
  data[0] = new Array();
  data[0][0] = Utilities.formatDate(new Date(), "JST", "yyyy-MM-dd (EE) HH:mm:ss"); // タイムスタンプ
  data[0][1] = param.parameter.name;
  data[0][2] = param.parameter.message;
  data[0][3] = EscapeUTF8(param.parameter.name);
  data[0][4] = EscapeUTF8(param.parameter.message);

  // スプレッドシートの操作
  try{
    // スプレッドシートを指定して開く。
    // ここに指定するIDはスプレッドシートのURLで確認できる。
    var ss = SpreadsheetApp.openById('0AnSodraS19LadHd3VG1wWUFqb2hBOXp2eFg3UUswalE');
    Logger.log('open ' + ss.getName());
    var sheet = ss.getSheetByName('シート1');

    // row-1行目とrow行目の間に1行追加
    sheet.insertRowBefore(row);

    // 配列のデータをスプレッドシートに書き込み。
    // row 行1列目から1行×5列の範囲に書き込む。
    sheet.getRange(row, 1, 1, 5).setValues(data);    
  }catch(e){
    Logger.log(e);
  }
}

// *********************************************************
// スプレッドシートの row 行目から range 行読み込んで、
// csv 形式で出力
// *********************************************************
function outputSheetToCsv(row, range){
  // スプレッドシートの操作
  try{
    // スプレッドシートを指定して開く。
    // ここに指定するIDはスプレッドシートのURLで確認できる。
    var ss = SpreadsheetApp.openById('0AnSodraS19LadHd3VG1wWUFqb2hBOXp2eFg3UUswalE');
    Logger.log('open ' + ss.getName());
    var sheet = ss.getSheetByName('シート1');

    // スプレッドシートのデータを代入。
    // row 行1列目から range 行×5列の範囲を読み込む。
    var data = sheet.getRange(row, 1, range, 5).getValues();
  }catch(e){
    Logger.log(e);
  }

  // データを csv 形式の文字列にする。
  var csv = '';
  for(var i = 0; i < data.length; i++) {
    csv += data[i][0] + ',';
    csv += data[i][3] + ',';
    csv += data[i][4] + '\n';
  }

  return csv;
}

2013年2月20日水曜日

音楽素材のサイトを公開しました

ずっと非公開でサイトを構築していたのですが、体裁を整えて公開してみました。

https://sites.google.com/site/kodaigyono/

midi 形式の素材は WOLF RPG エディターの画像・音声素材データ集に投稿しているものと同じなのですが、サイトには録音して mp3 形式にした素材もアップロードしています。

デザインを微調整しながらサイトを作っていくのは楽しいですね。
特に、メール送信フォームを Google ドライブ で作ることができるとは……必要ないかもしれないけど面白いから作ってみました。

Google Apps Script というものをはじめて使ってみましたが、楽しくてしばらくいじって遊びました。サーバーサイドで作るようなサービスもこれで作れそうですね。

音楽素材については、今後も画像・音声素材データ集と上記サイトの両方で公開していこうかなと思います。mp3はサイズが大きいので、これからもサイトだけで公開する予定です。

ogg 形式の素材は試験的に作ってみたのですが、ループタグの設定が難しい……。

まだ駆け出しのサイトですが、どうぞよろしくお願いいたします。

2013年2月17日日曜日

近況

また更新期間があいてしまいました。

もっとシル学SSを書きたいという気持ちはあるのですが……なかなか書けるほどのネタがまとまりません。しばらくはネタをあたためるだけの日々になりそうです。Google のドキュメントにネタは書きためているので、いつか陽の目をみたらいいなぁ。

また、他の方のシル学SSも、ずっと熱望しています。誰かに書いて欲しい! 私がSSを書くモチベーションとして、やっぱりシルフェイドキャラたちのストーリーをもっと「読みたいから、書く」という要素は大きいのです。なので他の方の作品が読める機会があれば、即ダウンロードして読みます。

自分の書いたSSも思い返してみると、自分が読みたい展開を、よく書いているような気がします。他のユザデ作者の方々も、同様なのでしょうか。


ゲーム素材曲の作成の方は短い時間でも少しずつ作成できるので、ぼちぼち完成した曲を投稿しています。このブログで作曲のことも書くつもりだったのですが、全然書いてませんでした。

フリー音楽素材は、非常に高品質なものが既にたくさん公開されているので、それらと比べると自分の曲は未熟なのですが、作曲自体はとても楽しいので、これからも続けていきたいと思っています。


ウディフェス開催中ですね! いくつかダウンロードしてやってみています。自分のプレイするペースを上回って新しいゲームが公開されていくので、目移りしてしまいますね。

自分も昔はゲームづくりにあこがれてツクールシリーズを買っていました。一回も完成させたことはありませんでしたが……。ゲーム素材曲づくりも、その流れではじめたものです。
というか今も「音楽ツクールDX」っていうソフトで作ってます。 
名前の通りツクールシリーズで、10年位前のソフトです。本当はもっと新しい機能の充実したソフトに移った方がいいと思っているのですが……Windows7だと上手く起動しないことがありますし、異常終了して編集した内容が消し飛ぶこともありますし……。でも、使い慣れたソフトはなかなか離れられないものですね。


そんなわけで、今回は本当に雑多な近況についてでした。
次回は作ったBGMについての記事を書くことを目標に頑張ります。

2013年1月18日金曜日

シル学wiki関連のこと

シル学ユーザデータ大賞も終了し、SmokingWOLFさんのイーリス追加も公開されました。シル学界隈も一段落といったところですね。

でも私の中で、まだシル学関連で気になることが残っているんです。 今回は、ずっと気がかりではありつつ、なかなか手をつけられていない事についてメモしておきたいと思います。


● シル学攻略wiki

以前のシル学攻略wikiは、今よりも充実していたと記憶しているのですが、何故か消えてしまいました。その後、有志によって現在の攻略wikiが立ち上がり、再び記事を書いてくださる方が現れました。しかし、内容としてはまだまだ発展途上という印象です。

やはりwikiの性質上、参加者が多い発売直後に記事の土台が育って、その後の更新が楽になるものだと思うのです。初期のwikiが消えてしまったのが悔やまれますね。

私自身はもうシル学本編については何周もしたので、(通常の難易度では)攻略に困ることはありません。でも、攻略wikiが充実していないのは、何となく寂しいんですよね。改善したいのですが、どこから手をつけて良いのか分かりません。

私の知り合いのシル学プレイヤーに、「クリア特典を活用しても地歴編をクリアできなかった、難しい」という人もいたので、攻略wikiが誰かの役に立つこともあるとは思うのですが。

とりあえず、ユーザデータ関連を加筆してみたのですが、申し訳ないことに、余計なページを作ってしまいました。削除したいのですが、非ログインユーザーでは削除不可のようです。wiki管理者にアカウントを申請したので、そのお返事をお待ちしています。



● ウィキペディアのシル学の項目

これも以前は結構充実していたんですよ! ですが、最初に「シルフェイド学院物語」の記事を作った方が、ウィキペディアのルールに則っていなかったため、著作権違反で最初の版に遡って全部消されてしまいました……ああ……。

それまでシル学の項目を充実させてきた有志の方々の労力も、今は跡形もありません……こんなに残念なことはないですね。

2013年1月9日現在でも、「SmokingWOLF」の項目で、シル学は完成作品と未発表作品、両方のリストに名を連ねています。何とかしたいとは思っているのですが、ウィキペディアの編集は敷居が高くて、手を出せません。


wiki の編集って、少し書き換えるだけなら気軽にできますが、大規模な記事を書くのは難しいですよね。既にある記事に沿って加筆修正(間違ったデータを正したり、空欄を埋めたり)するのは容易ですが、データ掲載のフォーマットを最初から考えなければならないのは難題です。必要な情報を体系的にまとめる能力が求められますね。

大規模記事は難しいですが、少しずつ編集してみたいなぁ、と思っています。