• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MayaからXファイルをエクスポートする方法・・・)

MayaからXファイルをエクスポートする方法

RakuGakiの回答

  • RakuGaki
  • ベストアンサー率51% (18/35)
回答No.2

初回質問時 >ソースイメージ内にエクスポートしたのですが、なぜか保存後、メッシュビューワーで見た時に、テクスチャはすべて剥がれ、真っ黒な状態になっています。 #1補足 >メッシュビューワーで見たところ、全部が真っ黒になってしまっています。   状況を悪化させてしまったようで、恐縮です。 #1のアドバイスは、テクスチャのパスがソースイメージ内へ渡されていないための現象と判断した為です。 使用しているソフトが異なりますので、これ以上のアドバイスは差し控えたいと思います。 悪しからず。ほかの有識者の方よろしくお願いします。 以下は独り言です。一般的に思いつくまま カメラが3次元形状の内部にある? ライトが点いていない? 環境光の設定が無く、カメラがライトの影に入っている? 重いレンダリングの実行中? alias.co.jpを拾い読みしてさらに独り言・・・ [Maya6FeaturesBenefitsFinal_jp.pdf20ページより抜粋] 変換ツールと画像フォーマット  DDS入力/出力  DXT1 Direct Draw Surface ファイルを完全なアルファ情報と共に出力できます。 [Maya6FeaturesBenefitsFinal_jp.pdf26ページより抜粋] MAYAのハードウェア最小動作環境  Hardware-accelerated OpenGL graphics card

deadcell
質問者

お礼

ありがとうございました^^; 参考にしてみますね!

