2016年05月21日

Defold > Getting started

原文はこちらです。

始めましょう

このチュートリアルにおいて、我々は空のプロジェクトから開始し、アニメーションするキャラクタ、物理衝突、ピックアップとスコアリングを備えた完全なランナーゲームをビルドします。始める前に、ちょっと時間を取って、ゲームに挑戦してみて、我々が作ろうとしているものの感覚をつかんでおきましょう:


(訳注:原文では、実際にブラウザ上で遊べるようになっています)

新しいゲームエンジンを学ぶにあたって多くを得られるようにするために、我あなたが始めるために、我々はこのチュートリアルを作りました。それはかなり完璧なチュートリアルであり、エンジンやエディタがどのように動作するかウォークスルーするものです。我々はあなたがプログラミングに熟知していることを仮定しています。

もしあなたが Lua プログラミングに対するイントロダクションを必要とするなら、我々の Defold における Lua マニュアルをチェックして下さい。

もしあなたが、このチュートリアルが始めるためのものとしてはちょっと大変に感じるようであれば、いろいろな難しさに関するチュートリアルのセレクションを用意しているところで、我々のチュートリアルページをチェックして下さい。

もしあなたが動画チュートリアルを好むのであれば、Youtube 上の動画バージョンをチェックして下さい。

我々は、2つの他のチュートリアルから、多少の変更を施したゲームアセットを使います。そのチュートリアルはいくつかのステップに分割され、最終的なゲームに向けて重要なステップを我々に進めさせるようなパートをそれぞれ有しています。

最終的な結果は、環境の中を走り抜け、コインを集め、障害物を避けるようにあなたがカエルをコントロールするゲームとなるでしょう。カエルは固定速度で走り、プレイヤーはシングルボタンを押下する(もしくはモバイルデバイス上のスクリーんをタッチする)ことによってカエルのジャンプだけをコントロールします。レベルは、ジャンプするためのプラットフォームのエンドレスのストリームから構成され、さらに収集するためのコインから構成されます。

もしあなたがいくつかの点で、このチュートリアル上やあなたのゲームを作ろうとしたときに突っかかったりしたら、Defold フォーラムで我々に質問することに躊躇しないで下さい。フォーラムにおいて、あなたは Defold について議論することができ、Defold チームから支援を仰いだり、どのようにして他のゲームデベロッパが彼らの課題を解決したかを見たり、新しいインスピレーションを見つけたりすることができます。さあ始めましょう。

注記

チュートリアルの至るところで、概念に基づく詳細化された記述群と、ある瞬間々々をどのように処理するかが、このパラグラフのようにマークされています。もしあなたがこれらのセレクションがあまりにも詳細過ぎると感じるのであれば、それらをスキップして下さい。

それでは始めましょう。我々が願うのは、あなたがこのチュートリアルを通して多くの楽しさを有することと、チュートリアルがあなたが Defold で進めるのを手助けすることです。

posted by cbbandtqb at 21:46| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2016年05月01日

Defold > FAQ

またまた興味深い環境が現れたようなので、直訳していきたいと思います。原文はこちらです。

FAQ

一般的な質問

Defold は本当にフリーですか?

はい、フル機能を備えた Defold エンジンとエディタが完全に無料です。隠されたコスト、フィーやロイヤリティもありません。本当に無料です。そして我々はベータ版期間後も何かに課金を始めるつもりはありません。

一体どうしてこの世に King は Defold をもたらしたりするのですか?

これはとんでもない話に思えるかもしれませんが、商業ベースのゲーム会社はそのコア技術を無償でリリースしますが、我々はそれをどう見ているかをここに示します:Defold を使う人々が増えるほど、そのエンジンは良くなっていくはずです。Defold をそのコミュニティにリリースすることによって、大勢が Defold の改良を支援することができ、チュートリアルを作ることによって、バグを見つけることによって、ドキュメントを改善することによって、そしてより多くのことによって、そうなるのです。King は Defold を内部的に、それも 毎日使っているので - エンジンはより良くなっているし、我々の内部のデベロッパもシアワセになっていくでしょう。我々が信じているのは、偉大な技術は偉大な才能を魅了するということです。全面的に、我々が信じているのは、これが究極的により良いゲームに導くということです - King にいる我々のためだけではなく、全てのゲームデベロッパのためにです。

