GodotでHTML5エクスポート

Godot(ゴドー)、君は何者なんだい。Godotとの付き合いは二日目。まだ正体をつかめていない。

どうもrokujyouhitomaです。引き続きGodotを触ってる。

HTML5のエクスポートをサポートしているとのことなので、試した。

実行結果

結果を先に。ちゃんとビルドできた。

エクスポートしたアプリはGithub Pagesでホスティングしたので実行できるようにしといた。

godot-tutorial で実行できる。

f:id:rokujyouhitoma:20170611170720p:plain

環境情報

  • Mac OSX 10.10.5
  • Godot Engine 2.1.3-stable
  • Chrome 58.0.3029.110 (64-bit)

エクスポートの設定

デフォルトのGodotは、ビルドターゲットの設定が不十分なので、設定を行う。

  • Godot Engine - Download で配布されている をインポート。Godotエディタの"Setting" -> "Install Export Template"。Fileで落としたGodot_v2.1.3-stable_export_templates.tpzを指定。
  • エクスポートの実行は、"Export" -> "HTML5" -> "Export Project"

f:id:rokujyouhitoma:20170611170802p:plain

事前に、メインシーンの設定がまだの場合は、"Project Settings" -> "General"で"main scene"の設定をお忘れなく。

f:id:rokujyouhitoma:20170611170818p:plain

所感

すんなりできた。

一方で、templatesを自前でemscripten使ってビルドしようと思ったんだけど、Macにemsdkのインストールでハマった。ハマってる最中にドキュメント読んでたら、templatesが公式配布されてたからヽ(・ω・)/ズコー

ただ、テンプレートのインポートはハマりどころだと思ってて、エディタ環境にそもそも最初からバンドルされてる状態でもよかったんじゃないかな。なんで別なんだろか。

Godotの諸情報をまとめる

EuroPython2017のセッション一覧を見てたら、Bringing Python to Godot game engine · EuroPython 2017 · Rimini, 9-16 July 2017 というセッションを発見し、Godotを知った。

以下、調査を行おうと思うので、ざっとGodotの情報をまとめる。

Godot(ゴドー)

諸情報

天沢らせんさん(3Dモデラーさん?)

天沢らせんさんが日本語の情報や、書籍の出版を行っていた。
3Dモデラーさん?なのかな。

当面お世話になることになりそう。

書籍

天沢らせんさん著の書籍がある。購入するかは、未定。

誰かがまとめてくれたリンク集

ドキュメントの日本語翻訳

個人でドキュメントの日本語翻訳を試みてる方がいるようだ。

Godotインストー

バイナリやソースコードで配布されてる。
面白いことにSteamからもインストール可能。

Godotを実際に触った話

日本語化

エディタは日本語化されていない。(余力があれば、jaを追加したいところ)
エディタにはデフォルトで日本語のフォントが入っていない。

ひとまずNotoSansを入れている先駆者が数人いて、記事にしていてくれた。感謝。

ラベル

Mac上のエディタで、日本語を文字列のラベルをシーンに追加し、実行し表示することはできた。
フォントは前述したNotoSans。

f:id:rokujyouhitoma:20170610214254p:plain

ソスコードはここに置いておいた。

所感

当面調べてみようかなー。と思える。
ドキュメントはある程度揃ってる。このエンジンで作られたゲームもいくつかはOSSで公開されているので見てみる。

ドキュメントやら、ネット上のサイトみたり、触ってて気づいた点がいくつかあった。

  • fbxサポートしてない。Autodeskのクローズドライブラリのライセンスとの兼ね合い上が理由だそうな。Importing 3D scenes — Godot Engine 2.1 documentation
  • エディタが落ちる。とりわけ外部データ(今回だとフォントのインポート)時にクラッシュ

EuroPython2017開催。7月9日〜16日

今年もEuroPythonが開催される。また僕は行けない。

動画がYoutubeあたりに公開されるのを楽しみにしている。

EuroPython2017

開催日時は、7月9日〜16日。
開催場所は、イタリアのアドリア海沿岸のリミニ。サンマリノ共和国の玄関口だそうだ。

イタリア開催多いな。

今年は、EuroPythonの公式ブログも立ち上がってる。

個人プロジェクトXのコード書いてたら副産物としてテンプレートエンジンがある程度仕上がった

f:id:rokujyouhitoma:20170528222128j:plain

にゃーん。これはねこの飼い主との思い出が詰まった投稿。

なお、画像は知人の飼い猫で、使用許可取ってない。

経緯

