エンタテインメントコンピューティング2016レポート—口頭・デモ発表および聴講と体験—

今回は、11月12日(土)~11月14日(月)の三日間にわたり大阪で開催された

Entertainment Computing 2016

についてのレポートとして、口頭発表とデモ発表をした感想と、他の発表者の発表の聴講や体験をした感想を書いていきます。

本記事の流れとしましては、
①1日目:自分の口頭発表とデモ発表について
②2日目:他の発表者のデモ発表について
③3日目:他の発表の口頭発表について
④全体の感想

のように書いていきます。

 

①1日目:自分の口頭発表とデモ発表について
「RTSゲームのプレイログ分析によるプレイヤー養成システム」
というタイトルで発表しました。

仮説を持って継続プレイするプレイヤーと、ゲームのロジックだけで遊んでしまい、因果と偶然がわからないプレイヤーではeSportsプレイヤーとしての素養が違うという仮説に基づき、ログを分析しました。
今回のデモ発表では、視線追跡の表示や、リプレイの表示を多重化画面で表示することにより、リアルタイムにプレイヤーや周囲の観客にフィードバックを返すデモ発表を行いました。

口頭発表
口頭発表の反省
棒読み気味の発表になってしまったこと、
質疑応答の際に焦ってしまう部分があったところです。
この反省を生かし、卒論発表ではもっと抑揚をもって伝えていきます。

デモ発表の反省
慣れるまで伝えたい事を伝えるまでにわかりにくい説明をしてしまったことです。
慣れてからはどこを伝えるかが明確にわかり、そのために必要な説明はなにか、がわかっていましたが、最初のほうは話が長くなってわかりにくい部分がありました。
これは単純に自分の練習不足があると思ったので反省します。

発表を通した気づき
他の人に見てもらう、聞いてもらうという事は、とても貴重で大切だと感じました。
普段の自分視点だけでは思い浮かばないような意見や、今後の展開、現状の改善点など
貴重な意見を他の人に公開することでフィードバックしてもらえます。
これは、非常にためになることだと、発表を通して感じました。

以下デモ発表の内容です。

 

②2日目:他の発表者のデモ発表について
2日目からは、自分の発表はないので聴講と体験をしました。

3Dプリンターの特性に配慮した汎用ジョイント機構の提案
3Dプリンターの特性に配慮した汎用ジョイント機構の提案

 

 

Floating Tears
Floating Tears
拭き掃除における正しい雑巾絞りの定着を目的としたシステムの提案
拭き掃除における正しい雑巾絞りの定着を目的としたシステムの提案
メリーからくりスマス: 乗車体験を拡張する位置連動型車内デコレーション
メリーからくりスマス: 乗車体験を拡張する位置連動型車内デコレーション
モバイル型AR玉転がし積木アプリケーション
モバイル型AR玉転がし積木アプリケーション
位置情報に関連する投稿を可視化するつぶやきヒートマップ
位置情報に関連する投稿を可視化するつぶやきヒートマップ
人の情動と音楽が作用し合うパフォーマンス支援システムの開発(第1.0版)
人の情動と音楽が作用し合うパフォーマンス支援システムの開発(第1.0版)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

など、19ものデモ発表が行われていました。
どの展示も面白く、普段みない分野に関しての興味がわいたりしました。

今回体験した中で、一番良いなと思ったのが
八戸工業高等専門学校 古川さんのタブレット端末と無線筆型デバイスを用いた仮想書写支援システムです。
img_1073 img_1072
こちらのペルソナが
一般的に小・中で行う書道を学ぶことに、壁のある人達となっており。
その人たちが書道をするには比較的準備が大掛かりになってしまうため、小型化を目指したとのことで、
実際の筆にセンサーをつけているため、筆で書いている感覚はほぼ同じでした。

自分の思った改良、今後の開発点については、
もっと太い書き方にも対応できるようにすること。
墨の減り具合をもっと忠実に再現すること。
半紙の書き心地を再現すること。

