WGGの活動log

ゲームクリエイターやらエンジニアを目指してる大学生が,技術的なことを書いたり遊んだゲームの感想を書いたりするブログです

「Dune!」Ver2.0アップデートで追加されたボールの入手方法やコツとか

前回に引き続きDune!の記事です
wgg.hatenablog.jp

今回は11月9日に行われた大型(?)アップデートで追加された「スキン機能」のうち,解放条件が難しそうな項目をちょっと解説してみます

解説する項目

  • 0点獲得しよう
  • 51点獲得しよう
  • 触れてないよ!
  • 動かないの?
  • 逆走する?
  • 宇宙空間に到達しよう

このうち動画を撮影した項目は↓においておきます
また,手に入れたスキンで飛ぶとどんな演出がされるかは見せないので,是非自力で取得してその目で確かめてください!

youtu.be

0点獲得しよう

f:id:wgg00sh:20171114180245p:plain
名前の通りゲーム終了時の得点が0だと成功ですが,以外と難しいと思います.
コツは,白線を越えないようにタップして前方向の速度を高めるとやりやすいと思います.

51点獲得しよう

f:id:wgg00sh:20171114183142p:plain
これも同じようにゲーム終了時の得点が51点ちょうどだと成功です.
0点ミッションと違い,「普通に50点取って51点目で墜落して終了する」といったプレイができるので,0点よりも楽だと思います.

触れてないよ!

f:id:wgg00sh:20171114183357p:plain
これに関してはミッション名が説明不足だと思います.
この動画では,攻略条件は「画面に触れずに"SMOOTH"を発動する」と書かれていますが,もう少し緩いみたいで「"SMOOTH LANDING" 発動中に,ジャンプしてから一度も画面にタップせずに "SMOOTH"を決める」で大丈夫なようです.
はっきり言って運ゲーなので,とりあえずSMOOTH LANDINGからのジャンプで何もタップせずに,着地点がいい感じになるまで何度も挑戦するのが最善策だと思います

動かないの?