2011年11月にtornado.templateJavaScriptに移植した。
使えはするけど、細かい機能まで作りきれてなかった。

ちょうど、今回の個人プロジェクトXで、

  • JavaScriptで書かれた
  • テンプレートエンジン

が必要になったので、メンテして使えるようにした。

前提の個人プロジェクトX

詳細は割愛。テンプレートエンジンに関して記載すると、

- X自体は外部のコード使いたくなかったので、巷で流行ってる?vanilla js。
- Closure Compilerは採用。

テンプレートエンジン

ざっくりと整理。

こんな感じで使える。

var loader = new DictLoader({
    "base.html": '<title>{% block title %}default title{% end %}</title>\n' +
	'<body>{% block body %}default body{% end %}</body>',
    "page.html": '{% extends "base.html" %}' +
        '{% block title %}page title{% end %}' +
        '{% block body %}page body{% end %}'
});
loader.load('page.html').generate();

https://github.com/rokujyouhitoma/horse-racing-game/blob/master/src/js/lib/template_test.js (将来リンク切れになってもしらね)

既知の不具合、問題点

  • 一部でテンプレートエンジン内部コードを構築するの面倒だったのでeval使ってる。
  • テンプレート構文が部分的にバグってる。具体的には{{this}}でブラウザだとglobalオブジェクトにアクセスできちゃったり{{XXX}}で任意のオブジェクトにアクセスできてしまう。また自由な構文(内部的にはStatementBlockで評価するだけ)を許可してしまっている。

私感

  • 個人的に使う限りは困らないところまではできた。
  • Closure Compiler最高。
  • Pythonのwith構文相当を関数で提供は大したコードではなかったけど、面白かった。
  • 個人プロジェクトXではこんなだいそれたコードは複雑度が増すし要らなかったんや!実際に削減できたコード?そんなの数十行だけだ!!増えたコード??2000行近くだ!!満足感はある。後悔はしていない(ただし個人プロジェクトだから!、業務だったら...)。
  • にゃーん

開きっぱなしのブラウザタブを消すための備忘録

備忘録。ブラウザのタブで開きっぱなのをkillしたいので。書き出しとく。

自分以外の人にはなにも有用ではないだろう。

脳内の書き出し

ついでに、脳内でもやーっとしていて考えがまとまってないのを書き出しとく。

- 人工知能学会に提出されたpixivに関する論文は、学会側が研究倫理ガイドラインを作って啓蒙する必要があるのかなぁ。と思う次第。どうでしょうね。そもそも学士課程、修士課程で学ぶもんだろとは思う
- 任意組合を調べるのは限度がある。というか、調べられない。なお、一生に一度は作ってみたいとちょっと思う。必要と機会があれば

私感


大抵ははてぶしているはずであるが、こういうのまとめとくのになんかいいのかなぁ。

ああ、これがウェブログか?どうだろうか。

近況

4/1といえば。エイプリルフール。近況を。

のびのび書くよ!

要約

  • 株式会社ITAKOは三期目に
  • 4月から放送大学の選科履修生
  • 自然言語処理言語学は引き続き、言語処理系は休止
  • アイドル?のおっかけ?とかしてたら美学を学ぶ必要あるか??
  • 松浦党研究連合会
  • 効率よく生きないと時間がいくらあっても足りない

株式会社ITAKO

所属する株式会社ITAKOは三期目に入りました。

主にゲームの開発をしている会社です。会社に興味ある人がいたら、遊びに来てください。

放送大学の選科履修生

ひとまず上期に、 情報のセキュリティと倫理(’14) を受講予定。
すでに教科書は読み終えたので、録画した授業ないしは、放送大学のサイト上で授業を観て単位取得試験に挑む予定。

岡部前学長

遅れましたが、お疲れ様でした。
岡部学長からの最後の合格通知だと思うと寂しい限りです。

放送大学の学生するって噂を人づてに耳にしたので、単位取得試験の会場でお会いする機会などありそうな気はしています。

自然言語処理言語学、言語処理系

自然言語処理

自然言語処理は、引き続きだけど、あまり時間を避けていない。
先日開催されたNLP2017の発表資料?論文?は、公開されていたので斜め読みだけでもしたいと思っているがまだできていない。

自然言語処理の資料

言語処理学会の正会員になっていないけど、Paperを読めることに気づく。

一応放送大学の情報コースを履修している学生ではあるのだけど、言語処理学会の会員の申請に、学生として申請すべきか悩んでいる。
学生として申請するからには学業の一部で、利用するのが筋。

日本古典籍字形データセット