以上です。そしてそれが我々の全てです - 偉大なゲームを作り賞賛し、それらを作る素晴らしい人々のことなのです。

どれくらいの期間、Defold はサポートされますか?

我々は深く Defold にコミットしています。世界中の King ゲームスタジオのチームが、Defold で作られたゲームを作っており、さらに数年間にわたって開発し続けています。逃げ出すことはありません。

Defold をプロ向け開発向けとして信用できますか?

はい、我々は "あなた自身のドッグフードを食べること" の正当性を信じており、我々自身 King でほとんど全ての我々の新しいゲーム IP を開発するために使っています。

なぜ私のゲームを Defold のサーバに格納しなければならないのですか?

Defold はもともと完全なターンキーサービスとなるべくデザイんされており、そこにはコラボレーションツールやストレージを含んでいました。我々のサービスを使うことには便益があり、それをダッシュボードを通して使う人々に価値を我々は提供し続けるでしょう。しかしながら、我々が気づいたのは、いくばくかのユーザは他のストレージプロバイダを好むということであり、我々はそれのサポートに取り組み続けます。

もしあなたが最新のテクノロジに精通しているのであれば、有効な回避策があります。我々のフォーラムでこの HOWTO を参照して下さい。

Defold は誰が作ったのでしょうか?

Defold は Ragnar Svensson と Christian Murray によって作られました。King と Defold は2013年にパートナーシップを開始し、King は Defold を2014年に買収しました。その完全なストーリーをここから読めます。

どのプラットフォームで Defold のツールは動作しますか?

エディタは、Mac OS X, Windows, そして Linux (32 bit) 上で走ります。

どのターゲットプラットフォームに対して Defold でゲームを開発できますか?

ワンクリックで、あなたは iOS, Android や HTML5 へ Mac OS X, Windows や Linux と同様にパブリッシュできます。本当にワンコードベースで、6つのプラットフォームがサポートされます。

3D ゲームを Defold で開発できますか?

はい!エンジンは、本格的な 3D エンジンです。しかしながら、そのツールセットは 2D 向けに作られているため、あなたはあなた自身で相当に苦労しなければならないでしょう。より優れた 3D サポートが計画中です。

どのプログラミング言語が Defold で使えますか?

あなたの Defold プロジェクトにおける全てのアプリとゲームロジックはスクリプトを通してコントロールされます。Defold エンジンは Lua 言語をスクリプティングのために組み込んでいます。Lua は軽量で動的な言語であり、高速で非常にパワフルです。我々のテクノロジーサマリにて、より多くを読んでください。

どのバージョンを走らせているか知る方法はありますか?

はい、メニューの中の "About Defold Editor” を選んで下さい。ポップアップがはっきりと Defold ベータバージョンであることを示しますが、より重要なのは、仕様が SHA1 をリリースしているということです。http://d.defold.com/beta からダウンロード可能な最新のベータバージョンは、http://d.defold.com/beta/info.json を開くことでチェックすることができます(同様に同じファイルが安定バージョンに対して存在しています:http://d.defold.com/stable/info.json)。

Defold ベータバージョンは自動アップデートしますか?

はい。Defold ベータは起動時にアップデートをチェックしますし、同様に Defold 安定バージョンも実施します。

外部の Git ツールを使えますか?

