4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MayaAdvent Calendar 2018

Day 3

OneDriveがXgenを困らせていた話

Last updated at Posted at 2018-12-02

:santa: Mayaアドカレ :santa: 3日目が空いておりましたので書いてみます。

先日、xgenが起動しないという症状に出会いました。
とある方面からの相談だったのですが、いわく、いろいろ試してみたけどわからないとのこと。
なにしろ同じ症状がこちらには起きない(普通にxgen使える)ので、どう探ったものか困りました。

ある意味タイトルが全てなのですが、報告させていただく次第です。

事前情報

xgen:four_leaf_clover::seedling::herb:

XGen は、ポリゴン メッシュのサーフェスに任意の数のプリミティブを
ランダムまたは均一に設定するためのジオメトリ インスタンサです。

Disneyが開発し、5年前くらいからMayaに同梱されています

OneDrive

先日時価総額でAppleを抜いたMicrosoft様のクラウドストレージサービスです

主訴

xgenが起動しません

ここまでの試行

以下は試したとのこと

  • プリファレンス削除
  • Mayaアンインストール、再インストール
  • 過去版を試す

確認

melコマンドxgen実行時に止まっているようでした。
さらに確認してみると、python関数_getXgProjectだかそういう名前のがこけている模様

パスに日本語は含まれてない

プロジェクトのパスを取得する関数でこけているので、
パスの中に文字列が含まれているのだろう、と思いました。

しかし確認してみると、プロジェクトフォルダの名前など含め、
日本語フォルダは含まれていないようでした。
あれ、思ったのと違う……

置き場所トリック

プロジェクトは ドキュメント以下 に置かれていましたが、
Explorer上で「ドキュメント」に見えてもローカライズ表示されているだけで
パスとしては実際は「Documents」な はずなので 問題にしませんでした。

なんと相談者より
「このドキュメントはOneDrive以下です」
と伺っていたにも関わらずです。
同じ挙動をすると思っていました :angel_tone2:

これによって、一旦保留して持ち帰るなどちょっと時間がかかってしまいました。

解決

原因

もうネタを明かしてしまったも同然ですが、
OneDrive以下のドキュメントフォルダは
ユーザフォルダ以下のドキュメント(=Documents)フォルダのようにはなっていません。
具体的には、
(Explorer上では「ドキュメント」、パスをみたら「Documents」、かと思っていたのですが)
OneDrive以下のドキュメントは本当に「~¥ドキュメント¥~」だったのです。

O_dOwmEA.jpg
(▲)OneDriveの「ドキュメント」

THwbtQ37.jpg
(▲)普通にみてる時(上段)と、パスをみてみたとき(下段)

トリック2

…というか、
そもそも2バイト文字をパスに含んでいると set project できません。
なのになぜ「そもそもそこに set project できてしまっていたのか」
という点が、事態をややこしくしていました。

原因はおそらくこれです。

Windows 10 は既定で OneDrive にファイルを保存する

ファイルを作成すると、第 1 候補は [OneDrive] の下の 
[デスクトップ]、[ドキュメント]、または [画像] フォルダーになります

という設定があるのですが、これが入っていたのかなぁと。
(そのうち手元でも試したいところです(解決しちゃったことですしやらずに忘れそう))

対応1

別のフォルダにプロジェクトセットしてもらうことで解決しました。

「『ドキュメント』はパス的には Documents だから大丈夫」という思い込みが
対応を長引かせる結果となりました。
こうした思い込みには常々気をつけないとなと思いました…。

対応2

そもそもAutodesk様ともあろう開発力のある会社が
2バイト文字対応していないだなんて、いやいやそんなまさか

return str( projectpath.encode('cp932') )

u3cmhfQs.jpg

C:\Program Files\Autodesk\Maya{ver}\plug-ins\xgen\scripts\xgenm
にあるxgGlobal.pyの 183行目を直せばいけるのではと思います。


まとめ

というわけで、xgenそのものは関係ない内容ではありましたが……
autodeskさん対応お願いします、またはpy3化お願いします、
またはMicrosoftさん凝ったことしないで!

明日は、 執筆時点ではどなたも登録されてませんが、
ひとネタあるという方は是非どうぞー
:bow_tone1: :thumbsup:
@chiyama さんの「Mayaのノードで数学の演算を実現する」 が投稿されていました。


その後(?)

この辺とか関係あるのかもしれないーと思いました。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?