f:id:wgg00sh:20171114184427p:plain
ゲーム始めてから何も操作せず1分待つと手に入るらしいです(覚えてない

逆走する?

f:id:wgg00sh:20171114184532p:plain
↑でも紹介した動画では,ゲームオーバーになってそのまま左に行けば取れるように書かれていますが,どうも少し違っているようで,コメントにもそれでは出来ないとの発言が見つかりました.

自分で試行した結果,クリア条件は「山を右から左に越える」のようです.
初めの動画でも行っているように,隣接する2つの山で,右側の方が高い場所を選んで,山頂ギリギリまで移動すれば,上手く行くと左の山を超えられます.
f:id:wgg00sh:20171114184859p:plain

宇宙空間に到達しよう

f:id:wgg00sh:20171114185038p:plain
非常に難しいです.「とにかく高く飛ぶ」ことで達成できます.

連続してSMOOTHを決めて速度を上げるのはもちろんのこと,高さを求める場合は,ジャンプする山の種類も重要になってきます.
↓の画像のように,上りの傾斜角が急な山でジャンプすると上方向の力が大きくなるので高度を上げられます
f:id:wgg00sh:20171114185435p:plain
また,落下中にタップすると加速するので,落下地点を早い段階で見極めてそこに合わせて急降下するのも重要になります.

↓の画像ほど高く飛ぶ必要はありませんが,このように画面枠が見えてしまう高さまで飛ぶことも可能です.
f:id:wgg00sh:20171114185616p:plain

終わりに

なかなかテクニックだけでは解決できないミッションもあると思いますが,もしこれをみてクリアできましたら幸いです.

月までボールを飛ばす「Dune!」遊んだ感想とかコツとか

今回は,偶然広告で見かけて面白そうだったのでプレイしてみたらハマったアプリの話です
ちょっと攻略要素も入ってるのでネタバレ注意

Dune!

Dune!

Dune!

  • Voodoo
  • ゲーム
  • 無料

Voodoo というアプリ会社(多分?)が作られたゲームですが,Dune!だけでなく,他のアプリも最近頻繁に広告で見かけました.
↓ちょっと遊んでみたプレイ動画です(この動画を撮影した後に2.0アップデートでだいぶ内容が変わってしまいましたが,気にせず)
youtu.be

Voodooのアプリ

今回Dune!の感想を書くまでに,Voodooがリリースしたアプリを4つプレイしました

いずれも共通点があって

  1. 無音
  2. グラフィックがシンプル
  3. ゲームのコア部分がすぐに楽しめるように作り込まれている
  4. 広告が多い
無音 & グラフィックがシンプル

最近のアプリって結構派手な演出とかで豪華な感じのが多いと思ってるんですが,これは超シンプルになってます.
例えば,Snake VS Blockだとこんな感じで,単一色のボールと,数字が書かれたパネルぐらいしか無いです
f:id:wgg00sh:20171112191643p:plain

ゲームのコア部分がすぐに楽しめるように作り込まれている

ここが超重要なポイントで,無音かつグラフィックがシンプルでも,コア部分がしっかりしているおかげで楽しめるようになっています.
Dune!の作り込みについて後述するのでここでは割愛

広告が多い

Voodooのアプリは,「基本無料 + 課金で広告解除」 の形式が殆どです.
ゲームのプレイに関わる部分では課金要素は一切無いです(Dune!がアプデでスキンが購入できるようになりましたが)
そこら辺の事情があって,日本版は結構★1レビューが多かったです(汗

Dune! について

ここからが本題です
Dune! のルールを簡単に言うと,「坂道でボールを転がして,より高く飛ばす」です.

画面をタップしている間は,ボールが進行方向に力が加わり加速します.空中では下方向に力が加わり落下が速いなります.そこで上り坂の頂上で手を離すことで,その勢いのままジャンプすることが出来ます.地面に勢いよく衝突するとゲームオーバーになるので,地面の傾斜角に合わせて接地する必要があります.

加点要素

Dune!には5つの加点要素があり,それらをクリアして高得点を目指します

  1. 白線の上まで飛ぶ(1点)
  2. 月の上まで飛ぶ「TO THE MOON...」(1点)
  3. 土星(っぽい星)の上まで飛ぶ「...AND BEYOND!」(2点)
  4. 滑らかに着地する「SMOOTH LANDING」(そのジャンプの点数2倍)
  5. 2連続以上smoothlandingを決める「SMOOTH!」(そのジャンプの点数4倍)

SMOOTH!状態で,土星の上まで飛ぶと,(1+1+2)x4= 16点 が1回のジャンプで手に入れることが出来ます.
(補足1:Ver2.0で...AND BEYOND! のボーダーラインが下がって点を取りやすくなったみたいです)
(補足2:Ver2.0でスキンの解放条件に「宇宙空間に到達しよう」というのが追加され,土星よりも遥かに高く飛ぶことでボールの種類が増やせるようになりました,土星が画面の上から3分の2あたりの位置になるまでボールを高く飛ばす必要があるみたいです)

このゲームにハマったワケ

ここからは個人の感想です.
ルールも見た目も非常にシンプルなこのゲームですが,僕がハマってしまったのは,「面白く感じさせる工夫」がしっかりと用意されていたからだと思っています.ゲームを始める理由は色々あると思いますが(ex:好きな声優やキャラクターが出てる,友達に勧められた,etc...),ゲームにハマる理由は,基本的にゲームの中にあるはずです.

多くのゲームにとって,楽しいと感じるタイミングは,「困難な課題を乗り越えた先にある報酬を得た喜び」です.
そして,その課題と報酬はゲームを進めると変化し,課題はより高難易度に,報酬はより豪華になっていきます.
このゲームの場合,初めの課題と報酬は「白線の上まで飛ぶこと」と「手に入る1点」です.そこから最終的には「SMOOTH!から AND BEYOND!を決め続けること」と「手に入る16点と,そのために用意された派手な演出」になっていきます.はじめに上げた動画を見るとわかりますが,このゲームではSMOOTH!を決めた時だけボールからパーティクルが放たれ,とても綺麗に描写されます.これが「報酬」としての役割を果たしているため,SMOOTH!を決めるために練習したくなります.

また,得点を報酬と見立てた場合にも,別の「楽しませる」要素が絡んできます.
このゲームはいわゆる「ランゲーム」スタイルなので,自分が失敗しない限りいつまでもプレイできます.その為,高く飛ばず1点ずつ稼いでいくといった安全策が可能に見えるかもしれません.しかし,動画をよく見ると気づくかもしれませんが,白線の位置が時間が立つごとに少しずつ高くなっています.なので高得点を目指す場合も,基本的には「高く飛ぶ」ことが要求されます.そして,高く飛ぶと落下速度が大きくなるため,ゲームオーバーの危険が高まります.
このように,高得点を目指す場合は,「得点を稼ぐ際のリスク」が大きくなることを考える必要があります.

最後に,このゲームが最も優れていた点は「理不尽な敗北が無いこと」だと思います.例えば,Snake VS Block では,「自分が選んだ分かれ道の先が即死ゾーンで一発ゲームオーバーになった」といったことが起きました.これはおそらく自分のPS不足ではないはずです(分かれ道を選んだ時点ではその先は見えていなかったので).このように自分の努力に関係しない点で不利益を被ると,努力する意味が無いと感じさせられやる気が下がります.
ところがDune!では,僕がしばらくプレイした限りそのようなことは起こりませんでした.
高く飛べば飛ぶほどゲームオーバーになりやすくなりますが,それは自分のプレイに寄与するもので,さらに全ての地面がタイミングを掴めば安全に接地できるため自分のプレイヤースキルで全てが決まります.このようなゲームは,練習すればするほど上達すると,明らかに分かるので,「より上手くなる為に」遊び続けることが出来ました.

終わりに

僕はこのゲームを長期的に遊び続けることは無いと思います(内容が薄いので).しかし,短期間でもマってしまう印象的なゲームだったので今回記事に書いてみました.
もし時間があればVer2.0で追加された達成項目の攻略法の話とかも後日書いてみようと思います.

Visual Studio Code で DxLibの開発をする

最近Unityで複数のゲームを開発してVSCodeがちょっと好きになりました.

今までよく使っていたVisual Studio + DxLib の開発環境ですが,Visual Studio が非常に重いので,VSCode で完結できないか試してみました.

できたもの

こんな感じに,VSCodeからコンパイルして,動作確認するまでできました
デバッグに関してはまだ試していないですが...

手順

大体↓の順序です

  1. VSCodeのインストール
    1. C++用の拡張機能を追加する
  2. Visual Studio のインストール
  3. batファイル, makeファイルの記述
    1. (必要なら)文字コード問題の解消
  4. プログラムを書く
  5. VSCodeからコンパイルする

1:VSCodeのインストール

↓ からダウンロードできます.
code.visualstudio.com

C++用の拡張機能を追加する

ここVSCodeの仕様がいまいちわかっていなくて合ってるのかわからないのですが, "C/C++" ってのと,"C++ Intellisense"ってのを入れました.
f:id:wgg00sh:20170920225000p:plain

Visual Studio のインストール

やり方は複数あると思いますが,今回は既に入ってたVS2015 を利用します
この辺を参考にして,とりあえずVSでDxLibの開発ができるようにします.

batファイル, makeファイルの記述

VSCodeからコンパイルするためのbatファイルおよび,makefileを作成します.

dxlibmake.bat
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat"
nmake -f dxlib.mak


VsDevCmd.batはVisualStudioに付属している開発者用のコマンドプロンプトです
自分の場合パスは上記の通りでしたが,バージョンやインストールの方法によって変わるかもしれません.

dxlib.mak

こちらを参考にしました

TARGETDIR=src
TARGETNAME=*

C_FLAGS=/c /TP /EHsc /D "_MBCS" /MT  /I "C:\DxLib" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /W3 /source-charset:utf-8

LINK_FLAGS=/SUBSYSTEM:WINDOWS /LIBPATH:"C:\DxLib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib"

ALL:
  cl $(C_FLAGS) $(TARGETDIR)/$(TARGETNAME).cpp
  link /out:dxlib.exe $(LINK_FLAGS) $(TARGETNAME).obj
  dxlib.exe

実行ディレクトリ内の,srcディレクトリ直下に置いた.cppファイル全てをコンパイル対象とします.
ファイルの構成次第で自由に変えるべきかと思います.

"C:\DxLib" には,ここでいう「プロジェクトに追加すべきファイル_VC用」パスを渡しています.日本語パスが心配だったのでDxLibとリネームしました.

(必要なら)文字コード問題の解消

DxLibでプログラムを書く場合,DxLib.hを含めて基本的に全てShift-JISで書かれるのですが,UTF-8の方が良い場合には,4行目の /source-charset:utf-8 を記述する必要があります.
これをつけずにUTF-8ソースコードを書くと,コメントなどに日本語が含まれている場合に正常にコンパイルできない可能性があります.
また,UTF-8で指定する場合は,DxLibのヘッダファイル5つを全てUTF-8に直しておかないと,同様に大量の警告が表示されます.

プログラムを書く

とりあえずDxLibのHPに載っているサンプルコードを,見やすいように少しだけ書き換えたものを使います.

#include "./DxLib.h"

int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
	ChangeWindowMode(TRUE);

	if( DxLib_Init() == -1 )
	{
		return -1 ;	
	}
	
	// DrawPixel( 320 , 240 , GetColor( 255,255,255 ) ) ;	// 見辛い
	DrawCircle(320,240,0xffffff,TRUE);

	WaitKey() ;	

	DxLib_End() ;

	return 0 ;
}

VSCodeからコンパイルする

VSCodeから,プロジェクトとするフォルダを開きます.
Ctrl+Shift+Bでタスクを実行できるのですが,プロジェクト内の.vscodeディレクトリにタスクが登録されていないので,「タスクランナーの構成」→「Others」の順にクリックします
task.jsonが作成されるので,commandの内容を,先ほど作成したdxlibmake.batに変更します

{
  // See https://go.microsoft.com/fwlink/?LinkId=733558
  // for the documentation about the tasks.json format
  "version": "0.1.0",
  "command": "dxlibmakebat",
  "isShellCommand": true,
  "args": ["Hello World"],
  "showOutput": "always"
}

これでプロジェクトフォルダ内のdxlibmake.batが実行され,makefileが処理されます.
f:id:wgg00sh:20170920234617p:plain

あとは設定が正しければ正常にコンパイルされ,DxLibのウィンドウが開きます

完成

というわけで,VSCodeからDxLibのコンパイルをしてみました.
もしDxLibを使っていて,Visual Studioが重いと感じてらっしゃる方がいましたら,是非参考にしてみてください

弾雨ヲ切リ裂ク STG「アカとブルー」が楽しい

ゲーム系の話題は久しぶりかな?
最近サークルだったり研究室だったり,ゲーム会社のエンジニアインターンに複数社参加したりである意味充実した夏休みを過ごしています.


今回は,「アカとブルー」というゲームを遊んでみたのでその感想です

アカブルー

最近Twitterを見ていると,フォローしているゲームエンジニアの方がこのゲームについて頻繁に呟いていらっしゃったので,気になっていました
STGは(主に東方Projectのおかげで)とても好きなタイプのゲームなので,PVを見て「これは間違いなく面白い」と思ったので即遊んでみました

PV

公式のPVです
youtu.be
twitter.com

ゲーム概要

割と昔からある感じの弾幕STGです
暑苦しいおっさんのアカと,クールな女の子のブルーのW主人公からどちらかを選んでプレイします
僕は当然可愛い女の子のブルーを広射弾を撃てるおっさんの方が使いやすかったのでアカばかり使ってました
大量の弾を避けて敵を倒していきます

プレイ画面

遊びながらスクショ取るの難しいのですが,何枚か撮ってみました
f:id:wgg00sh:20170824224926p:plain
f:id:wgg00sh:20170824224951p:plain

見ただけで伝わりそうなのですが,難しいです
ドットスナイパーで世界ランキング1位を獲った僕の動体視力()をもってしても避け切るのは困難でした

弾雨ヲ切ク裂ク

何回かプレイして,「あ~これ気合じゃ勝てないやつだな...」ってのを理解したので,クリアするために何をすればいいか考えてみました.
すると気づいたのが,ボムを撃つとボムが溜まる事でした.書いててよくわからなくなりますが,その通りです.敵を倒したりすると,エネルギーが溜まってボムが撃てるようになります.ボムを発動すると,周辺や前方の弾を消すことができ,消した弾の分で再びエネルギーが溜まります.なのでまたボムが撃てます.そして,Lv2以上のボムを使用すると,前方に飛ばし,軌道上の弾を纏めて消すことができ,まさにこのゲームのキャッチコピーの弾雨ヲ切リ裂クようになります.

↓公式PV内でボムを使っているシーン(静止画じゃ伝わりにくいかも,1:46付近)
f:id:wgg00sh:20170824233008p:plain

多分これは狙って組まれたゲームバランスだと思います.肉眼で避けるのが難しい量の弾幕が降り注ぐ中,ボムで弾幕を切り裂いて活路を開く.
「ボムゲー」とか言われてしまうかもしれないですが,ボムのエフェクトや,キャラクターのボイスと相まってとても爽快でプレイしてて楽しかったです.

ちょこっと攻略アドバイス的な

多分エンディングを見るのは結構難しい部類のゲームだと思うので,自分がプレイしててこんな感じにすればクリアしやすいと思った点を

  • ボムのLvが上がる前に撃つ
  • 弾雨を「切り裂く」ことを意識する
  • 諦めない
ボムのLvが上がる前に撃つ

ボムは,チャージ量によってLvが1-5まで存在しますが,最もおすすめするのはLv2です.
というのも,このゲームのボムは撃っても自機が無敵になるとかは無く,あくまで敵の弾を消す効果だけなんですよね.Lvが高いボムは,消せる弾の量は多いですが,その分次にボムが撃てるまでのクールタイムも長くなります.そのため,Lv5のボムを撃って弾を消したのに,すぐにやってきた次の弾幕を消す手段が無く被弾する,といったことが発生しやすかったです.

そこでボムのLvが上がりきらないうちにこまめに撃つことで,クールタイム中の被弾を減らすことができました.

弾雨を「切り裂く」ことを意識する

上述の通り,あくまでボムは弾を消すのがメインの効果なので,より多く前方の弾を消す(切リ裂ク)ことを重視すると生存率が上がりそうです.
横から攻撃してくるボスもいるので,そこは結構苦戦しました...

諦めない

どんなゲームでも一緒ですが,当然ですね.
ただこのゲームに関しては,当たり判定が見た目以上に小さいので,残機0ボム0の大ピンチになっても,諦めずに気合避けし続ければ立て直せることも結構多いです.

おわりに

スマホゲームの中でも,かなり良くできてる作品だと思いますので,この記事や,PVを見て面白そうと思ってくだされば,是非遊んでみてください!(\960)

(...こんなゲーム作れるように頑張ろっと)

ウィンドウを透過するショートカットキーを作成した

普段作業をしていると,「文章を書きながら動画も見たい」なんて思うことがありました.
かといってウィンドウを分割するとそれぞれの面積が小さくなり文章は書きづらくなります.

そこで,ウィンドウを半透明にできれば1つの領域に2つのウィンドウを置くことができます.

今回作ったもの

www.youtube.com

使ったアプリケーション

www.gigafree.net

TranspWnds

TranspWndsはウィンドウ拡張ツールです.
キー+マウスで以下のような機能を利用することができます.

  • タイトルバー以外をドラッグしてもウィンドウを移動できる
  • ウィンドウの端以外をドラッグしても拡大縮小できる
  • タイトルバーを非表示にする
  • ウィンドウを最前面に固定する
  • ウィンドウの透過率を指定する

今回は,透過率指定の機能を利用します.

TranspWnds単体使用の問題点

TransWndsだけを用いると,ウィンドウの透過はALT/CTRL/SHIFT/Win キー + マウスホイールの回転でしか実行できません
僕のようにマウスを使わないユーザーにとっては非常に使いづらいので,これをキーボードだけで実行できるようにするのが,AutoHotKeyです

AutoHotKey

AutoHotkeyはホットキーへの機能の割り当てなど常駐ソフトの作成に特化したスクリプトエンジン。多彩なコマンドが用意されており、GUIを持ったプログラムの作成も可能。
任意のキーの割り当て変更、マクロ、ウインドウ操作 ...
オープンソースの簡易プログラム言語、Windowsフリーソフト
(AutoHotkey Wiki)

つまりは,スクリプトを書いて実行するだけで,入力内容を変更する常駐ソフトを作成することができます!

スクリプト作成例

今回は,AutoHotKeyとTranspWndsを組み合わせて,「Win+Tでウィンドウを半透明に,Win+Shift+Tで半透明にしたウィンドウを元に戻す」ように実装してみます.
まず,TranspWndsのオプションで「Transparent」の項目をALTだけチェックを入れておきます
次に,適当なファイルを作成し,拡張子を.ahkにして以下を記述します.

;;; Win + T → Windowを半透明に
#t::
  Send,{Alt Down}
  Send,{WheelDown 30}
  Send,{Alt Up}
  return

;;; Win + Shift + T → Windowの半透明化を元に戻す
#+t::
  Send,{Alt Down}
  Send,{WheelUp 30}
  Send,{Alt Up}
  return 


これに対してRun Script を実行することで,Win+Tキーでアクティブウィンドウを半透明にすることができます.
透明度はTranspWndsで上限を設定しておいてください

ahkスクリプトの説明

#+t::

#:Windowsキー

  1. :Shiftキー

t:tキー
の3つを同時に押したときに処理を実行します

Send,{Alt Down}
Send,{WheelUp 30}
Send,{Alt Up}

Send,{Alt Down}で Altキーを押した状態に変更,
Send,{WheelUp 30}で マウスホイールを上に30ミリ秒間回転
Send,{Alt Up}でAltキーを離します

まとめ

こんな感じで,AutoHotKeyを使うと,Windows標準ではできないショートカットの作成など,色んな機能を追加できます.
スクリプトの規則もそこまで複雑ではないのでぜひ試してみてくださいね♪

Bash on Ubuntu on Windows でデスクトップ環境(Xfce)を動かしてみた

あまり実用的ではなかったですが,Bash on Ubuntu on Windows(BoW)にデスクトップ環境を導入することができるらしく,実際に試してみました.

この記事は,一応既にBoW を利用している人向けに書いています
BoWの導入方法などは,ここ(宣伝)ここを読むと良いと思います

wgg.hatenablog.jp
qiita.com

今回作ったもの

youtu.be


導入の流れ

  1. WindowsX Window Server をインストール & 色々設定
  2. BoWにデスクトップ環境(今回はXfce4)をインストー
  3. Xfce4を動かしてみる

1.WindowsX Window Server をインストール & 色々設定

前のBoWの記事と同様に,Xmingをインストールします
VcXsrvとかでも多分大丈夫です

Xmingの設定

  1. 起動オプションの設定
  2. XmingのWindowをアクティブにすると勝手に英字入力になる問題
1.起動オプションの設定

今回は以下のように設定しています
起動オプションの詳細はここを見てください

"C:\hogehoge\Xming.exe" :1 -clipboard -xkbmodel jp106 -xkblayout jp -dpi 100 -nodecoration

大雑把に言うと,日本語キーボードで,クリップボードWindowsと共有して,dpiが100で,フルスクリーンで,スクリーン番号が1です.
スクリーン番号はXmingを複数起動する場合,他とかぶっていなければ多分何でも大丈夫です.

-nodecoration

ですが,-multiwindowではデスクトップが表示されなかったりしたので,おそらくこれか, -fullscreenあたりが良いと思います.

2.XmingのWindowをアクティブにすると勝手に英字入力になる問題

Windowsのキーボード設定で,英字(US)キーボードをONにしていると,Xmingで表示したWindowをクリックした瞬間にUS配列に変わってしまうことがあります.
どうもXmingが特定のタイミングでUSキーボードに強制変更するようにプログラムされているみたいなので,調べたところ,実行ファイルのバイナリを書き換えることで対処できました

StirlingXming.exeを編集

Stirlingじゃなく,バイナリエディタなら多分なんでも大丈夫ですが

以下のように編集します
f:id:wgg00sh:20170602113024p:plain
編集前


f:id:wgg00sh:20170602113038p:plain
編集後

これで,今まで勝手にUSキーボードに変わっていたタイミングで,勝手にJPキーボードに変わるようになります

2.BoWにデスクトップ環境(今回はXfce4)をインストー

  1. Xfce4のインストー
  2. 起動用のbatファイルの作成
1.Xfce4のインストー

まずはXfce4をインストールします

$ sudo apt-get install xfce4-session
2.起動用のbatファイルの作成

従来のbash.exeと使い分けられるように,起動するとXfce4が開くbatをWindowsで書きます

@echo off
start /min "" "Xming.lnk"
"C:\hogehoge\bash.exe" -c 'export DISPLAY=localhost:1.0;export XMODIFIERS="@im=uim";export GTK_IM_MODULE=uim;export QT_IM_MODULE=uim; xfce4-session'
taskkill /f /im Xming.exe
export DISPLAY=localhost:1.0;

出力先のディスプレイ番号の設定です
Xmingの起動オプションで設定した :1 の部分(今回は1)と同じ数値を入れます

XMODIFIERS="@im=uim";
export GTK_IM_MODULE=uim;
export QT_IM_MODULE=uim;

開いたデスクトップ環境で日本語入力を行うための設定です
詳しくはこちらを見てください

taskkill /f /im Xming.exe

xfceが終了した直後に実行され,Xmingを終了します

Xfce4を動かしてみる

最後に,実際にインストールしたxfce4を起動してみましょう

先に作成したbatファイルを開くとbashからxfce4が起動し,Windowsから切り替わります.
ログアウトすると,bash,Xmingともに自動的に終了します
Windowsの仮想デスクトップ機能を用いれば,Windowsのデスクトップと,BoWのデスクトップを併用することもできます.

f:id:wgg00sh:20170602150200p:plain
Bash on Windows から起動したデスクトップ環境です

まとめ

正直今まで通り -multiwindow で必要な場合だけGUI表示するだけでいいような気がします...
普段と違う雰囲気で利用できますが,便利かといわれると微妙...
あと時々挙動が不安定になるかもしれません

Ubuntuでよく見かける Unityも導入できるらしいですが,容量が大きくて試すのが面倒だったのでやってません.

ProcessingをMeryで開発するための拡張機能作った

今回は去年書いたこの記事の続きです.
wgg.hatenablog.jp

今回作った拡張機能は本文下の方で配布リンクを書いています

f:id:wgg00sh:20170525232647p:plain

以前作ったProcessingをMeryでコーディングするための拡張が,不十分だったので改善して作り直してみました.

前回の問題点

前回の記事では3つ問題点が残っていました.

  1. オートインデント
  2. 同名のシステム変数と組み込み関数
  3. 辞書リストの情報量不足

1.オートインデント

未解決です,まだやっていません.

2.同名のシステム変数と組み込み関数

ProcessingにはmousePressedなど,同じスペルで,変数/関数 どちらでも機能する語句がいくつかあります.
それらはProcessing上では正しく区別して表示してくれるのですが,Meryで同じ表示をすることはできませんでした...
自分の知識不足なだけかもしれませんが,現状では関数は括弧()を含めて色を付けるようにしました.
f:id:wgg00sh:20170525233145p:plain f:id:wgg00sh:20170525233310p:plain
左:ProcessingのIDE
右:今回作成した構文ファイルを適用したMery

3.辞書リストの情報量不足

色々探していたら,Processingで使われる(恐らく)全ての単語を網羅したリストが,Processingの実行ファイルと一緒に入っていました.
f:id:wgg00sh:20170525233735p:plain
↑:作成した構文ファイル&語句リスト

使用例

こんな感じに,前回消しきれなかった不満点の多くを取り除いて作りなおすことができました.

配布

とりあえずGitHubに上げています
もしProcessingもMeryも使っていて,ProcessingをMeryで書きたいと思っている方がいらっしゃれば,是非これを使ってみてください!
そして不具合報告,改善方法などお待ちしています()

github.com