「カテゴリ:MonoGame」の版間の差分
imported>Administrator (→利用方法) |
(→概要) |
||
1行目: | 1行目: | ||
'''MonoGame'''(読み:ものげーむ)とは、[[Mono]]プロジェクトが開発している[[XNA]]互換のゲーム開発用フレームワークである。 | '''MonoGame'''(読み:ものげーむ)とは、[[Mono]]プロジェクトが開発している[[XNA]]互換のゲーム開発用フレームワークである。 | ||
− | == 概要 == | + | ==概要== |
− | [[XNA]] | + | かつて「[[XNA]]」というゲーム開発用のフレームワークがあった。これは[[Windows]]と[[Xbox 360]]の[[ゲーム]]が簡単に作れるという代物であり、さらに開発したものは[[インディーズ]](=[[同人]])でも家庭用ゲーム機にゲームを出せるとあって大いに盛り上がった。 |
− | + | ||
− | + | しかし[[マイクロソフト]]は[[Xbox 360]]の終焉と[[Xbox One]]の誕生に際してXNAの廃止を決定した。いわゆる[[Unity]]などの[[マウス]]でポチポチ系の[[ゲームエンジン]]の普及により、従来型の[[プログラミング]]によるゲーム開発は急激に衰退していたためである。もう本屋に行っても[[DirectX]]の入門書すらない状況なので仕方がない。 | |
+ | |||
+ | ただプログラミングによるゲーム開発を好む人も少なからず存在した。そしてMonoGameが生まれた。本家[[XNA]]は[[Windows]]と[[Xbox 360]]が対象であったが、MonoGameでは[[Mac OS X]]や[[iOS]]、[[Android]]といった最新鋭の環境に対応している。 | ||
2017年3月、[[Microsoft]]が[[Xamarin]]を買収した絡みで、MonoGame 3.6から[[Xbox One]]と[[Windows 10]]を公式にサポートすることとなった([[UWP]]をサポートすることとなった)。 | 2017年3月、[[Microsoft]]が[[Xamarin]]を買収した絡みで、MonoGame 3.6から[[Xbox One]]と[[Windows 10]]を公式にサポートすることとなった([[UWP]]をサポートすることとなった)。 | ||
− | == マルチプラットフォーム == | + | ==マルチプラットフォーム== |
[[iOS]]や[[Android]]はシミュレータや実機転送が遅すぎて一般的なアプリ開発でも[[デバッグ]]時にイライラ全開だが、MonoGameは[[Mac]]にも対応しており起動の速い[[Xamarin.Mac]]向けにスマホ風の解像度でサクッと開発し、最終的に[[iOS]]や[[Android]]向けに微調整という手法を用いることもできる。 | [[iOS]]や[[Android]]はシミュレータや実機転送が遅すぎて一般的なアプリ開発でも[[デバッグ]]時にイライラ全開だが、MonoGameは[[Mac]]にも対応しており起動の速い[[Xamarin.Mac]]向けにスマホ風の解像度でサクッと開発し、最終的に[[iOS]]や[[Android]]向けに微調整という手法を用いることもできる。 | ||
この場合はソリューションを以下のようなプロジェクト構成にして、各プラットフォームからCoreプロジェクトを呼ぶようにすると良い。 | この場合はソリューションを以下のようなプロジェクト構成にして、各プラットフォームからCoreプロジェクトを呼ぶようにすると良い。 | ||
− | * Core - MonoGame PCLプロジェクト(Gameクラスなどの実際のコード) | + | |
− | * Mac - MonoGame MonoMacプロジェクト(エントリポイントとコンテンツだけ) | + | *Core - MonoGame PCLプロジェクト(Gameクラスなどの実際のコード) |
− | * Android - MonoGame MonoMacプロジェクト(エントリポイントとコンテンツだけ) | + | *Mac - MonoGame MonoMacプロジェクト(エントリポイントとコンテンツだけ) |
+ | *Android - MonoGame MonoMacプロジェクト(エントリポイントとコンテンツだけ) | ||
なお、[[Xamarin.Mac]]では実行速度が爆速であるため[[スマホ]]実機では[[フレームレート]]が出ない現象には注意が必要である。定期的にスマホ実機で動作検証することをオススメする。 | なお、[[Xamarin.Mac]]では実行速度が爆速であるため[[スマホ]]実機では[[フレームレート]]が出ない現象には注意が必要である。定期的にスマホ実機で動作検証することをオススメする。 | ||
− | == 機種依存の吸収 == | + | ==機種依存の吸収== |
その名の通り本来は[[ゲーム]]に使うものであるが、[[ゲーム]]以外の[[3D]]を扱う[[アプリ]]でも利用できなことはない。とくに機種依存の激しい[[Android]]、そのなかでも飛び抜けて機種依存の激しいパーツである[[GPU]]周りを整流する[[ミドルウェア]]としても非常に有望である。 | その名の通り本来は[[ゲーム]]に使うものであるが、[[ゲーム]]以外の[[3D]]を扱う[[アプリ]]でも利用できなことはない。とくに機種依存の激しい[[Android]]、そのなかでも飛び抜けて機種依存の激しいパーツである[[GPU]]周りを整流する[[ミドルウェア]]としても非常に有望である。 | ||
24行目: | 27行目: | ||
− | == 利用方法 == | + | ==利用方法== |
MonoGame本体を公式サイトからダウンロードしてインストールする。 | MonoGame本体を公式サイトからダウンロードしてインストールする。 | ||
− | * http://www.monogame.net/downloads/ | + | |
+ | *http://www.monogame.net/downloads/ | ||
開発環境が[[Mac]]や[[Linux]]の場合はMonoGame Pipeline Toolをダウンロードしてインストールする。 | 開発環境が[[Mac]]や[[Linux]]の場合はMonoGame Pipeline Toolをダウンロードしてインストールする。 | ||
− | * http://teamcity.monogame.net/repository/download/MonoGame_PackageMacAndLinux/latest.lastSuccessful/Pipeline.MacOS.pkg?guest=1 | + | |
+ | *http://teamcity.monogame.net/repository/download/MonoGame_PackageMacAndLinux/latest.lastSuccessful/Pipeline.MacOS.pkg?guest=1 | ||
+ | |||
3Dモデルをビルドするには別途[[Assimp]]が必要となる。以下のページを参照してインストールしよう。 | 3Dモデルをビルドするには別途[[Assimp]]が必要となる。以下のページを参照してインストールしよう。 | ||
− | |||
− | |||
− | === Xamarin Studioの場合 === | + | *[[MacOS版のMonoGameのPipeline.appで3Dモデルをビルドできない]] |
+ | * | ||
+ | |||
+ | ===Xamarin Studioの場合=== | ||
Xamarin Studio を使っている場合はMonoGame本体を入れた段階でプロジェクトテンプレートも追加されるので何もする必要はない。 | Xamarin Studio を使っている場合はMonoGame本体を入れた段階でプロジェクトテンプレートも追加されるので何もする必要はない。 | ||
新規ソリューション作成時(新規プロジェクト作成時)に「MonoGame」という項目が増えているはずである。 | 新規ソリューション作成時(新規プロジェクト作成時)に「MonoGame」という項目が増えているはずである。 | ||
− | === Visual Studio for Macの場合 === | + | ===Visual Studio for Macの場合=== |
2017年12月時点ではVisual Studio for Macの拡張機能の公式リポジトリのアルファチャンネルにプロジェクトテンプレートがある。 | 2017年12月時点ではVisual Studio for Macの拡張機能の公式リポジトリのアルファチャンネルにプロジェクトテンプレートがある。 | ||
リポジトリをアルファチャンネルに切り替えて「最新の情報に更新」ボタンを押せば登場すると思う。 | リポジトリをアルファチャンネルに切り替えて「最新の情報に更新」ボタンを押せば登場すると思う。 | ||
− | * リポジトリ:アルファチャンネル | + | |
− | * カテゴリ: IDE Extensions (UnityテンプレートなどがあるGame Developmentカテゴリではないので注意) | + | *リポジトリ:アルファチャンネル |
− | * 名称: MonoDevelop.MonoGame.Templates | + | *カテゴリ: IDE Extensions (UnityテンプレートなどがあるGame Developmentカテゴリではないので注意) |
+ | *名称: MonoDevelop.MonoGame.Templates | ||
[[category:Mono]] | [[category:Mono]] |
2019年2月25日 (月) 02:40時点における版
MonoGame(読み:ものげーむ)とは、Monoプロジェクトが開発しているXNA互換のゲーム開発用フレームワークである。
概要
かつて「XNA」というゲーム開発用のフレームワークがあった。これはWindowsとXbox 360のゲームが簡単に作れるという代物であり、さらに開発したものはインディーズ(=同人)でも家庭用ゲーム機にゲームを出せるとあって大いに盛り上がった。
しかしマイクロソフトはXbox 360の終焉とXbox Oneの誕生に際してXNAの廃止を決定した。いわゆるUnityなどのマウスでポチポチ系のゲームエンジンの普及により、従来型のプログラミングによるゲーム開発は急激に衰退していたためである。もう本屋に行ってもDirectXの入門書すらない状況なので仕方がない。
ただプログラミングによるゲーム開発を好む人も少なからず存在した。そしてMonoGameが生まれた。本家XNAはWindowsとXbox 360が対象であったが、MonoGameではMac OS XやiOS、Androidといった最新鋭の環境に対応している。
2017年3月、MicrosoftがXamarinを買収した絡みで、MonoGame 3.6からXbox OneとWindows 10を公式にサポートすることとなった(UWPをサポートすることとなった)。
マルチプラットフォーム
iOSやAndroidはシミュレータや実機転送が遅すぎて一般的なアプリ開発でもデバッグ時にイライラ全開だが、MonoGameはMacにも対応しており起動の速いXamarin.Mac向けにスマホ風の解像度でサクッと開発し、最終的にiOSやAndroid向けに微調整という手法を用いることもできる。
この場合はソリューションを以下のようなプロジェクト構成にして、各プラットフォームからCoreプロジェクトを呼ぶようにすると良い。
- Core - MonoGame PCLプロジェクト(Gameクラスなどの実際のコード)
- Mac - MonoGame MonoMacプロジェクト(エントリポイントとコンテンツだけ)
- Android - MonoGame MonoMacプロジェクト(エントリポイントとコンテンツだけ)
なお、Xamarin.Macでは実行速度が爆速であるためスマホ実機ではフレームレートが出ない現象には注意が必要である。定期的にスマホ実機で動作検証することをオススメする。
機種依存の吸収
その名の通り本来はゲームに使うものであるが、ゲーム以外の3Dを扱うアプリでも利用できなことはない。とくに機種依存の激しいAndroid、そのなかでも飛び抜けて機種依存の激しいパーツであるGPU周りを整流するミドルウェアとしても非常に有望である。
ただしMonoGameを使うとUI周りの開発が面倒になる。MonoGameにサクッとGUIを実装するライブラリは出ているが、どれもPC向けばかりで、現在の主流であるスマホ向けのUIフレームワークもほとんどない。
利用方法
MonoGame本体を公式サイトからダウンロードしてインストールする。
開発環境がMacやLinuxの場合はMonoGame Pipeline Toolをダウンロードしてインストールする。
3Dモデルをビルドするには別途Assimpが必要となる。以下のページを参照してインストールしよう。
Xamarin Studioの場合
Xamarin Studio を使っている場合はMonoGame本体を入れた段階でプロジェクトテンプレートも追加されるので何もする必要はない。 新規ソリューション作成時(新規プロジェクト作成時)に「MonoGame」という項目が増えているはずである。
Visual Studio for Macの場合
2017年12月時点ではVisual Studio for Macの拡張機能の公式リポジトリのアルファチャンネルにプロジェクトテンプレートがある。 リポジトリをアルファチャンネルに切り替えて「最新の情報に更新」ボタンを押せば登場すると思う。
- リポジトリ:アルファチャンネル
- カテゴリ: IDE Extensions (UnityテンプレートなどがあるGame Developmentカテゴリではないので注意)
- 名称: MonoDevelop.MonoGame.Templates
カテゴリ「MonoGame」にあるページ
このカテゴリには 54 ページが含まれており、そのうち以下の 54 ページを表示しています。
M
- MacOS版のMonoGameのPipeline.appで3Dモデルをビルドできない
- MonoGame (Xamarin.Android)で初期解像度がおかしい機種の対策
- MonoGame (Xamarin.Android)で画面の向きを指定する
- MonoGame 3.7.1以前でfxファイルをコンパイルする
- MonoGame 3.8.0以降でfxファイルをコンパイルする
- MonoGame(Android)でコンテンツを利用する
- MonoGame(Xamarin.Android)にAdMobのバナー広告を表示させる
- MonoGame/MonoMacおよびXamarin.Macで起動時にクラッシュする
- MonoGame/クラスライブラリ
- MonoGame/クラスライブラリ/BasicEffectクラス
- MonoGame/クラスライブラリ/DirectionalLightクラス
- MonoGame/クラスライブラリ/Gameクラス
- MonoGame/クラスライブラリ/GraphicsProfile列挙体
- MonoGame/クラスライブラリ/IndexBufferクラス
- MonoGame/クラスライブラリ/IndexElementSize列挙体
- MonoGame/クラスライブラリ/Microsoft.Xna.Framework.Audio名前空間
- MonoGame/クラスライブラリ/Microsoft.Xna.Framework.Content名前空間
- MonoGame/クラスライブラリ/Microsoft.Xna.Framework.Graphics名前空間
- MonoGame/クラスライブラリ/Microsoft.Xna.Framework.Input.Touch名前空間
- MonoGame/クラスライブラリ/Microsoft.Xna.Framework.Input名前空間
- MonoGame/クラスライブラリ/Microsoft.Xna.Framework名前空間
- MonoGame/クラスライブラリ/Mouseクラス
- MonoGame/クラスライブラリ/RenderTarget2Dクラス
- MonoGame/クラスライブラリ/RenderTargetUsage列挙体
- MonoGame/クラスライブラリ/SurfaceFormat列挙体
- MonoGame/クラスライブラリ/VertexBufferクラス
- MonoGame/クラスライブラリ/VertexPositionColorTexture構造体
- MonoGame/クラスライブラリ/VertexPositionColor構造体
- MonoGameでBGMを再生する
- MonoGameでHLSLにMatrixを渡す
- MonoGameでSkiaSharpを使う
- MonoGameで「コンテンツ」を追加する
- MonoGameでハードウェアインスタンシングしてみる
- MonoGameでピクセルシェーダーを使ってテクスチャを貼る
- MonoGameでマウスを使用する
- MonoGameでマウスカーソルを表示する
- MonoGameでマウス位置を3D平面に投影する
- MonoGameで位置と色と法線とUV座標を持つカスタム頂点を使いたい
- MonoGameで使う3DモデルをFusion360で作成する
- MonoGameで外部のXNBファイルを読み込む
- MonoGameで画面空間からモデル空間に投影する
- MonoGameで直線を描画する
- MonoGameで解像度を取得する
- MonoGameで解像度を設定する
- MonoGameで遅延レンダリングをする
- MonoGameの3Dモデルを管理描画するクラスを作る
- MonoGameのカメラを作る