はい、可能です:

  1. まず最初に Open Project and New Branch を介してプロジェクトをチェックアウトして下さい。
  2. "Defold/branches/[project_id]/[user_id]/[name_of_branch]" にあるローカルリポジトリを、あなたの Git クライアントに追加して下さい。
  3. あなたの Defold ユーザ名を指定して下さい。パスワードは、Defold Dashboard の中の "Settings" の下にある "Access token" です(非常に大きな16進数の数値です)。
  4. あなたはこれであなたのしたいように追加、コミット、巻き戻し、ブランチそしてマージをできます。任意の変更は、Defold 内で即時的に反映されます。注意して欲しいのは、Defold は、あなたがエディタ中で行った全ての変更を自動的に処理するということです。

私のゲームを Appstore にパブリッシュしたいです。IDFA にはどのように対応すればよいですか?

Defold は IDFA(広告識別子)に対するビルトインサポートを持っています。あなたは sys.get_sys_info() を経由してそれをフェッチできます。サブミットするとき、Apple は IDFA に対する3つの有効なユースケースに対する3つのチェックボックスを用意しています:

  1. アプリ内で広告を提供する
  2. 広告から属性をインストールする
  3. 広告からのユーザアクション属性

もしあなたがオプション1をチェックすると、アプリのレビュアはアプリ内に表示される広告を探すでしょう。もしあなたのゲームが広告を見せないのであれば、そのゲームはおそらくリジェクトになるでしょう。Defold は ID をあなたのゲームのクロスプロモーションのために使うので、あなたはオプション2を使うべきでしょう。

Defold を使っているときのエラー

なぜエディタは私のプロジェクトを開始もしくは開かないのですか?

Defold アプリを示すパスにスペースが含まれていないかチェックして下さい。例えば、もしあなたが、あなたの "Applications" フォルダにある、エディタの OSX バージョンがある "Defold-macosx" にそのフォルダを置くなら、ok でしょう。もしあなたがそのフォルダを "Defold maxosx" にリネームしたら、エディタはもう開始しないでしょう。Windows では、"C:\Program Files\" 配下に Defold を置いてしまうことで、この問題が引き起こされます。これは、Eclipse フレームワークに横たわる既知のバグに起因します。

ゲームを開始できませんが、ビルドのエラーはありません。何が悪いのですか?

以前に出くわしたことのある、あなたが修正したビルドエラーのところで、稀にファイルのリビルドに失敗することがあり得ます。メニューから Project > Rebuild And Launch を選んでフルリビルドを強行して下さい。

なぜ私の HTML5 アプリは Chrome 内のスプラッシュ画面でフリーズするのでしょうか?

いくつかの場合、ファイルシステムからローカルにブラウザ内でゲームを走らせることができません。エディタからの実行はローカルウェブサーバからゲームを起こすようにします。できれば、例えば、Python で SimpleHTTPServer を使います:

$ python -m SimpleHTTPServer [port]

Linux の64ビット問題

Linux (64ビット) 上で走らせるとき、エディタが起動しません。

ダッシュボードからエディタの64ビットバージョンをダウンロードしているか確認して下さい!

Linux の32ビット問題

Linux (Ubuntu) 上で走らせていますが、私のプロジェクトを開こうとしても何も起きません。

もしあなたが 32ビット Linux を走らせているなら、あなたのインストレーションは libwebkitgtk コンパチが欠けているかもしれません。インストールは次のようにします:

$ sudo apt-get install libwebkitgtk-1.0-0

その後でエディタを再起動します。

私のプロジェクトの新しいブランチを作れません。なお私は Linux を走らせています。

libssl バージョン 0.9.8 をインストールする必要があるか確認して下さい。以下のようにしてみて下さい:

$ sudo apt-get install libssl0.9.8          # Ubuntu

Debian 7 は最新の libssl を搭載しています。あなたは必要なバージョンを以下によってインストールできます:

$ wget http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl0.9.8_0.9.8o-4squeeze14_i386.deb
$ sudo dpkg -i libssl0.9.8_0.9.8o-4squeeze14_i386.deb

私のゲームを Linux 上で走らせようとすると、エンジンが起動しません。

エディタ内のコンソール出力をチェックして下さい。もしあなたが以下のメッセージを受けているなら、