関連するQ&A

  • mayaからXファイルをExportする方法について

    mayaからうまくXファイルをエクスポートする方法が分かりません。 Xファイル自体は出せるのですが、マテリアルにトランスペアレンシー がかかってなかったり、テクスチャの名前の記録の仕方が分からないです。 環境 Microsoft DirectX SDK (February 2006) Maya6.5 Complete Microsoft Visual Studio 8 mayaツールバーのWindow>Settings/Preferences>Plug-in Manager ので下のほうにあるSDKのチェックボックスをオンにし、 File>Export Selectionで出てくるオプション設定を どういう風に設定すればテクスチャ情報をもたせてエクスポート できるのでしょうか。 どなたかご教示お願いします。

  • AccessからExcelへエクスポート時に小数点以下の桁数がおかしく

    AccessからExcelへエクスポート時に小数点以下の桁数がおかしくなります。 59.20 118.40 118.40 77.70 49.20 ↓↓↓↓↓ 59.20000076 118.4000015 118.4000015 77.69999695 49.20000076 の様になってしまいます。 以下エクスポート処理です。 StrSQL = "SELECT MaxSize FROM SizeTabel" ←本当はかなり長いSQL Set QueryTemp = CurrentDb.CreateQueryDef("ExportSQL", StrSQL) DoCmd.SelectObject acQuery, "ExportSQL", True DoCmd.TransferSpreadsheet acExport, 8, "ExportSQL", Application.CurrentProject.Path & "\test.xls", False, "" CurrentDb.QueryDefs.Delete ("ExportSQL") Format関数で桁数を調整したりはしたのですが、精度が必要な為、原因を追究したいと考えています。 アドバイスよろしくお願いいたします。

  • TIFFを開いてBITMAPで保存する方法

    ■開発環境 VC++6.0,Windows2000 Pro,+ libtiff(TIFFを扱うライブラリ) で以下のようなコードを書きました. ************************************************* BOOL CTiff::OpenTiffAndSaveBMP(CString path) { HDIB hDIB; hDIB = LoadTIFFinDIB(path); BITMAPFILEHEADER BMPFILEHEADER; LPBITMAPINFOHEADER BMPINFOHEADER; if(!hDIB) return FALSE; CFile file; path.Replace("tif", "bmp"); if( !file.Open( path, CFile::modeWrite|CFile::modeCreate) ) return FALSE; BMPINFOHEADER = (LPBITMAPINFOHEADER)hDIB; int nColors = 1 << BMPINFOHEADER->biBitCount; // BITMAPFILEHEADERのフィールドを初期化 BMPFILEHEADER.bfType = ((WORD) ('M' << 8) | 'B'); // is always "BM" BMPFILEHEADER.bfSize = GlobalSize (hDIB) + sizeof( BMPFILEHEADER ); BMPFILEHEADER.bfReserved1 = 0; BMPFILEHEADER.bfReserved2 = 0; BMPFILEHEADER.bfOffBits = (DWORD)(sizeof( BMPFILEHEADER ) + BMPINFOHEADER-> biSize + nColors * sizeof(RGBQUAD)); // ファイルヘッダを書き込む file.Write( &BMPFILEHEADER, sizeof(BMPFILEHEADER) ); // DIBのヘッダとビット列を書き込む DWORD nSize = GlobalSize(hDIB); file.Write( BMPINFOHEADER, nSize ); file.Close(); return TRUE; } ************************************************ しかし,OpenTiffAndSaveBMP()の下から3行目の >file.Write( BMPINFOHEADER, nSize ); でDebug Assertion Failed!なるエラーで止まってしまいます. そこで「無視」ボタンを押すと「ファイルにアクセス中に不明なエラーが発生しまし た」となります. 文字数の制限上LoadTIFFinDIB()のソースは無いのですが, 原因ならびに解決策の分かる方ご教授ください.

  • PDFの印刷で。。。

    C#よりAcrobatReaderにPDFをエクスポートして印刷を行う処理 を作成中です。 そこで質問ですが,エクスポートされたPDFを印刷する際に、 PDFを開かずに印刷することは可能でしょうか? 現在、ネットよりいろいろ調べて組み込んだロジックでは印刷をする ことはできましたが、どうしてもPDFが開かれてしまいます。 ソースを以下に載せましたのでご教授願います。 System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(); //パスを取得する psi.FileName = @"C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe"; //出力を読み取れるようにする psi.RedirectStandardInput = false; psi.RedirectStandardOutput = true; psi.UseShellExecute = false; //ウィンドウを表示しないようにする psi.CreateNoWindow = true; //コマンドラインを指定 psi.Arguments = @"/t " + Application.StartupPath + "\\PDFExpt.PDF"; System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi); //出力を読み取る string results = p.StandardOutput.ReadToEnd(); p.WaitForExit(); p.Close(); p.Dispose(); 申し訳ありませんがよろしくお願い致します。

  • テクスチャがうまく表示されない[DirectX]

    こんにちわ。初歩的な質問かもしれませんが、よろしくお願いします。 テクスチャは読み込まれてはいるのですが、(色だけは表示される。違う画像にすると色が変わる)どうも模様が表示されず、画像どおりになりません。 とりあえず関係ありそうなコードだけ。。 -----頂点定義-------- struct CUSTOMVERTEX {FLOAT X,Y,Z; D3DVECTOR NORMAL; FLOAT U,V;}; #define CUSTOMFVF (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1) ----頂点------ struct CUSTOMVERTEX t_vert[]={ {0.0f, 0.0f,0.0f,0,1,0, 0.0f, 0.0f,}, {-30.0f,0.0f,0.0f,0,1,0, 1.0f, 0.0f,}, {0.0f, 0.0f,30.0f,0,1,0, 0.0f, 1.0f,}, {-30.0f,0.0f,30.0f,0,1,0, 1.0f, 1.0f,}, }; -------描画処理------ d3ddev->SetStreamSource(0, t_buffer, 0, sizeof(CUSTOMVERTEX)); d3ddev->SetTexture( 0 , texture ); d3ddev->DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2); ------------------------------------------------------------- テクスチャのサイズは512x512px、ライトはD3DRS_LIGHTNINGでTRUEにしてもFALSEにしても変化なし。 環境は以下のとおりです。 OS: WindowsXP コンパイラ:VisualStudio2005 DirectX9.0

  • JOURNALRECORD 猫パンチでノックアウト

    有名な 猫でもわかるプログロミング Windows SDK編 第2部 第165章 ジャーナルレコードとプレイバックその2 http://homepage2.nifty.com/c_lang/sdk2/sdk_165.htm で勉強させて頂いております 親プログラムのメニューを押下するとDLLのStartRecord()に来ます(1) その中でSetWindowsHookEx()を呼びますが、戻り値のhHookがNULLになってしまいます(2) そこでエラー情報を表示(//*の部分)させると『アクセスが拒否されました』となります SetWindowsHookEx()のアクセス拒否の原因をネットで調べてみましたが何処にも記載が見つかりません もう3日も嵌まり込んでいます、教えてください、お願いします なおコードは親プログラム・DLLともにマルチバイトを指定しております #include <windows.h> #include "hook04x.h" #define MAX_RECORD 2000 HINSTANCE hInst; HHOOK hHook; HWND hWnd; BOOL bHook = FALSE; //フック中 BOOL bRecord = FALSE; //記録済かどうか int n; EVENTMSG MyEvent[MAX_RECORD]; DWORD dwStart; DWORD dwAdjust; int WINAPI DllMain(HINSTANCE hInstance, DWORD fdReason, PVOID pvReserved) { hInst = hInstance; return TRUE; } //単にこのdllのインスタンスハンドルをグローバル変数にコピーしているだけです。 EXPORT BOOL StartRecord()   .........(1) { memset(MyEvent, 0, sizeof(EVENTMSG));//構造体を0で初期化 //*LPVOID lpMsgBuf; //*SetLastError(NO_ERROR); //エラー情報をクリアする hHook = SetWindowsHookEx(WH_JOURNALRECORD, (HOOKPROC)MyHookProc, hInst, 0); ....(2) //*FormatMessage( //エラー表示文字列作成 //*FORMAT_MESSAGE_ALLOCATE_BUFFER | //*FORMAT_MESSAGE_FROM_SYSTEM | //*FORMAT_MESSAGE_IGNORE_INSERTS, //*NULL, GetLastError(), //*MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), //*(LPTSTR) &lpMsgBuf, 0, NULL); //*MessageBox(NULL, (const char*)lpMsgBuf, NULL, MB_OK); //メッセージ表示//* LocalFree(lpMsgBuf); if (hHook == NULL) { MessageBox(hWnd, "JOURNALRECORDフックに失敗しました", "Error", MB_OK); return FALSE; } dwStart = GetTickCount(); n = 0; bHook = TRUE; bRecord = TRUE; return TRUE; } EXPORT BOOL StartPlay() { 【途中省略】 EXPORT LRESULT CALLBACK MyHookProc(int nCode, WPARAM wp, LPARAM lp) { EVENTMSG *lpEM; if (nCode == HC_ACTION) { lpEM = (EVENTMSG *)lp; if (lpEM->message == WM_KEYDOWN && LOBYTE(lpEM->paramL) == VK_CANCEL) { PostMessage(hWnd, WM_RECORD_END, 0, 0); PostMessage(hWnd, WM_END_HOOK, 0, 0); return TRUE; } MyEvent[n].hwnd = lpEM->hwnd; MyEvent[n].message = lpEM->message; MyEvent[n].paramH = lpEM->paramH; MyEvent[n].paramL = lpEM->paramL; MyEvent[n].time = lpEM->time; n++; if (n >= MAX_RECORD-1) { PostMessage(hWnd, WM_RECORD_MAX, 0, 0); PostMessage(hWnd, WM_END_HOOK, 0, 0); return TRUE; } return TRUE; } return CallNextHookEx(hHook, nCode, wp, lp); }

  • インストールしたgemがrequireできない

    色々模索したのですが、解決策がみつかりませんでしたので、質問させていただきます。 何卒、宜しくお願いします。 現在CentOSにて、rubyをいじっており、gemでselenium-webdriverをインストールしたのですが、 別のファイル(sample.rb)からrequireしても `require': cannot load such file -- selenium-webdriver (LoadError)となってしまいます。 試しに別のファイルをrequireしてみたらできたので、gemの問題だと思っています。 以下のようにsample.rbに書きました。 require 'rubygems' require 'selenium-webdriver' ・ ・ ・ また、gem listにもはいっているため何が原因なのかよくわかりません。 ご参考までにgemの環境を以下に書きます。 RubyGems Environment: - RUBYGEMS VERSION: 1.4.2 - RUBY VERSION: 1.9.3 (2012-02-16 patchlevel 125) [i686-linux] - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.9.1 - RUBY EXECUTABLE: /usr/local/bin/ruby - EXECUTABLE DIRECTORY: /usr/local/bin - RUBYGEMS PLATFORMS: - ruby - x86-linux - GEM PATHS: - /usr/local/lib/ruby/gems/1.9.1 - /root/.gem/ruby/1.9.1 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - http://rubygems.org/ 1点気になりますのが、gemのパスです。 下記URLを参考にしました。 http://d.hatena.ne.jp/amacou/20090206/1233929888 $which gem /usr/local/bin/gem $sudo which gem /usr/bin/gem となっているため、パスを変えようと思いましたが、 サイトの通りではパスが変わりませんでした。 よくわからないということもありまして、/usr/bin/gemを削除してみましたがもちろんrequireできません。 ここからどのようにしたらよいかどうかご教授いただけますと幸いです。 以上、宜しくお願い申し上げます。

    • ベストアンサー
    • Ruby
  • Excel VBAで参照先の変換

    ExcelのVBAでBook1.xlsxのSheet2とSheet2を参照しているSheet3をBook2.xlsxにコピーするプログラムを作成しているのですが、Sheet3のコピーが思うように行きません。 具体的にはSheet3が参照しているSheet2をBook1.xlsxからBook2.xlsxに変換する所です。 下記のようなプログラムを作成しました。 strDirectory = ThisWorkbook.Path strSrcBook = "Book1.xlsx" Workbooks.Open Filename:=strDirectory & "\" & strSrcBook, ReadOnly:=True Set wsSrc = Workbooks(strSrcBook).Worksheets("Sheet2") Set wsDst = ThisWorkbook.Worksheets("Sheet1") wsSrc.Copy After:=wsDst Set wsSrc = Workbooks(strSrcBook).Worksheets("Sheet3") Set wsDst = ThisWorkbook.Worksheets("Sheet2") wsSrc.Copy After:=wsDst wsDst.Range("D:D").Replace "[*]", "" Workbooks(strSrcBook).Close SaveChanges:=False Sheet3のD列がSheet2を参照しているのですが、上記を実行すると開くファイルの選択を要求され、キャンセルし続けると実行が完了しますが、コピーされたSheet3の参照先が正しく変換されずエラー表示となってしまいます。 「wsDst.Range("D:D").Replace "[*]", ""」が完了する前に「Workbooks(strSrcBook).Close SaveChanges:=False」が実行されてしまうのが原因と思われるのですが、実際のプログラムでは開くBookは1つではなくSheet1に記載したリストを順番に開いてコピーするという事を行っている為、作業が完了したBookは閉じるようにしたいです。 どの様に修正すれば「wsDst.Range("D:D").Replace "[*]", ""」が完了するのを待って、「Workbooks(strSrcBook).Close SaveChanges:=False」が実行されるように出来るのでしょうか?

  • ファイルのエクスポート

    携帯電話のことなんですが、miniSDカードにエクスポートができないファイルが非常に多くて困っています。 エクスポートするにはどうしたらいいでしょうか? よく、パソコンで携帯電話を操作するというツールが売られているんですが、あれを使えば何とかなるのでしょうか? ちなみに機種はFOMAのN701iです。

  • 複数csvファイルをexcelの各シートに書込む2

    前回powershellを使い複数のcsvをそれぞれのシートに分けて新規Excelファイルとして書き込む方法についてお教え頂きましたが、既存ファイルの場合下記の下記のコードのようにすると既存シートがある場合既存のシートにシート名を変え書き加えられることになります。既存シートをそのままにして新規シートとして追加するような方法をお教えください。 $csvFiles = @("D:\test_data\test_data1.csv", "D:\test_data\test_data2.csv") # Excelファイルのパス $excelPath = (Get-ChildItem "D:\test_data\AAA.xlsx").FullName $excel = New-Object -ComObject Excel.Application $excel.Visible = $true $book = $excel.Workbooks.Open($excelPath) foreach ($index in 0..($csvFiles.Length - 1)) { if ($index -eq 0) { $sheet = $book.Sheets.Item(1) } else { $sheet = $book.Sheets.Add() } $sheet.Name = "data" + ($index + 1) $startRange = "C2" $QueryTable = $sheet.QueryTables.Add("TEXT;"+$csvFiles[$index], $sheet.Range($startRange)) $QueryTable.TextFileCommaDelimiter = $True $QueryTable.TextFilePlatform = 65001 $QueryTable.TextFileStartRow = 1 $QueryTable.Refresh($false) $QueryTable.Name = "仮テーブル" $QueryTable.Delete() } [System.Runtime.Interopservices.Marshal]::ReleaseComObject($sheet) > $null [System.Runtime.Interopservices.Marshal]::ReleaseComObject($book) > $null [System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel) > $null Remove-Variable sheet, book, excel [gc]::Collect() [GC]::WaitForPendingFinalizers() なお、csvファイルの指定方法は違います(ファイル名で指定する方が分からないのでコピペのコードそのままに近い)がExport-Excelを使った下記コード場合同じシート名がある場合は、そのシートに書き込まれますがそれ以外は新規シート名(csvファイル名)として付け加えられます。 $csvs = Get-ChildItem .\* -Include *.csv $csvCount = $csvs.Count Write-Host "Detected the following CSV files: ($csvCount)" foreach ($csv in $csvs) { Write-Host " -"$csv.Name } $excelFileName = "D:\test_data\AAD.xlsx." Write-Host "Creating: $excelFileName" foreach ($csv in $csvs) { $csvPath = ".\" + $csv.Name $worksheetName = $csv.Name.Replace(".csv","") Write-Host " - Adding $worksheetName to $excelFileName" Import-Csv -Path $csvPath | Export-Excel -Path $excelFileName -WorkSheetname $worksheetName -StartRow 2 -StartColumn 3 } しかしならこの方法では大きなデータの場合処理時間を要することになります。処理時間で言うなら下記コードの方が一番速いですがやはり新規シートに置き換えられる問題があります。 $sourceFiles = @("D:\test_data\test_data1.csv", "D:\test_data\test_data2.csv") $outputFile = "D:\test_data\AAE.xlsx" $excel = New-Object -ComObject Excel.Application $excel.Visible = $false $excel.DisplayAlerts = $false $outputWorkbook = $excel.Workbooks.Add() $index=1; foreach ($sourceFile in $sourceFiles) { $workbook = $excel.Workbooks.Open($sourceFile) foreach ($sheet in $workbook.Sheets) { $sheet.Copy([ref]$outputWorkbook.Sheets.Item($outputWorkbook.Sheets.Count)) } $index=$outputWorkbook.Sheets.Count $workbook.Close($false); } $outputWorkbook.Sheets.Item($index).Delete() $outputWorkbook.SaveAs($outputFile); $excel.Quit(); [System.Runtime.InteropServices.Marshal]::ReleaseComObject($outputWorkbook) | Out-Null; [System.Runtime.InteropServices.Marshal]::ReleaseComObject($excel) | Out-Null; Write-Output "Sheets have been combined into $outputFile"; 私のコピペ能力ではここまでです。シート名が同じの場合は上書きされそれ以外は新規シートとして追加される方法になれば幸いです。よろしくお願いいたします。