をすることでもっとよくなるのではないかと考えました。

 

③3日目:他の発表の口頭発表について
3日目は口頭発表がたくさんあったので、そちらを聴講していました。

他大学の教授や、企業の人の発表はとても勉強になりました。
伝え方や話方がわかりやすく、この発表ではなにが言いたくて何をしたのか、今後どうしていきたいかがわかりました。
また、発表後の質疑応答に関してもレベルの高いディスカッションが多く
やはり、発表や他者の存在の大切さを学びました。

3日目で印象的だったのが
北海道大学 下森さんの「HMDを用いた俯瞰的視点変換トレーニング効果の検証」
という発表が面白くて印象に残っています。

こちらは、ゲームではなく実際のサッカーを題材にしており、
プロアスリートの中でも数名が持つといわれている俯瞰的視点をとらえるトレーニングについての研究で
HMD内でサッカーのゲームでなく動画で行い、俯瞰視点と一人称視点を切り替えてトレーニングを行い、それを実際のサッカーで使えるようにするという内容です。

これがうまくいけば、すごい新しいトレーニング法だし、人によって俯瞰視点のイメージが異なったりするため、大変そうだがおもしろいと感じました。

 

④全体の感想
楽しかったです。

研究的には、
やはり自分の研究を多くの人に聞いてもらう、見てもらうということは
今まで持てなかった視点や気がつかなかった事に気がつかせてもらえます。
そこから、今後の研究に生かすことが考えられたり、深めて行けたりするので学会で発表するということはとても良い経験になると感じました。

人間的には
熟練者の発表や、デモを聞くことで他の人の伝え方や質問の仕方がとても参考になりました。
また、関西の人とは普段あまり関わりませんが、どこの店やコンビニでも関西弁の関西人の方なのでそれはそれで面白かったです笑

そして、

やっとエスカレーターに違和感を覚えずに済みます。

以上です。

Unity PlayerPrefsとファイルの書き出しと読み込みを使ったプレイログ取得・利用

今回私は

作成したゲーム中でプレイのログをとり、そのログを使ってリプレイ機能を実装するために、ファイルの読み書きとPlayerPrefs機能を利用しました。

まず、参考にしたサイトはこちらです。

UnityでCSVを書き出す

PlayerPrefsスクリプトリファレンス

使用言語C#

まずは、Streamwriterを使ってファイルにログを書き出す部分です。

using System.IO

public class (クラス名) : MonoBehaviour{

StreamWriter sw;
FileInfo fi;

public void start(){

fi = new FileInfo(Application.datapath + “(ファイル名).txt”);
sw = fi.AppendText();
sw.WriteLine(“書き出し”);
sw.Flush();
sw.Close();

}

}

Unity C#ではStreamWriterを使用するときはまずFileInfoインスタンスを書き出すファイルのパスを与えて宣言する必要があります。
その際の”Application.datapath”はプロジェクトの”Asset”フォルダの直下を指しているので、そこに書き出したtxtファイルが保存されることになります。
“Application.datapath”を書かずに任意のパスに保存することも可能です。

次にStreamWriterのインスタンスに”AppendText”メソッドを適用することでStreamWriterがファイルを書き出す準備ができます。

その後はC#同様”WriteLine”メソッドを使って改行ありで書きだしを行っています。
改行なしの書き出しを行いたい場合はこの部分を”Write”メソッドに変更します。

最後に大切なのがStreamWriterインスタンスのFlush()とClose()この処理を行うことで、ファイルに書き出しが完了します。

 


 

次に読み込み処理です。

今回はStreamReaderで読み込んでListに保存して利用するようにしました。
また私は文字列でなく数字を扱っていたのでListに保存した読み込んだ文字列をそれぞれの型(int,double)に変換して利用しました。

string line = “”;
List<string> List = new List<string> ();