/home/sicher/Desktop/Defold/plugins/com.dynamo.cr.engine_1.0.0.201502231306/engine/linux/dmengine: error while loading shared libraries: libopenal.so.1: cannot open shared object file: No such file or directory

あなたは libopenal を以下のようにインストールする必要があります:

$ sudo apt-get install libopenal1           # Ubuntu

ゲームのコンテンツに関する作業

Defold はプレハブをサポートしますか?

はい。それらはコレクションと呼ばれます。それらはあなたが複雑なゲームオブジェクト階層を作れるようにし、エディタの中あるいは(コレクションの生成を通して)実行時にあなたがインスタンス化できる別々のブロックの構築として、それらを格納できるようにします。GUI ノードに対して、GUI テンプレートのサポートがあります。

別のゲームオブジェクトの子供としてゲームオブジェクトを追加できません。なぜでしょうか?

あなたがゲームオブジェクトファイル内に子供を追加しようとすることはあるかもしれませんが、それは不可能です。なぜそうなのか理解するためには、あなたは親子の階層関係は厳密にシーングラフ変換階層関係であることを思い出さなければなりません。シーン(コレクション)内に配置された(生成された)ゲームオブジェクトは、シーングラフの部分ではなく、それゆえシーングラフ階層関係の部分にもなりえません。

なぜゲームオブジェクトの全ての子供にメッセージをブロードキャストできないのでしょうか?

親子関係は、シーングラフ変換関係以外を表現しませんが、オブジェクト指向アグリゲーションと取り違えられるべきものではありません。もしあなたが、あなたのゲームデータと、あなたのゲームがその状態を変化させるようにそれを変換するのに最も良い方法に焦点を当てようとするなら、ずっとひっきりなしに多くのオブジェクトに状態データを伴ったメッセージを送る必要が少ないことにあなたは気づくことになるでしょう。あなたがデータ階層関係を必要とすることになるであろう場合には、これは Lua で容易にコンストラクトされ取り扱われます。

なぜ私のスプライトのエッジ周辺に表示ノイズが発生するのでしょうか?

それは "エッジブリーディング" と呼ばれる表示ノイズで、アトラス中の隣り合うピクセルのエッジピクセルが、あなたのスプライトに割り当てられた画像の中で滲むところで発生します。解決方法は、同一のピクセルからなる余分な行と列を伴ったあなたのアトラス画像のエッジを詰め込むことです。幸運にも、このことは Defold 内のアトラスエディタによって自動的になされ得ます。あなたのアトラスを開き、Extrude Borders 値を1に設定していください。

私のスプライトに簡単に淡い色を付けられますか、もしくはスプライトに対して私自身のシェーダを書かなければなりませんか?

はい、できます。ビルトインスプライトシェーダは以下のように定義された固定の “tint” を持ちます:

sprite.set_constant("#sprite", "tint", vmath.vector4(r, g, b, a))

スプライトのz座標を100に設定したら、正しくレンダリングされません。なぜでしょう?

ゲームオブジェクトのZポジションはレンダリングの順番を制御します。小さな値は大きな値の前に描画されます。デフォルトのレンダスクリプトにおいて、-1と1の間の範囲にある深さを伴ったゲームオブジェクトが描画され、それより小さいもしくは大きいものは描画されません。あなたは公式のレンダリングに関するドキュメントでレンダリングスクリプトについてより多くを読むことができます。GUI ノード上で、Z値は無視され、全く完全にレンダリングする順番に影響しません。実際、ノードは、それらがリスト化され順序と子供の階層(及びレイヤリング)によりレンダリングされます。GUI レンダリングとレイヤを使った描画呼び出し最適化についてのより多くは公式の GUI ドキュメントで読んでください。

ビュー射影のZの範囲を -100 から 100 に変更することはパフォーマンスに影響しますか?