知人から教えてもらった国立情報学研究所(NII)が公開したデータセット
言語処理のみならず画像処理(というかそっちの学習データメインかな)で使えそう。OCRとか。

雑多
話だいぶそれる

それはさておき、昔勤めていた会社が、言語処理学会第21回年次大会(NLP2015)からプラチナスポンサーではなくなってること気づく。一方で別の昔勤めていた会社が、2016年からプラチナスポンサーになるなどしていて、栄枯盛衰とはこのことかと感じている。

言語処理系

特に体系だって学んだり、スケジューリングして学んでいるわけではない。

PyPy-DevとPython-DevのMLはタイトルベースと気になるのは追っている。Python-Dev MLの @methane さんの投稿はとりわけ見てる。
あとはRPythonで書かれた処理系をたまに探す程度。

たまに(偶然、月一くらい?) @gocho と出会っていて、彼が処理系の学部生向けくらいの書籍を読んでいて、僕も読まないとなーと思ってる。そういえば、ドラゴンブック読んだことないし。

言語学

基礎的な書籍は読了しているが、停滞中。

まさに一昨日くらいの直近の話題だと、ひょんなところで、低地オランダ語のドイツ語とオランダ語の類似度について話題になったのでおってみたいと思ってる。
ひとまずネットを適当に散策したら、北海道大学の学生さんか教員がまとめていたので目を通す予定。

一つ気づいたのは、いかんせん世界史を高校で未履修というレベルなので、外国の歴史絡むと辛いないーというのには気づいた。

時間と心の余裕あれば、放送大学の大学院の講義だけど、 放送大学 授業科目案内 文学・言語学・美学研究法(3)「言語学研究法」 を受講したいところ。

アイドル?

天使ちゃんかわいいよ天使ちゃん。...かわいいってなんだろうな?

だいぶ飽きてきたけど、よい表現をすれば、天使ちゃんって一人ユニット?アイドル?の追っかけ?っぽいことをした。
その過程で、美術館をはしごして、そういえば、僕が絵画大好きだったなーという気づきがあった。

昔は年20回くらい美術館行ってたものな。

時間と(ry 放送大学 授業科目案内 文学・言語学・美学研究法(3)「言語学研究法」

あと、追っかけるために、複数の検索エンジンにクエリ投げるツールの整備とかした。
@sugyan みたいに画像処理には手を出していない。@sugyan の記事見るに、ドメイン知識を貯めるのもありだけど、それはだいぶ沼だよなー。って思って躊躇してる。

松浦党研究連合会向けの活動

要するに郷土史歴史学

停滞中。大きな進捗はないが、完全にないわけではない。

現状分析としては、まだ、基礎知識を仕入れているところ。伊万里市史は一通りさらったけど、唐津市史はまだ。
風土記(日本文學大系)と古事記(同、岩波の単行本は移動時用に)はさらっとさらった。

佐世保市史を調達したいと考えている。
ありがたいことに松浦叢書は手に入れた。が、上巻を二冊手に入れてしまうという事故を引き起こした。

いつか連合会の研究会に出席したいところだが、いかんせん遠い。会場は長崎、佐賀県だからなぁ。

効率よく生きないと時間がいくらあっても足りない

ほんとこれな。

人生の先輩エリック・ホッファー先生はどうやって生きたのか、原点回帰が必要なのかもしれない。

なかよし

全然関係ない話なんだけど、同僚からおすそ分けもらったイカとチーズの乾物がめっちゃ美味しかった。

イカ珍のはなまんが販売している「なかよし」。

www.hanaman.net

Docker上のUbuntuにemscripten実行環境を作った

備忘録。

チョットJSデキル。
が、しかし。ECMA2016とか全く乗り遅れてるので、久々にJS書こうかなーって思いたつ。
ひとまず、emscriptenに興味があって、試したいのでemscripten環境をざっとつくる。

Dockerfile書くまで整備した。
たぶんECMA2016は書かない。触れない。

TODO

Docker imageのコンパクション技法

Ubuntu前提。

  • apt-get
    • update, upgradeが不要であれば、避ける
  • apt-getで入れたあとの/var/lib/apt/lists/*は消す
  • ビルド時などの一時ファイルは消す
  • git cloneは極力避ける。.gitが大きい。ソースコード配布を活用する
  • Ubuntuベースで作っちゃったが、より軽量なLinuxディストリビューションは検討したほうがよいかも。Centos/Fedora派なのに気まぐれでUbuntu採用しちゃったから、CentOSの容量と比較して乗り換え考えるかな