System.IO.StreamReader tReader = (

new System.IO.StreamReader (Application.dataPath + “(ファイル名)”, System.Text.Encoding.Default)
);

while ((line = tReader.ReadLine ()) != null) {

List.Add (line);

}

tReader.Close ();

まずグローバルにstring型の変数と空のListを作成します。

次にStreamReaderでファイルを読み込み、while分で一行ずつ読み込んで配列に入れています。

最後にStreamReaderを閉じましょう。

 

これでファイルの書き込み、読み込みはできます。しかし、連続プレイのログをとる場合一プレイごとにログにしたいのです。

 


 

そこで私はPlayerPrefs機能を利用しセーブデータを毎回作成し、それをファイル名につけたすことで、一人ひとりのプレイログをとり、さらにリアルタイムにログを利用することができました。

 

まずはセーブとロードの関数を作成します。

 

const string FileNum = “filenum”;

void SaveFile(int file){

PlayerPrefs.SetInt (FileNum, file);
PlayerPrefs.Save ();

}

int LoadFile(){

return PlayerPrefs.GetInt (FileNum, -1);

}

これでPlayerPrefsは利用できるので、次にゲームがスタートしたらセーブデータのカウントを増やすように設定しました。

SaveFile(LoadFile()+1);

この処理でセーブファイルの数値が1足されました。

この後にLoadFileを使ったファイル名のログデータを取ることでそのログを利用するように実装しました。

図
図にするとこんな感じです

 

まずファイルの保存名ですが

ファイルの指定の部分を

fi = new FileInfo (Application.dataPath+ “PlayLog”+LoadFile()+”.txt”);

このように変更します。こうすることで

ファイルがPlayLog1 PlayLog2という風に作成されていきます。

 

読み込み側も同様に

System.IO.StreamReader uReader = (

new System.IO.StreamReader (Application.dataPath + “PlayLog” + LoadFile () + “.txt”, System.Text.Encoding.Default)

);

while ((line = uReader.ReadLine ()) != null) {

List.Add (line);
countmax++;

}

ここで新たに追加したのがcountmaxという変数です。

こちらはListを利用した際にListの最大値を超えて数値を設定したりするとエラーをはいたりしたので,配列がいくつあるのかをカウントする変数として用意しました。

これでプレイごとのログを利用できるようになったので配列を利用することでリプレイ機能を実装できました!

 


 

まぁ、最後にString→int,double型に変換したのでそちらも参考までにのせておきます。

public static int StringToInt(string s){

return int.Parse (s);

}

public static double StringToDouble(string s){

return double.Parse (s);

}

List<int> i =List.ConvertAll (new System.Converter<string,int> (StringToInt));
List<double> d =List.ConvertAll (new System.Converter<string,double> (StringToDouble));

今回はConverterを利用しましたが、他にもやり方はいろいろあるようです!
ラムダ式とか….数式は難しいです。

 

それではよかったらPlayerPrefsを使ってみてください!

サンプル等はGithubで公開するかもしれません!

 

白井研究室研究成果発表会

平素は、格別のお引き立てを賜りありがとうございます。
さて、この度、白井研究室の科研費研究成果発表と共同研究を行っている企業の取り組みを紹介する研究会「エンタテイメントシステム工学研究会」を下記要領で開催します。
新技術の発表、白井准教授の専門とする科学コミュニケーションやエンタテイメント工学技術から、株式会社富士通ソーシアルサイエンスラボラトリといった企業を軸に、教育、医療、福祉、交通、施設、インフラ等へ、オープンな産学連携活動で活躍する企業パートナーが集まり、次世代の「おもしろいモノづくり」を共有していきたいと考えております。

皆様のご参加をお待ちしております。

というわけで、私の所属している白井研究室の研究成果発表があります。

3月1日 TEPIAホールにて開催されます。
詳細と、参加表明はこちら からよろしくお願い致します。

つきましては、研究室内で今回のイベントを担当しておりますので、イベントの成功に向けて努力します。