いいえ。唯一の影響は精度です。zバッファは対数であり0に近いz値では優れた解像度を有しますが、0から離れるにつれ解像度が落ちます。例えば、24ビットバッファがある場合、10.0と10.000005では差が出るのに対して、10000と10005では差が出ません。

どのように角度が表現されるのかについて一貫性がないのはなぜですか?

実際には、一貫性があります。エディタやゲームの API 内ではどこでも、角度は度として表現されます。数学ライブラリはラジアンを使います。現時点で慣例としては "angular_velocity(角速度)" という物理プロパティが残っており、現在、ラジアン/秒として表現されます。これは変更が期待されています。

GUI ボックスノードを色のみで(テクスチャ無しで)生成した場合、それはどのようにレンダリングされますか?

それは頂点色にされたシェイプになります。気に留めておいて欲しいのは、それがまだピクセル描画速度にコストがかかるということです。

もしこっそりとアセットを変更したら、エンジンは自動的にそれらをアンロードしますか?

全てのリソースは内部的に参照カウントされています。参照カウントがゼロになり次第、当該リソースはリリースされます。

ゲームオブジェクトにアタッチされたオーディオコンポーネントの利用なしにオーディオを再生できますか?

全てのことはコンポーネントベースです。複数のサウンドを伴ったヘッドレスなゲームオブジェクトを作ることもできますし、サウンドコントローラオブジェクトにメッセージを送ることでサウンドを再生することもできます。便益は、あなたがインターバルに基づいたサウンドをかわすことなどができるということです。

実行時にオーディオコンポーネントに関連付けられたオーディオファイルを変更できますか?

概して全てのリソースは、あなたが自由にリソース管理できるような便益を伴う形で、静的に宣言されます。

物理衝突のシェイププロパティにアクセスする方法はありますか?

いいえ、現時点ではできません。

私のシーンにおいて衝突オブジェクトをレンダリングする何か素早い方法はありますか?(Box2Dのデバッグ描画のような)

はい、game.project 内の physics.debug を設定して下さい。(公式プロジェクト設定ドキュメントを参照して下さい)

多くの接触/衝突を有する場合の性能コストはどんなものでしょうか?

Defold はバックグラウンドで Box2D の変更されたバージョンを走らせており、性能コストはよく似たものになるはずです。あなたは常に、プロファイラを持ち出すことによってエンジンが物理処理を何回こなしているかを参照できます。あなたはまた、どの種類の衝突オブジェクトをあなたが使っているかも確認できるでしょう。より詳細については、Defold の公式物理ドキュメントを参照して下さい。

多くの ParticleFx コンポーネントを有することの性能インパクトはどのようなものでしょうか?

それは、それらが表示中か否かに依存します。表示中でない ParticleFx は、性能コストはゼロになります。表示中の ParticleFx の性能推測値は、プロファイラを使って評価されることになりますが、そのインパクトはどうコンフィグされているかに依存することになります。ParticleFx のメモリコストは約 140 バイトです。ほとんどの他の事項と同様に、メモリは、game.project 中の max_count として定義された ParticleFx の数に基づいて割り当てられます。

コレクションプロキシを経由してロードされたコレクションの内側でゲームオブジェクトへの入力をどのように受け取ればよいでしょうか?

コレクションをロードされたプロキシ毎に、それら自身の入力スタックを持っています。入力は、メインのコレクション入力スタックから、プロキシコンポーネントを経由して、コレクション中のオブジェクトへルーティングされます。これが意味することは、ロードされたコレクション中のゲームオブジェクトに取って入力フォーカスを得るのは不十分であるということであり、プロキシコンポーネントをつかんでいるゲームオブジェクトは同様に入力フォーカスを得る必要があるということです。詳細は、入力に関するドキュメントを参照して下さい。

実行時にゲームがどのプラットフォームで実行中か知る方法はありますか?

はい。sys.get_sys_info() をチェックして下さい。

文字列型のスクリプトプロパティを使えますか?

