冒险解谜游戏中文网 ChinaAVG

标题: TGA图片字库制作 [打印本页]

作者: rinat    时间: 2011-7-4 17:53
标题: TGA图片字库制作
我很想加入这个行业,而且有足够的时间、耐心。最近我拿个小游戏学学,先分析了一下。显示文字是TGA图片字库,已经得到这个字库了,现在该到制作新字库TGA了。网上搜了一下,找到了Bitmap工具,这个工具确实很不错。" r& ^. j9 v( u) u# F
我想知道的是,能不能原字库图片的宽度和字母的各类参数不变的情况下,再加新的字符?首先新加字符然后得到字符参数还是按预设的参数来新加字符?是PS来实现?(我估计PS定坐标很麻烦)6 \3 a; \% m- j9 B- n9 n
那位热情的大侠请教一下小弟。谢谢~
作者: 魔鸢    时间: 2011-7-4 18:20
TGA图片字库一向都是美工的活,童鞋,你要汉化的话就完全搞错方向了,抠鼻~~~
作者: 魔鸢    时间: 2011-7-4 18:21
如果你有兴趣可以进考核群跟大家一起发展啊[s:101]
作者: rinat    时间: 2011-7-4 18:35
魔鸢 发表于 2011-7-4 18:20
- R5 `5 D! B+ W: c  [TGA图片字库一向都是美工的活,童鞋,你要汉化的话就完全搞错方向了,抠鼻~~~
& w% z2 ^7 X- G$ }
搞错方向?我只是想首先把字库和定义准备好。不管是美工还是技术、翻译,都是汉化工作的内容吧~多嘴了
作者: rinat    时间: 2011-7-4 18:36
魔鸢 发表于 2011-7-4 18:21 $ K& H0 R. [& _
如果你有兴趣可以进考核群跟大家一起发展啊

% S+ j8 X) r1 r! K# y* l5 q9 t6 t能否提供个群号?谢谢
作者: 沉睡的绵羊    时间: 2011-7-5 09:06
https://www.chinaavg.com/thread-28475-1-1.html
, E9 M! G3 l: R1 @4 ~5 I: ]这是招人简章。4 u  e4 w; S3 d; o( f
楼上的,你的想法很好。我是技术 鈂緦 , QQ 号码是 11203768 , 欢迎一起交流。3 |+ ]% V. D3 |$ _% n& y
你说的想法非常好,不过TGA的文件格式你得非常熟悉才能用软件用。
作者: caesarzx    时间: 2011-7-5 10:02
要命,民间汉化成行业了。
作者: rinat    时间: 2011-7-5 10:14
caesarzx 发表于 2011-7-5 10:02 ! v( H5 ~4 @# A, S+ F* g  D% O
要命,民间汉化成行业了。
; X6 P# q8 ?. ^. v+ b: T5 W
恩,就是贡献性的民间行业,呵呵~
作者: rinat    时间: 2011-7-5 10:16
沉睡的绵羊 发表于 2011-7-5 09:06
: P) q- Y- _4 N- [' A4 |https://www.chinaavg.com/thread-28475-1-1.html
( n  `: R* L  i5 u4 C. ]; J9 |, g这是招人简章。
5 E- l* f, O  k% E3 c$ x( \. A楼上的,你的想法很好。我是技术 鈂緦 , ...

, I" L# z) c# ?果然是,这个光操纵PS就不行了,修改原TGA遇到了些小问题,要得自己好好研究TGA了。
作者: canmover    时间: 2011-7-5 12:12
回复 rinat 的帖子
' X+ d  ]5 v$ f4 X1 S) A. l" r1 W% U$ @0 |- ~1 F" H( Y
重新做一个新的不行吗?
$ V$ {0 h6 e( f! b在原图片上添加字符,理论上是可以的,但应该不会有专门的软件,因为这个功能基本没人会用到。除非自己写一个,否则只有PS了。
作者: solidji    时间: 2011-7-5 14:52
本帖最后由 solidji 于 2011-7-5 14:52 编辑 , w2 p4 {- Q/ a6 a+ R1 a
7 l& r7 `; L, T) W+ ~! o
重新做一张更方便1 B7 R! {! |" d) M8 @1 m3 v
如果非要加在后面,也可以自己实现
1 m7 \5 u9 g! n; X  u& h, E我给你提供个思路。我们先假设原来的字库你已经找到,并且是纹理图片字库$ ]2 s. P6 h1 U
首先
% ?4 q' Q# q$ T1 R# R' kCreateVertexBuffer(sizeof(CnFontVertex)*6*8192, D3DUSAGE_DYNAMIC, FVF, D3DPOOL_SYSTEMMEM, ppVertexBuffer,pSharedHandle);//创建一个包含8192个字符的足够大的字库缓存$ ?4 M9 i' l: [' ]
                g_pFontVertexBuffer = *ppVertexBuffer;! w; y7 ?4 ?  }' ]& y
                g_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);/ V& u9 X" {8 y$ H0 s4 b
                g_pFontVertexBuffer->Unlock();3 r" M1 u3 h+ h4 p' o8 H4 E

' ?4 A) y; c: h( h, CCString font = _T(".\\font.bmp");//这个是自己要添加的新的字库/ `6 e: }. ^6 R
                        D3DXCreateTextureFromFileEx(1 d3 {# O; e3 d: f$ y( D" R
                        m_device,7 F9 ^: m4 j2 t+ r
                        font,
# d# D4 l8 K/ c                        D3DX_DEFAULT,: p2 t& g8 p8 ?& A) n
                        D3DX_DEFAULT,( e0 V5 I! I8 A/ l" X& _2 J* V
                        D3DX_DEFAULT,$ E8 D  i9 `! f0 L1 `. K
                        0,# r7 u, W6 e' {  I5 x# Y
                        D3DFMT_A1R5G5B5,
3 v6 q( E# e4 e1 E                        D3DPOOL_MANAGED,5 j( w. E0 P2 b, G+ W: I. ?
                        D3DX_FILTER_TRIANGLE,
: ?5 }" J( E; Y% U' g7 E4 D                        D3DX_FILTER_TRIANGLE, $ p  v1 c' R; ~& G# g& q
                        D3DCOLOR_RGBA(0, 0, 0, 255),0 J5 C/ M( ?9 k( C
                        NULL,5 `1 ?, T+ |6 Z, s) d2 I
                        NULL,
9 A5 u% U% ?7 r                        &Tex);/ r6 K" t0 `* _! Z& x3 d0 J  y$ l) A' k# G

: ?) v. K: h1 [$ c4 h+ SIDirect3DTexture9* in = Tex->Lock(0, pDesc.Size, &pbData, D3DLOCK_READONLY);4 w8 I7 X# `5 E* j6 s) X' k! z9 a
把Tex里的数据lock到pbData8 p! t; M. P; h' k, ]
然后把pbData里的数据copy到mem接在原本的字库后面
# p$ f/ a- \5 s. [1 h7 M9 gg_pFontVertexBuffer->Lock(0,Length,(void**)&mem,0);9 N, Q! K+ _4 O3 T
memcpy(pbData,mem,len);
0 J5 @2 V* g+ O* Ag_pFontVertexBuffer->Unlock();5 w# G  c( |. x' w: _
" o) r& U5 h! C6 ~6 v& T
最后保存成TGA8 h8 D1 G( I; ]4 ?- L0 b+ O
D3DXSaveTextureToFileA(“new字库.tga”, D3DXIFF_TGA, ppVertexBuffer, NULL);' D( }) f1 ?% V+ E# K( _0 n+ ]

. s* m2 s( A7 f7 }5 y这个代码我没调试随手写的,表达下思路而已,不可照搬
作者: firendless    时间: 2011-7-5 16:33
魔鸢 发表于 2011-7-4 18:20 ( b1 h5 S- V9 X! q  y+ ?3 U) b' v
TGA图片字库一向都是美工的活,童鞋,你要汉化的话就完全搞错方向了,抠鼻~~~

; b7 f/ d; b, S8 i4 ~+ H生成字库这种东西交给美工嘛?看来美工需要去学编码,尤其是了解图像相关API,然后去写代码,生成包含需要的字符的图片了...
作者: firendless    时间: 2011-7-5 16:39
回复 rinat 的帖子# W: N( W, d! i' a; x
0 H& @( B8 Q$ u2 k) S) W, e" b
http://www.game798.com/html/2007-03/3147.htm
0 x4 j; T* S: L6 z6 g9 `. }' N7 q: q$ F8 @3 ]3 c4 b7 J
希望对你有用,一个TGA库.其实百度一下.挺多的.只要能将生成的像素位图转换为带通道的TGA就可以了,至于压缩或者非压缩,看你的游戏了,反正这种库都支持.% ?7 _2 m+ @1 V
& P5 @6 f" F8 \* Z% F1 T
还有就是,如果你要用现成的软件修理字库图,首先你的新的文字量要少,比如几个或者几十个,那么工作量可以接受,如果你要把一个A码的TGA字库扩充到U码,那么手动...我觉得不显示,至少我这种等级的闲人做不来../ ~  h) c  E) i/ h' W* a
) j! e$ s/ n# r4 `' V
总结一下,个人感觉,字库的话.还是自己写个小软件,来的快.因为你不是想还是使用原来的方式进行字库读取么。
' u8 G$ N! n: X- C( X" X
6 K$ o% b( @: b7 k/ u% V4 z4 f! T或者还有2条路,inject,劫持掉他的显示方式,直接用你的绘图方式来输出文字,007大仙很熟悉,你可以PM或者QQ或者怎么怎嘛他.4 i! t6 Z# h9 ?; Y
0 q; T: P5 p" e& N+ d. K
最后一条路就是放弃.




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2