いいえ。Defold はハッシュ型のプロパティをサポートします。これらは型を指し示したり、任意の種類の識別子やキーを明示するために使われ得ます。ハッシュはまた、ゲームオブジェクトの ID(パス)を格納するためにも使われ得ますが、エディタが自動的にあなたのために関係する URL を伴ったドロップダウンを追加するので、URL プロパティはしばしばより好ましいことになります。詳細は、スクリプトプロパティのドキュメントを参照して下さい。

Lua

Lua のどの標準ライブラリが Defold には含まれていますか?

公式ドキュメントにリストされているライブラリは別として、Defold はソケットライブラリだけでなく、Lua 5.1 標準ライブラリの全てを含んでいます:

  • 基本機能 (assert(), error(), print(), ipairs(), require など)
  • コルーチン
  • パッケージ
  • 文字列
  • 数学
  • 入出力
  • OS
  • デバッグ
  • ソケット (LuaSocket から)
posted by cbbandtqb at 23:21| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする

2016年02月21日

Raspberry Piを使ったインターバル撮影環境の構築

DSC01953.JPG

今現在、このブログともう一つのブログを持っていますが、両方のテーマにかかる内容となりましたので、クロスポストしてみたいと思います。

動機は、以下のムック本。

Raspberry Piは前から気になっていたのですが、これといったモチーフがなく手付かずでした。

しかし、帝玉の開花を見ることができず、インターバル撮影環境の構築を決意。

というわけで、早速、以下のモノの手配。キーボードやマウスは新たに購入せず。


ラズパイ本体。とりあえず一番ハイスペックなものを。

ムック本に素直に従い、2Aで、ケーブルの途中にスイッチのあるものを。

これもムック本に従い、素直に購入。

本体とカメラを固定するために。

ディスプレイがHDMIに対応していないのでやむなく。

とりあえず。

早速、本体のセットアップ。ムック本の40ページから始めて45ページまであっさり完了。ただし、51ページの日本語環境構築については、ムック本に誤りがあり、訂正・補足情報を参照のこと。

とりあえずここまでで動くようになったのですが、カメラの位置をベストな位置に持ってこようとすると、どうしてもRaspberry Pi本体も引きずられる形で動かさざるをえないので、vncを使ってアクセスできるようにすることで、ディスプレイ/キーボード/マウスから解放することに。なお、本当であれば無線LANにした方が自由度が高いのですが、とりあえず長いLANケーブルがあったので有線のままで。

まずは、IPアドレスを固定に。本当は固定しなくてもいいのですが、毎回変わるとそれはそれで面倒なので固定することに。ところが、ここでまず最初のつまづき。Raspeberry PiのOSを最新にしていたのですが、Wheezyと呼ばれているバージョンからJessieと呼ばれているバージョンに変わっていることに気づかずに、Wheezyでの設定方法でやろうとしてうまくいかず時間をロス。最終的に、こちらのページを参考に固定に成功。

次に、vnc環境の設定。当方は、macからアクセスするために、こちらのページを参考に設定。

これで操作環境はできたので、カメラモジュールを使う環境を設定。ここはムック本の93ページに素直に従い、raspistillをインストール。さらに撮った写真を見るために、pqivをインストール。

さらに、撮った画像をDropboxに転送できるようにするために、こちらこちらのページを参考に、Dropbox-Uploaderをインストール。ここで2回目のつまづき。途中、Dropboxのサイト上でCreate appボタンを押す、というステップがあるのですが、なぜかmacから実行するとうまくいかない。ので、ここだけ止むを得ずWindows PCから実行。

以上で、環境構築完了。

初めて撮った画像がこちら。

test.jpg

これで紅帝玉の開花が追えれば…というところなのですが。どうなることやら。

追記:今回購入したカメラは固定焦点のものでした。でも本当は、こういったカメラの方がいいのかも…と思いつつ、値段すらわからないので見送り…

posted by cbbandtqb at 01:59| Comment(0) | TrackBack(0) | 備忘録 | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。